Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - String nur einmal im Array
Philipp_Reitter - Mo 19.02.07 16:14
Titel: String nur einmal im Array
hi
ich hab nen array[1..1000000] to String und da kommen setzt ne mio strings rein und ich will dass nur immer einer drinnen ist... ok klingt blöd... es kann sein dass 1000 oder so gleich sind aber ich will nur einen drinnen haben von den 1000... wie kann ich das aussortieren lassen?
und das schnell noch dazu wenns geht... (also das aussorieren ned das antworten auf mein topic ^^)
mfg
Philipp
Moderiert von
Tino: Überflüssige Punkte im Titel entfernt.
IngoD7 - Mo 19.02.07 16:24
Nimm anstatt eines Arrays eine TStringList.
Setzte die Eigenschaften Sorted und Duplicates so, dass doppelte Einträge verhindert werden. Siehe dazu Online-Hilfe.
HelgeLange - Mo 19.02.07 16:27
Also wir haben das bei kleineren Sachen mal so gelöst : Einfach eine TStringList mitlaufen lassen, die sortiert ist und doppelte Strings nicht zulässt. Dann bevor du den String ins Array einfügst, einfach in die StringList einfügen, wird er angenommen, hast Du ihn noch nicht...
Philipp_Reitter - Mo 19.02.07 20:55
ok ... das mit der string list ist gut nur...
ich hab 300700 strings und das auslesen dauert schon so lange ... deshalb ja der array weil der schneller ist..
mit stringlist dauerts ewig!
ich denk ich lass dann einfach zum schluss wenn ich die strings in ne datei schreibe einfach das aussortieren lasse indem ich einfach so in etwa sag:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| for i:=0 to 1000000 for i2:= to 1000000 if array[i] <> array2[i2] then begin array2[i3]:=array[i]; i3:=i3+1; end; end; end; |
müsste doch hinhauen oder
(hab gad kein delphi zum probieren....)
mfg
Philipp
Calculon - Mo 19.02.07 21:10
Hab' ich das richtig verstanden: In array und array2 steht dasselbe drin? Zum einen ist das speichernutzungstechnisch von Nachteil und zum anderen durchläufst du auf diese Weise etwas mehr als 10^12 Iterationsschritte. Ich weiß ja nicht wie die Stringlist das intern handhabt, aber ich behaupte jetzt einfach mal die ist effektiver.
Gruß
Calculon
--
IngoD7 - Mo 19.02.07 21:57
Philipp_Reitter hat folgendes geschrieben: |
ich denk ich lass dann einfach zum schluss wenn ich die strings in ne datei schreibe einfach das aussortieren lasse indem ich einfach so in etwa sag: |
Ach...?! Und bis dahin - also bis zum "Schluss" - ist es egal, ob die Liste doppelte Einträge hat?
Wofür dient denn dein Programm?
Das Auslesen einer String-Liste dauert übrigens in etwa gleich lange wie das Auslesen eines String-Arrays.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!