Thema: Delphi Zeile wird Übersprungen

Einzelnen Beitrag anzeigen

Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#1

Zeile wird Übersprungen

  Alt 30. Sep 2009, 21: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.
  Mit Zitat antworten Zitat