Arrays in Maps

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Arrays in Maps

Beitrag von Bisonte »

Hallo.

Ich verzweifel hier gerade an einem "Syntax Fehler"

Code: Alles auswählen

Structure xyz
  Array String.s(1)
EndStructure
Structure def
  Map Name.xyz()
EndStructure

AB.def
ab\Name("Hallo")\String(0) = "Hey"

Dim ab\Name("Hallo")\String.s(10)
Dim oder ReDim gibt immer Syntax Fehler.

Wenn ich allerdings Map durch List ersetze klappt es reibungslos.

Code: Alles auswählen

Structure xyz
  Array String.s(1)
EndStructure
Structure def
  List Name.xyz()
EndStructure

AB.def
AddElement(ab\Name())
ab\Name()\String(0) = "Hey"
Dim ab\Name()\String.s(10)
Wie kann ich aber nun eine Map mit einem integrierten Array neu Dimensionieren ?
Weil bei der Initialisierung die Anzahl nicht bekannt ist. Eine Liste ist nicht wünschenswert,
da ich diese Daten in einer bestimmten Reihenfolge brauche... (Datenbank Row&Field)
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Arrays in Maps

Beitrag von STARGÅTE »

Liegt vermutlich an dem String der bei der Map benutzt wird.

Ntze ein "zwischen" Pointer, um das Array zu vergrößern:

Code: Alles auswählen


Structure xyz
  Array String.s(1)
EndStructure
Structure def
  Map Name.xyz()
EndStructure

AB.def
ab\Name("Hallo")\String(0) = "Hey"

*xyz.xyz = @ab\Name("Hallo")

Dim *xyz\String(10) 

Debug ArraySize(ab\Name("Hallo")\String())
EDIT: Mit einem Pointer an dieser Stelle zu arbeiten ist auch ein Geschwindigkeitsvorteil, da nicht bei jedem Abruft des Map-Element über den String, der Hash errechnet werden muss, usw.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Re: Arrays in Maps

Beitrag von Bisonte »

Der Retter in der Not :allright:

Ist das nun ein Bug ? Oder steht das irgendwo geschrieben, dieses Verhalten ?
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Arrays in Maps

Beitrag von STARGÅTE »

Ne ist vermutlich n BUG ...
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Re: Arrays in Maps

Beitrag von DrShrek »

STARGÅTE hat geschrieben:Ne ist vermutlich n BUG ...
DAnn macht bitte auch eine BUG Meldung, sonst bleibt das womöglich ungefixed (bis es der nächste merkt)
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Arrays in Maps

Beitrag von STARGÅTE »

PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Antworten