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 1 von 2  1 2      
sharkx

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

Problem mit If schleife ...

  Alt 24. Okt 2003, 10:55
Hallo, im folgenden Source lese ich eine Textdatei aus, bestimmte Strings möchte ich ( Wenn sie nicht schon in der ListView stehen ) in ein listView adden. Jedoch scheitere ich, warum auch immer *gg , an der abfrage ob dieser String schon geaddet wurde.


Delphi-Quellcode:
// logfile auf "[Time] [Tag] und String" durchsuchen
function ReadString(path : string) : string;
const
  searchstring = '[blaaaa] + bluuuub bluuuub:';
var
  gefunden : boolean;
  list, newlist : TStrings;
  z1,datum,release : string;
  i,a,p1,p2 : integer;
begin
  list := TStringList.Create;
  newlist := 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); // first Time String auslesen
    p2 := Pos(']',z1); // last Time String auslesen

    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);

// Release schon geaddet?
    begin
      for a := 0 to list.Count-1 do
      if newlist.Count <> 0 then
      begin
        if newlist.Strings[a] = (datum+' '+release) then
        begin
          gefunden := true;
          break;
        end;
        gefunden := false;
      end;
      if not gefunden then
        newlist.Add(datum+' '+release)
    end;
  result := newlist.CommaText;
  list.free;
  newlist.free;
  end;
end;


thnx für eure hilfe

[edit=sakura] Code durch [Delphi]-Tags ersetzt. Mfg, sakura[/edit]
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
Tanadirian

Registriert seit: 13. Feb 2003
Ort: Pdm
67 Beiträge
 
#2

Re: Problem mit If schleife ...

  Alt 24. Okt 2003, 11:31
Mit

Delphi-Quellcode:
newlist.Sorted:=True;
newlist.Duplicates:=dupIgnore;
wird das Eintragen von doppelten Strings in eine sortierte Stringlist einfach ignoriert!

mfg Tanadirian
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#3

Re: Problem mit If schleife ...

  Alt 24. Okt 2003, 11:44
Das heißt


IF-Bedingung

Schleifen sind...

- for
- while
- repear .. until

weiter Bedingung:

case
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
sharkx

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

Re: Problem mit If schleife ...

  Alt 24. Okt 2003, 11:46
hmm, trotz Sorted und duIgnore added er aber doppelte einträge in der ListView?!
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
Tanadirian

Registriert seit: 13. Feb 2003
Ort: Pdm
67 Beiträge
 
#5

Re: Problem mit If schleife ...

  Alt 24. Okt 2003, 11:59
list, newlist : TStrings; Vielleicht mußt du sie ja auch als TStringList deklarieren? Ich weis nicht ob das so auch ok ist!

mfg Tanadirian
  Mit Zitat antworten Zitat
sharkx

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

Re: Problem mit If schleife ...

  Alt 24. Okt 2003, 12:00
Ich habs als StringList deklariert, jedoch added er immer noch die Dupes :/
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
gekmihesg
(Gast)

n/a Beiträge
 
#7

Re: Problem mit If schleife ...

  Alt 24. Okt 2003, 12:55
das is einfach:

Code:
if liste.IndexOf('string') = -1 then
  liste.add('string');
  Mit Zitat antworten Zitat
sharkx

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

Re: Problem mit If schleife ...

  Alt 24. Okt 2003, 18:55
Würde mich nun aber auch mal Interessieren warum er trotz
Code:
var
 newlist : TStringList;
begin
 newlist.Sorted:=True;
 newlist.Duplicates:=dupIgnore;
.......
doppelte Strings added.
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
 
#9

Re: Problem mit If schleife ...

  Alt 24. Okt 2003, 19:14
Hallo,
vielleicht fehlt
newlist.CaseSensitive := False;
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
 
#10

Re: Problem mit If schleife ...

  Alt 24. Okt 2003, 19:18
Nein, habe ich auch schon getestet. ich poste nochmal die ganze funktion, vieleicht liegt der fehler ja sonstwo ...

Delphi-Quellcode:
// logfile auf "[Time] [Tag] und String" durchsuchen
function ReadString(path : string) : string;
const
  searchstring = '[bla] + blaa bluuuub:';
var
  list, newlist : TStringList;
  z1,datum,release : string;
  i,p1,p2 : integer;
begin
  list := TStringList.Create;
  newlist := TStringList.Create;
// StringList sortieren und keine doppelten Strings hinzufügen
  newlist.Sorted := True;
  newlist.Duplicates := dupIgnore;
  newlist.CaseSensitive := False;
  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;
  newlist.free;
end;
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
Antwort Antwort
Seite 1 von 2  1 2      


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:40 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