SortStructuredArray

Für allgemeine Fragen zur Programmierung mit PureBasic.
Martin66119
Beiträge: 282
Registriert: 03.01.2005 11:36

SortStructuredArray

Beitrag von Martin66119 »

Bei der Verwendung von SortStructuredArray(........) hab eich ein Problem.

Code: Alles auswählen

Structure Logfile
  eMail$
  AbrufDatum$
  Anzahl.w
EndStructure

Dim Feld.LogFile(2048) 
Was muss ich nun tun, um mit dem Befehl SortStructuredArray
Feld.Logfile aufsteigend nach den eMails zu sortieren.

Danke für die Hilfe. Ich hoffe ich kann auch mal helfen. Da ich neu bin, wird das zwar noch dauern!

Code-tags gesetzt von Froggerprogger
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8838
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Da [c]email$[/c] ein String ist, brauchst du zunächst einmal die Konstante [c]#PB_Sort_String[/c], wie sie in der Hilfe unter [c]SortStructuredArray()[/c] zu finden ist.
Dann brauchst du noch das Offset von [c]email$[/c] in der Struktur [c]LogFile[/c], also [c]Offset(LogFile\email$)[/c].
Da du aufsteigend einen String sortieren willst, gehört dann noch die Option 2 dazu und fertig ist der Aufruf:

Code: Alles auswählen

SortStructuredArray(Feld(), 2, OffsetOf(LogFile\email$), #PB_Sort_String)
Vieo Spaß! :allright:
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8838
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Martin66119 (PN) hat geschrieben:So wie du es beschrieben hast, habe ich es gemacht! Doch wenn ich dann teste gehts nicht.

Feld(0)\eMail$="fritz.ma@web.de"
Feld(0)\AbrufDatum§= "[18/Feb/2005:16:32:16]"

usw. für jedes Feld(x)

Wenn ich
SortStructuredArray(Feld(), 2, OffsetOf(LogFile\email$), #PB_Sort_String)
und anschließend

MessageRequester("Text", Feld(i)\email$, #PB_MessageRequester_Ok )
das Ergebnis auf dem Bildschirm anzeige, ist jeder Eintrag "leer".

Was mache ich falsch!
Es wäre unkomplizierter einfach ins Forum zu posten. Dann können dir auch andere helfen.

Es wäre schön, wenn du mal ein lauffähiges Beispiel posten könntest, bei dem der Fehler auftritt, denn das Beispiel in der Hilfe funktioniert tadellos.
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1767
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Beitrag von Andre »

@Martin: auch wenn Du wie NicTheQuick geschrieben hat, mal noch ein Beispiel mit dem Fehler posten solltest, nehme ich folgendes an:
PB-Hilfe / SortStructuredArray hat geschrieben:Hinweis: Ist ein Array nicht vollständig gefüllt, dann werden 'Null'-Elemente an den Anfang des Arrays (bei aufsteigender Sortier-Richtung) bzw. an das Ende des Arrays (bei absteigender Sortier-Richtung) sortiert.
Dein Array wird wohl nicht mit allen deklarierten 2049 (0-2048) Feldern gefüllt sein....
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Antworten