Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Sa Jul 12, 2025 15:24

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: [gelöst]Zugriffsverletzung
BeitragVerfasst: Di Okt 06, 2009 18:27 
Offline
DGL Member

Registriert: Mo Aug 31, 2009 13:19
Beiträge: 151
Der Titel ist nicht so aussagekräftig, ich weiß. Aber mehr kann ich aus dem, was mir der Compiler liefert leider auch nicht rausholen. Die Fehlermeldung ist angehangen.
Ich bin leider auch nicht so geübt im Debuggen, vllt. hol ich also deutlich weniger Information aus der Meldung raus, als möglich wäre.

Da der Compiler mir leider nicht von sich aus die Zeile liefert, in der das Problem auftaucht, hab ich die Geschichte mal eingegrenzt - hier grob rauskopiert die relevanten Codeteile:

Code:
  1.  
  2. Function TCompiler.GetCharacter: Char;
  3. var
  4.   Ch: Char;
  5. begin
  6. if not EoF(FInFile) then
  7.   BlockRead(FInFile, Ch, 1)
  8.   else
  9.   Ch := ' ';
  10.  
  11. Ch := Upcase(Ch);
  12.  
  13. if Ch = #13 then inc(FLine);
  14.  
  15. if Ord(Ch) < Ord(' ') then Ch := ' ';
  16.  
  17. Result := Ch;
  18. end;
  19.  

Code:
  1.  
  2. Procedure TCompiler.GetSymbol(var vCharacter: Char);
  3. var
  4.   I:          TSymbol;
  5. begin // Prozedur
  6. while FCompiled do
  7.   begin // While FCompiled...
  8.   FSymString  := '';
  9.   FSymbol     := sNone;
  10.  
  11.   while (vCharacter = ' ') and not EoF(FInFile) do
  12.     vCharacter := GetCharacter;
  13.  
  14.   if EoF(FInFile) then Exit;
  15. [...]
  16.  

Code:
  1.  
  2. Procedure TCompiler.ReadIni;
  3. var
  4.   FCharacter: Char;
  5. begin
  6. Assign(FInFile, FIniFile);
  7. Reset(FInFile);
  8.  
  9. FCharacter := ' ';
  10. SymbolList := nil;
  11. GetSymbol(FCharacter);
  12.  


Der Fehler taucht nun in dem Moment auf, wo in GetSymbol dem var-Parameter vCharacter der Funktionswert von GetCharacter zugewiesen wird.
Setze ich da statt vCharacter 'ne in GetSymbol deklarierte Testvariable ein, läuft die Zuweisung problemlos.
Was mich am meisten wurmt ist, dass ich das ganze schonmal am Laufen hatte - dann hab ich mich heute Nachmittag dran gesetzt, den Code umzustrukturieren und nu gehts nimmer *argh* - natürlich kann ich nicht nachgucken, wies vorher aussah, voreilig vernichtet.

Sollte irgendwer noch irgendwelche Informationen brauchen, einfach melden - ich werde antworten ;)


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Okt 06, 2009 20:23 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Ich kann dir nicht bei deinem eigentlichen Problem helfen, aber bist du dabei, Ini-Dateien auszulesen? Wenn ja, schau dir mal die Unit IniFiles an. Die enthält eine Klasse, die das ganze um einiges erleichtert.

greetings
Ps.: Oh, und, ein Compiler übersetzt deinen Sourcecode in ausführbaren Maschinencode. Der hat mit Laufzeitfehlern eher weniger zu tun. Was du sicherlich meinst, ist der Debugger, der mit Delphi kommuniziert, die Exceptions abfängt und Delphi sagt, wo das ganze aufgetreten ist, sodass das dir wiederum die Zeile rot anmarkern kann. Aber das nur am Rande.

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Okt 06, 2009 20:32 
Offline
DGL Member

Registriert: Mo Aug 31, 2009 13:19
Beiträge: 151
Erm, ja, danke Horazont.
Aber ich will Ini-Dateien nicht einfach auslesen, der Reader soll auch das ein oder andere Schlüsselwort kennen. Steht ja auch im Projektthread zu SketchtowerWars. Darum brauch ich ne lexikalische und eine Syntaxüberprüfung.

Nachtrag: Muss mich korrigieren, die Zuweisung an eine Testvaribale funktioniert auch nicht.

Nachtrag 2: Problem gelöst, hatte beim Öffnen der Datei vergessen, die Recordgröße anzugeben...


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 13 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 14 Queries | GZIP : On ]