AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zeile wird Übersprungen

Ein Thema von Jens Hartmann · begonnen am 30. Sep 2009 · letzter Beitrag vom 1. Okt 2009
Antwort Antwort
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
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Zeile wird Übersprungen

  Alt 30. Sep 2009, 23:01
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
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

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

Re: Zeile wird Übersprungen

  Alt 1. Okt 2009, 07:19
Danke,

das war schon mal so. Jetzt wäre nur die Frage, warum DataFile geändert.

MFG

Jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#4

Re: Zeile wird Übersprungen

  Alt 1. Okt 2009, 07:53
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
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

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

Re: Zeile wird Übersprungen

  Alt 1. Okt 2009, 15:09
Ich denke nicht, muss ich mir heute Abend nochmal ansehen. Erstmal dank.

MFG

Jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz