Seite 1 von 2

Sortieren von LinkedList

Verfasst: 10.08.2005 10:57
von Stonedar
Hi!

Ich habe hier nen kleines/großes Problem mit dem sortieren von einer LinkedList.

Ich habe hier eine relativ große LinkedList, die solche Einträge beinhaltet:
"sadasi3zu4awdz7sg"
"2ae342ad435gsdgf2"

Also Strings die aus Zahlen und Buchstaben zusammengemixt sind.
Nun würde ich gerne die ganze Liste sortieren, damit später das entfernen von doppelten Einträgen schneller geht.

Wie kann ich nun diese Liste sortieren?
Mit SortList hats nicht funktioniert...

Kann mir da einer helfen?

Gruß,
Stonedar

Verfasst: 10.08.2005 10:59
von Batze
Wieso hat das nicht funktioniert? :?

Verfasst: 10.08.2005 11:05
von Stonedar
Keine Ahnung ^^

ALso ich habe mal probeweise diese Liste eingegeben:

Code: Alles auswählen

atest
atest
atest
test2
test
test3
test4
test2
test2
test4
test2
Das wird dann im Prog ausgeführt:

Code: Alles auswählen

SortList(liste(), 3)
ResetList(liste()) 
While NextElement(liste())
  Debug liste()
Wend
Und gibt folgendes aus:

Code: Alles auswählen

atest
test4
test3
test
test2
test2
test4
atest
test2
atest
test2
Also für mich ist das nicht sortiert ^^

Verfasst: 10.08.2005 11:16
von Caliban
Also bei mir gibt er das aus:
test4
test4
test3
test2
test2
test2
test2
test
atest
atest
atest

Code: Alles auswählen

NewList Daten.s()

For i=0 To 10
  AddElement(Daten())
  Read Daten()
Next i

SortList(Daten(),3)

ForEach Daten()
  Debug Daten()
Next

DataSection
  Data.s "atest","atest","atest","test2","test","test3"
  Data.s "test4","test2","test2","test4","test2"  
EndDataSection 
edit: ups, hab vergessen alle Daten einzulesen. :roll:

Verfasst: 10.08.2005 11:22
von Stonedar
Also irgendwie habe ich das Gefühl das bei mir etwas nicht stimmt...

Ich habe jetzt deinen Code (Caliban) so wie er da steht, in PB kopiert und ausgeführt.
Er gibt bei mir was ganz anderes aus:

Code: Alles auswählen

atest
atest
atest
test2
test
test3
test4
test2
Woran könnte das liegen?

EDIT: Ah ok, dein Edit ist wohl der Fehler ^^

Damit ich ausschließen kann, dass es daran liegt:
Ich lese die Daten aus einer Datei in die Liste ein:

Code: Alles auswählen

OpenFile(100, Input$)
Repeat
 AddElement(liste())
 liste() = ReadString()
Until (Eof(100))
CloseFile(100)
Da dürfte alles klar sein oder net?

Danach führe ich "SortList(liste(), 3)" aus, und raus kommt, was ich oben stehen habe...

Verfasst: 10.08.2005 11:33
von rolaf
Caliban hat geschrieben:Also bei mir gibt er das aus:
test4
test4
test3
test2
test2
test2
test2
test
atest
atest
atest
Hallo,

nö bei mir kommt es mit Deinem Quellcode auch unsortiert (so wie eingelesen) heraus:

Code: Alles auswählen

atest
atest
atest
test2
test
test3
test4
test2
test2
test4
test2
Ich benutze Version PB 3.93 unter Win2000 SP4 + Rollup1, welche Ihr?

Verfasst: 10.08.2005 12:01
von Caliban
Win2000 SP4, PB 3.94 Beta 4

Verfasst: 10.08.2005 12:23
von Stonedar
WinXP SP2 PB 3.93

Obs an der Version 3.93 liegt?
Oder funktioniert es bei jemandem mit 3.93?

Verfasst: 10.08.2005 12:25
von rolaf
Stonedar hat geschrieben:WinXP SP2 PB 3.93

Obs an der Version 3.93 liegt?
Kann man nun wohl vermuten, naja in Kürze soll ja die 3.94 fertig sein.

Verfasst: 10.08.2005 12:44
von Caliban
Definitiev! Hab PB 3.93 installiert und gleichen Code ausprobiert, dort bekomme ich das gleiche Ergebnis wie ihr.