Hallo Kollegen,
nach ganz vielen Beiträgen, bei denen ich manches Mal etwas zur Problemlösuing beitragen konnte, wende ich mich erstmalig mal mit einer Frage ans Forum.
Wie einige wissen, stelle ich seit geraumer Zeit Tutorials zum Erlernen der Icon-Programmiersprache ins Forum.
Den Quellcode stelle ich in
ein, weil sich Icon-Quellcode leider nicht als Anhang einstellen lässt - und ich solche Tricks mit Einstellen als .txt-Datei und anschließend Umbenennen ätzend finde. Entweder kopiere ich den Text aus der IDE Geany heraus oder tippe (bei wenigen Zeilen) auch mal direkt hier was rein.
Seit einiger Zeit geistern Fehlerbeschreibungen herum, die ich nicht nachvollziehen kann, deren Ausmaß mir erst gestern aber so richtig bewusst geworden ist.
Kopiert man den Code-Ausschnitt wieder in einen Texteditor (z.B. Geany) und compiliert dann, dann gibt es auch bei exterm kurzen Programmen Hunderte von Fehlermeldungen der Art
Ein erster Blick auf den Code lässt keinen Fehler erkennen. Schaut man sich dagegen die HEX-Darstellung der gespeicherten Datei an, sind linksbündig (dort, wo sonst Leerzeichen oder Tabulatorzeichen stehen) Hex-Codes von A0 enthalten - diese entsprechen einem á. Jetzt wird die Fehlermeldung verständlich - aber durch welchen Effekt (Defekt?) werden diese Zeichen erzeugt, aber nicht angezeigt?
Diese Zeichen existierten nicht in der Urversion vor dem Übertragen in den Forenbeitrag, sonst wäre das Programm nicht fehlerfrei compiliert worden.
Diese Zeichen werden nicht im Forenbeitrag angezeigt. Wenn ich ein Leerzeichen eingebe, dann wird dieses vermutlich auch nicht als verborgenes anderes Zeichen dargestellt.
Warum aber nach dem Kopieren diese Zeichen erzeugt werden und nicht angezeigt werden, kann ich mir nicht erklären.
Beispiel eines gestern durch Copy & Paste erhaltenen Ergebnisses:
link vsetup
global vidgets, root, errors, refresh_delay, AutoRepair
$define file1 "/etc/resolv.conf"
procedure main(args)
áááálocal paused
ááááerrors := 0;
áááá(WOpen ! ui_atts()) | stop("cant open window")
áááávidgets := ui()
áááároot := vidgets["root"]
áááárefresh_delay := VGetState(vidgets["sbar1"])
ááááAutoRepair := &null
ááááVSetState(vidgets["radio_button1"], "Aus")
áááárepair()
áááápaused := &null
áááárepeat
áááá{ááááwhile (*Pending() > 0) | \paused do
áááááááá{
ááááááááááááProcessEvent(root, QuitCheck)
áááááááá}
ááááááááif \AutoRepair then repair()
áááááááádelay(1000 * refresh_delay)
áááá}
end
Alles anzeigen
(mit der Codierung IBM850 sichtbar gemacht)
Und jetzt seid Ihr dran!
Vorab vielen Dank für Eure Ideen und Anteilnahme!
Beste Grüße
Andreas