Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
Delphi XE2 Professional
|
Zeile wird Übersprungen
30. Sep 2009, 22:36
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:
DataFile := StringReplace(DataFile, #154, 'Ü', [rfReplaceAll]);
Anzahl := 1;
while Length(DataFile) > 1 do begin
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).
Delphi-Quellcode:
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;
im folgenden mal die gesamte Funktion...
Delphi-Quellcode:
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;
Ich hoffe ich bin nur zu Müde und nicht zu doof. Danke schon mal.
MFG
Jens
Jens Hartmann Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
|