Thema: FreePascal Kommischer ERange Error

Einzelnen Beitrag anzeigen

Benutzerbild von PhilmacFLy
PhilmacFLy

Registriert seit: 20. Jan 2008
Ort: Nürnberg
340 Beiträge
 
FreePascal / Lazarus
 
#9

AW: Kommischer EERange Rror Zugriffsverletzung

  Alt 14. Nov 2012, 12:39
Wo wird j initialisiert?
Garnicht, bzw. nicht immer.

Aber wer hört schon auf seinen Compiler ... die Meldungen da unten sind ja eh nicht wichtig


Zitat:
Delphi-Quellcode:
      while pos('(', code[j]) = 0 do

        (*Beweg dich solang Rückwärts bis eine Rundeklammer zu kommt (da dies die funktion bestimt)*)
        j := j - 1;
"Rundeklammer zu" ... ZU oder AUF?

Zitat:
Delphi-Quellcode:
        while (pos('(', code[j]) = 0) or (pos(');', code[j]) > 0) or
          (pos('if', code[j]) > 0) do

          (*Beweg dich solang Rückwärts bis eine Rundeklammer zu kommt (da dies die funktion bestimt)*)
          j := j - 1;
Copy&Paste ist was Tolles, aber den Kommentar hätte man schon noch anpassen sollen, denn so sind Kommentare voll nutzlos irreführend.
Ja du weist doch wie das ist, da bastelt man und bastelt man und passt die Kommentare am Schluss erst an. (Desweitern waren das mal am Anfang gneua die gleichen Statements)

Changefuncs wie schon erwähnt Sorry hatte deinen Beitrag nicht gesehen (den oberen)
Delphi-Quellcode:
private
changefuncs: array of state;
Tante Edit meinte noch:
Die Funktion läuft in einer Schleife solang Result falsch ist, denn das ganze dient dazu eine Statemachine zu analysieren (C Code)
Natürlich können auch andere Funktionen in States aufgerufen werden die dann wiederum die state Variable ändern oder wieder eine Funktion aufrufen die ...
Deswegen durchlaufe ich die Funktionen solange bis sicherlich keine Neue Funktion mehr ins Array kommt.
Das erzähl ich deswegen weil die ersten 4x läuft die Funktion ohne Probleme da drüber.
Philipp N.
"Programmiern ist wie küssen:
Mann kan darüber reden, mann kann es beschreiben,
aber man weiss erst, was es bedeutet,
wenn man es getan hat"

Geändert von PhilmacFLy (14. Nov 2012 um 12:48 Uhr)
  Mit Zitat antworten Zitat