Zitat Zitat von mare_crisium
Durch die Schachtelung von "If Port_masken.taste_index = 1 Then..." und der "Select Case Taste_index"-Anweisung, entsteht eine implizite Verknüpfung zwischen den Werten von "Taste_index" und den Stellen von "Port_masken", die auf 1 gesetzt sind. Wenn jemand die Einsen in "Port_masken" verschiebt (z.B. weil er eine andere Portbelegung braucht), darf er nicht vergessen, die Wertebereiche von "Taste_index" für die einzelnen cases zu ändern. Wenn man das übersieht, speziell wenn man länger nicht mehr an dem Programm gearbeitet hat, ist das ein schwer zu findender Fehler.
Ich hatte schon mal ausprobiert, anstelle von Taste_index in taste_string die Position z.B. des "+"-Zeichens zu finden. Aber selbst mit Bytes-Werten suchen habe ich es nicht geschafft, dies noch in den 4KB unterzubringen.

Zitat Zitat von mare_crisium
Es kann vorkommen, dass der erste Operand eine ganze Zahl ist, der zweite eine reelle. Bei Deiner jetzigen Kommabehandlung findet das Programm, wenn das Komma des Operand2 eingegeben wird, die Variable "Found.comma_op1" auf NO und nimmt dann an, das Komma gehöre zu Operand1.
Hast du das mal ausprobiert oder nur durch Code Analyse gefunden? Ich dachte nämlich, dass ich dies durch die Abfrage nach dem gefundenen Operator ausgeschlossen habe. Wenn der noch nicht da ist, handelt es sich um Operator 1, ansonsten Operator 2. Bin mir aber nicht sicher, ob ich mal probiert habe, im zweiten mehrere Kommas einzugeben, wenn im ersten Operator keines drin vorkommt.