Sortieren von LinkedList

Anfängerfragen zum Programmieren mit PureBasic.
Stonedar
Beiträge: 18
Registriert: 20.05.2005 13:39

Sortieren von LinkedList

Beitrag 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
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag von Batze »

Wieso hat das nicht funktioniert? :?
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
Stonedar
Beiträge: 18
Registriert: 20.05.2005 13:39

Beitrag 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 ^^
Caliban
Beiträge: 41
Registriert: 08.09.2004 08:46

Beitrag 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:
Stonedar
Beiträge: 18
Registriert: 20.05.2005 13:39

Beitrag 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...
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Beitrag 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?
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Caliban
Beiträge: 41
Registriert: 08.09.2004 08:46

Beitrag von Caliban »

Win2000 SP4, PB 3.94 Beta 4
Stonedar
Beiträge: 18
Registriert: 20.05.2005 13:39

Beitrag von Stonedar »

WinXP SP2 PB 3.93

Obs an der Version 3.93 liegt?
Oder funktioniert es bei jemandem mit 3.93?
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Beitrag 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.
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Caliban
Beiträge: 41
Registriert: 08.09.2004 08:46

Beitrag von Caliban »

Definitiev! Hab PB 3.93 installiert und gleichen Code ausprobiert, dort bekomme ich das gleiche Ergebnis wie ihr.
Antworten