AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit If schleife ...

Ein Thema von sharkx · begonnen am 24. Okt 2003 · letzter Beitrag vom 25. Okt 2003
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: Problem mit If schleife ...

  Alt 24. Okt 2003, 19:22
@sharkx: Nutze mal statt der [code]-Tags die [delphi]-Tags.

Danke,
......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von APP
APP

Registriert seit: 24. Feb 2003
Ort: Graz (A)
705 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: Problem mit If schleife ...

  Alt 24. Okt 2003, 19:34
Hallo sharkx,
kann es sein, dass Du diese Funktion mehrmals hintereinander aufrufst?

Wenn ja, dann ist klar, dass Deine Funktion immer die gleichen Ergebnisse mehrfach als String zurückgibt.
(Du zerstörst die Stringlist ja jedesmal, und erzeugst sie immer neu)

Ansonsten scheint die Funktion zu Funken (bei einmaligem Aufruf).
Armin P. Pressler

BEGIN
...real programmers are using C/C++ - smart developers Delphi;
END;
  Mit Zitat antworten Zitat
sharkx

Registriert seit: 24. Feb 2003
Ort: St. Ingbert
211 Beiträge
 
Delphi 7 Enterprise
 
#13

Re: Problem mit If schleife ...

  Alt 24. Okt 2003, 19:35
Die funktion steht in einer endlosschleife, ja ...


Hmmm, wie löse ich dann am besten das Problem?
Programming today is a race between Software Engineers striving to build bigger and better idiot-proof Programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning!
  Mit Zitat antworten Zitat
Benutzerbild von APP
APP

Registriert seit: 24. Feb 2003
Ort: Graz (A)
705 Beiträge
 
Delphi 7 Enterprise
 
#14

Re: Problem mit If schleife ...

  Alt 24. Okt 2003, 19:37
Indem Du die Stringliste ausserhalb Deiner Funktion erzeugst.
Armin P. Pressler

BEGIN
...real programmers are using C/C++ - smart developers Delphi;
END;
  Mit Zitat antworten Zitat
sharkx

Registriert seit: 24. Feb 2003
Ort: St. Ingbert
211 Beiträge
 
Delphi 7 Enterprise
 
#15

Re: Problem mit If schleife ...

  Alt 25. Okt 2003, 10:28
hallo,

App, irgendwie versteh ich das nicht so ganz. Ich soll die StringList auserhalb der Funktion erzeugen. Wo bzw wie soll ich die erzeugen?
Programming today is a race between Software Engineers striving to build bigger and better idiot-proof Programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning!
  Mit Zitat antworten Zitat
Benutzerbild von APP
APP

Registriert seit: 24. Feb 2003
Ort: Graz (A)
705 Beiträge
 
Delphi 7 Enterprise
 
#16

Re: Problem mit If schleife ...

  Alt 25. Okt 2003, 15:03
Hallo sharkx,

falls ich Dich richtig verstanden habe, dann meinte ich in etwa so:

Delphi-Quellcode:
PROCEDURE TForm1.Button3Click(Sender: TObject);
VAR
   NewList : TStringList;
   j : Integer;

   // logfile auf "[Time] [Tag] und String" durchsuchen
   FUNCTION ReadString(path: STRING): STRING;
   CONST
      searchstring = '[bla] + blaa bluuuub:';
   VAR
      list : TStringList;
      z1, datum, release : STRING;
      i, p1, p2 : integer;
   BEGIN
      list := TStringList.Create;
      list.LoadFromFile(path);
      // Release parsen
      FOR i := 0 TO list.Count - 1 DO
         BEGIN
            p1 := Pos(searchstring, list[i]);
            IF p1 = 0 THEN continue;

            z1 := list.Strings[i];
            p1 := Pos('[', z1);
            p2 := Pos(']', z1);

            datum := Copy(z1, p1 + 1, (p2 - p1) - 1);

            p1 := Pos(searchstring, z1);
            z1 := Copy(z1, p1 + length(searchstring) + 1, length(z1));

            p2 := Pos(' ', z1);

            release := Copy(z1, 1, p2 - 1);
            newlist.Add(datum + ' ' + release)
         END;
      result := newlist.CommaText;
      list.free;
   END;

BEGIN
   NewList := TStringList.Create;
   TRY
      // StringList sortieren und keine doppelten Strings hinzufügen
      NewList.Sorted := True;
      NewListt.Duplicates := dupIgnore;
      NewList.CaseSensitive := False;
      // Deine "Endlosschleife"
      FOR j := 0 TO 10 DO
         BEGIN
            Memo1.Clear;
            Memo1.Lines.add(ReadString('C:\LB.txt'));
         END;
      beep;
   FINALLY
      NewList.Free;
   END;
END;
Das ist nur ein Ansatz, Du kannst "newlist" auch als Parameter mitgeben,
wenn Deine Funktion keine Unter-Funktion sein soll.
Oder Du kannst "newlist" global deklarieren...

Auf alle Fälle sollte deine Funktion immer mit der Stringliste
arbeiten die vorher einmal erzeugt wurde.
Armin P. Pressler

BEGIN
...real programmers are using C/C++ - smart developers Delphi;
END;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 16:04 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