Fehler in Beispiel für SortStructuredArray

Für allgemeine Fragen zur Programmierung mit PureBasic.
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

Fehler in Beispiel für SortStructuredArray

Beitrag von NicTheQuick »

Hi Mädels, besonders André!

Das hier ist das Beispiel für [c]SortStructuredArray()[/c] in der Hilfe:

Code: Alles auswählen

Structure Animal
  Name$
  Speed.l
EndStructure
  
Dim Animals.Animal(2)
  
Animals(0)\Name$ = "Tiger"
Animals(0)\Speed = 10
  
Animals(1)\Name$ = "Jaguar"
Animals(1)\Speed = 40
  
Animals(2)\Name$ = "Zebre"
Animals(2)\Speed = 30
  
  ; Sortiert das Array nach dem Feld 'Name$', welches ein String ist
  ;
SortStructuredArray(Animals(), 0, OffsetOf(Animal\Name$), #PB_Sort_String)
  
For k=0 To 2
  Debug Animals(k)\Name$+" - Speed: "+Str(Animals(k)\Speed)
Next
  
  ; Sortiert das Array nach dem Feld 'Speed', welches ein Long ist
  ;
SortStructuredArray(Animals(), 0, OffsetOf(Animal\Speed), #PB_Sort_Long)
  
For k=0 To 2
  Debug Animals(k)\Name$+" - Speed: "+Str(Animals(k)\Speed)
Next
Mich irritert allerdings, dass beim ersten Aufruf von [c]SortStructuredArray()[/c] die Sortier-Option auf 0 steht. Denn die Optionen 0 und 1 sind nur für Zahlen gedacht. Da hier aber nach Strings sortiert wird, müsste dort demnach Option 2 oder 3 stehen.
Lustigerweise scheint das Beispiel zwar zu funktionieren, aber es ist sicherlich nicht so programmiert wie es eigentlich sein sollte.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

>> 0: Sortiert das Array in aufsteigender Richtung (kleine Zahlen zuerst)

sortiert auch Strings, Klein- und Großschreibung wird unterschieden.
also Beispiel korrekt, Erläuterung in der Hilfe nicht ausführlich genug

gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
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 »

Ich kümmere mich mal drum, d.h. frage vor einer Änderung erstmal noch Fred.
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Antworten