![]() |
Zeile wird Übersprungen
Hallo,
vieleicht ist es ja jetzt auch schon zu spät, aber ich habe in einer Funktion, ein seltsames Problem. Wenn folgender Code ausgeführt wird, und ich den Code mit F7 durchtippe, wird die Zeile mit der Zuweisung der Integer Var. Anzahl einfach Übersprungen.
Delphi-Quellcode:
Außerdem, wird in folgender Zeile, ohne das die String Var. DataFile Teil des Codes ist, diese Var. auf den Wert von CurEntry.Datum gesetzt. (Kann im Debugmodus sehen).
DataFile := StringReplace(DataFile, #154, 'Ü', [rfReplaceAll]);
Anzahl := 1; while Length(DataFile) > 1 do begin
Delphi-Quellcode:
im folgenden mal die gesamte Funktion...
if Pos('Datum:', CurLine) = 1 then
begin TempDatum := CurLine; Delete(TempDatum, 1, 7); Delete(TempDatum, 11, 19); CurEntry.Datum := TempDatum; //beim Ausführen dieser Zeile wird die Var. DataFile auf den Wert TempDatum gesetzt. TempUhrzeit := CurLine; Delete(TempUhrzeit,1, 28); CurEntry.Uhrzeit := TempUhrzeit; {Ende Datumseintrag} end;
Delphi-Quellcode:
Ich hoffe ich bin nur zu Müde und nicht zu doof. Danke schon mal.
DataFile := Text;
DataFile := StringReplace(DataFile, #154, 'Ü', [rfReplaceAll]); DataFile := trim(StringReplace(DataFile, #$D, '', [rfReplaceAll])); DataFile := StringReplace(DataFile, #129, 'ü', [rfReplaceAll]); DataFile := trim(StringReplace(DataFile, #132, 'ä', [rfReplaceAll])); DataFile := StringReplace(DataFile, #142, 'Ä', [rfReplaceAll]); DataFile := StringReplace(DataFile, #148, 'ö', [rfReplaceAll]); DataFile := StringReplace(DataFile, #153, 'Ö', [rfReplaceAll]); DataFile := StringReplace(DataFile, #154, 'Ü', [rfReplaceAll]); Anzahl := 1; while Length(DataFile) > 1 do begin CurDataPointer := Pos(#$A#$A#$A#$A,DataFile); CurData := Copy(DataFile,1,CurDataPointer-1); Delete(DataFile,1,CurDataPointer+3); {Indexbehandlungsroutine} CurLine := CurData; if Pos('Ereignis:', CurLine) = 1 then begin Delete(CurLine, 1, 10); CurEntry.LfdNr := StrToInt(Copy(CurLine,1,4)); end else CurEntry.LfdNr := 0000; {Datum & Uhrzeitbehandlungsroutine} CurDataPointer := Pos('Datum',CurData); CurLine := Copy(Curdata,CurDataPointer,36); if Pos('Datum:', CurLine) = 1 then begin TempDatum := CurLine; Delete(TempDatum, 1, 7); Delete(TempDatum, 11, 19); CurEntry.Datum := TempDatum; TempUhrzeit := CurLine; Delete(TempUhrzeit,1, 28); CurEntry.Uhrzeit := TempUhrzeit; {Ende Datumseintrag} end; {Ereignisbehandlungsroutine} CurDataPointer := Pos(#$A#$A,CurData); Delete(CurData, 1, CurDataPointer+1); CurDataPointer := Pos(#$A#$A,CurData); Delete(CurData, 1, CurDataPointer+1); CurTempAll := Curdata; CurDataPointer := Pos(#$A#$A,CurTempAll); if CurDataPointer > 1 then begin ShowMessage('Test'); Anzahl := 1; Delete(CurTempAll, 1, CurDataPointer+1); CurDataPointer := Pos(#$A#$A,CurTempAll); end; if CurDataPointer > 1 then begin Anzahl := 2; Delete(CurTempAll, 1, CurDataPointer+1); CurDataPointer := Pos(#$A#$A,CurTempAll); end; if CurDataPointer > 1 then begin Anzahl := 3; Delete(CurTempAll, 1, CurDataPointer+1); CurDataPointer := Pos(#$A#$A,CurTempAll); end; end; end; MFG Jens |
Re: Zeile wird Übersprungen
Gute Nacht,
wenn Anzahl im späteren Code nicht benutzt wird, entfernt es der Compiler. Du wirst wahrscheinlich auch nicht in der Lage sein dort einen Haltepunkt zu platzieren. Grüße Klaus |
Re: Zeile wird Übersprungen
Danke,
das war schon mal so. Jetzt wäre nur die Frage, warum DataFile geändert. MFG Jens |
Re: Zeile wird Übersprungen
Hast du die Compileroptimierung aktiviert? Zum Debuggen solltest du die ausschalten. Dann dürfte auch alles so laufen wie du glaubst dass es laufen sollte ;)
|
Re: Zeile wird Übersprungen
Ich denke nicht, muss ich mir heute Abend nochmal ansehen. Erstmal dank.
MFG Jens |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz