Liste mit Strings in String-Array casten

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

Xeres

Moderator

BeitragDi, Nov 22, 2011 13:36
Antworten mit Zitat
Benutzer-Profile anzeigen
String(obj) und obj.toString() geben in jedem Fall einen String zurück. Die .toString() Methode gibt dabei die Speicheradresse aus, falls es kein String ist, dass solltest du mit dem Null-String "" abfangen:

BlitzMax: [AUSKLAPPEN]
Function StringArray:String[] (list:TList, stringsOnly:Int = True)
If Not list Then Return Null
Local array:String[]

If stringsOnly Then
For Local obj:Object = EachIn list
array:+[String(obj)]
Next
Else
For Local obj:Object = EachIn list
'* Der String "" gilt als NULL!
If String(obj) Then array:+[String(obj)]
Next
EndIf

Return array
End Function



Import brl.linkedlist nicht vergessen, sonst ist dein Beispiel auch nicht lauffähig.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

Tritium

BeitragDi, Nov 22, 2011 15:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry, das Import BRL.LinkedList hab ich versehentlich nicht mitkopiert, da hast Du Recht. Habs verbessert.

Aber was meinst Du mit dem Anderen? Ich hab beabsichtigt, dass das Array in jedem Fall mit Strings gefüllt wird. Wenn "stringsOnly" gesetzt ist, dann werden nur "echte" String-Objekte in Strings umgewandelt, alle anderen gehen als leerer String in das Array ein. Wenn stringsOnly aber False ist, dann werden echte Strings in Strings und andere Objekte in Speicheradressen umgewandelt.

Ah, noch was: Geht es schnell, zwei Arrays zusammenzufügen? Ich dachte bisher immer, dass das eher langsam ist und hab das Array deshalb schon vorher erstellt.

Xeres

Moderator

BeitragDi, Nov 22, 2011 15:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie du mit den anderen Objekten verfährst, liegt natürlich bei dir. Speicheradressen/Leere Strings können natürlich erwünscht sein.
Oh, ja, deine indexierte Variante ist bei weitem schneller Embarassed
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group