Einzelnen Beitrag anzeigen

Benutzerbild von Dano
Dano

Registriert seit: 12. Aug 2004
49 Beiträge
 
#6

Re: Stringlist nach fehlenden Werten durchsuchen?!?

  Alt 26. Okt 2004, 21:20
hi,

wenn du nur eine liste vervollständigen willst, dann wäre der einfachste und schnellste weg einmal den minimalwert und dann den maximalwert festzustellen, so wie es der erte teil von shmia's funktion zeigt
Delphi-Quellcode:
// minimalen und maximalen Wert feststellen
minWert := MaxInt;
maxWert := MinInt;
for i := 0 to StringListe.count-1 do
begin
   wert := StrToInt(StringListe[i]);
   if wert > maxWert then maxWert := wert
   else if wert < minWert then minWert := Wert;
end;
und dann einfach eine neue liste mit werten zwischen min und max erstellen... dann sparste dir die vielen vergleiche
denn:if StringListe.IndexOf(IntToStr(i)) = -1 then IndexOf vergleicht die werte in der liste solange bis er einen findet, oder wenn er keinen findet gibt er -1 zurück

also einmal die ganze liste durchsuchen wäre genauso wie einmal die ganze liste neu zu schreiben....
nur beim duchsuchen wiederhot er die suche bei 100 einträgen 100mal

also 1mal schreiben oder 100mal suchen...?
Delphi-Quellcode:
// minimalen und maximalen Wert feststellen
minWert := MaxInt;
maxWert := MinInt;
for i := 0 to StringListe.count-1 do
begin
   wert := StrToInt(StringListe[i]);
   if wert > maxWert then maxWert := wert
   else if wert < minWert then minWert := Wert;
end;

// einfach alle werte in dem bereich anlegen.....
for i := minWert+1 to maxWert-1 do NeuStringListe.Add(IntToStr(i));
ich hoffe ich habe dein problem richtig verstanden..
wenn du natürlich wissen willst welche werte fehlen, dann hilft meine version nicht

ansonst kannst du die liste vorher sortieren und dann einfach überprüfen ob die zahlen aufeinander folgen, wenn nicht mußt du eine einfügen
das spart auch ein haufen sucherrei

mfg Dano
  Mit Zitat antworten Zitat