Zitat:
1. Wenn FLine nicht auf ein ungültiges Zeichen endet, läuft die Methode in eine
AV
2. Es werden auch ungültige Zeichenkombinationen als Zahl erkannt.
zu 1.: wird sich die Routine wohl auf ein "eol" Zeichen, egal wie es aussieht, am Zeilenende verlassen
zu 2. Wäre bei einem Syntax Highlighter zumindest nicht sehr tragisch, weil in der Praxis in einem Programm nur sehr selten Nicht-Zahlen, die allen Bedingungen entsprechen, vorkommen werden. Es könnte aber sein, dass im Programm danach noch zusätzliche Checks gemacht werden, um ungültige Strings auszuschliessen, dann könnte auch die Änderung dieser Routine u.U. nichts helfen.
Zitat:
Erst zuende schreiben, dann auf "Antworten" klicken
Tut mir leid, bin vorzeitig am Antworten Knopf angekommen. Aber die drei Änderungen, die ich Dir vorgeschlagen habe, hast Du anscheinend noch nicht ausprobiert, weil zumindest diese Routine müsste dann funktionieren.
Zitat:
Meiner Meinung nach sollte der Vergleich cmp al,50 sein um auch das 'x' zu erfassen.
der Wert von 'x' ist um 16, also um 0x10 grösser als der wert von 'h'. Der Wert 47 steht für das h, also müsste 0x10 dazu gezählt werden, damit die Werte bis inklusive x nicht schon beim Bereichstest rausfliegen. Muss also mindesten 0x57 sein - ich habe mich bei meinem 1. Post also um 1 verzählt - ein etwas grösserer Wert schadet aber nicht, weil alle Werte, die nicht schon beim Vergleich als zu gross herausfallen, noch einmal über die Maske überprüft werden.
edit: Ihr habt Recht, es genügt doch 0h50 - 0x47 entspricht nicht dem 'h', sondern dem letzten Zeichen, das im Set im gleichen byte wie das h untergebracht ist, also dem 'o'.