Hallo,
ich habe ein Text wie zeile.s = "QWERT ASDFG 123" und möchte jeden Elemnt gesplittet mit " " in ein array speichern ?
Danke
Marcel
Text element in ein array
Text element in ein array
Win-10, PB 5.31 (Windows - x86)
Re: Text element in ein array
Das Forum ist voll von guten Lösungen. Suche z.b: nach Split oder ähnlich. (Bei den meisten Lösungen lernt man auch noch was über Pointer)
Und, haste es schon mal selbst versucht?
Wenn es selbstgemacht sein soll, geht es mit zwei PB-Funktionen (schnell und einfach):
Oder als Procedure:
Okay, wenn du bis hier gekommen bist gibts noch einen Link als Belohnung.
Eine Lösung von mk-soft.
SplitString to list or array with option double-quotes (CSV)
Und, haste es schon mal selbst versucht?
Wenn es selbstgemacht sein soll, geht es mit zwei PB-Funktionen (schnell und einfach):
Code: Alles auswählen
Define zeile.s = "QWERT ASDFG 123"
Define Sep$ = " "
Define Index, Count
Define Dim Result$(0) ; Empty Array
Count = CountString(zeile, Sep$)
If Right(zeile, 1) <> Sep$ : Count + 1 :EndIf
Dim Results$(Count) ; alloc the memory
For Index = 1 To Count
Results$(Index - 1) = StringField(zeile, Index, Sep$)
Debug Str(Index) + " = " + Results$(Index - 1)
Next Index
Code: Alles auswählen
Define zeile.s = "QWERT ASDFG 123"
Define Dim Result$(0) ; Empty Array
Procedure StringToArray(String$, Array Out$(1), Sep$) ; return number of array items
Protected result, index, count, field$
count = CountString(String$, Sep$)
If Right(String$, 1) <> Sep$ : count + 1 :EndIf
Dim Out$(count) ; alloc (and clear) the memory
For index = 1 To count
Out$(index-1) = StringField(String$, index, Sep$)
Next Index
ProcedureReturn count ; == ArraySize(Out$())
EndProcedure
Count = StringToArray(zeile, Result$(), " ")
Debug "Array Size == " + Count
For Index = 0 To Count - 1
Debug Str(index) + " = " + Result$(Index)
Next Index
Eine Lösung von mk-soft.
SplitString to list or array with option double-quotes (CSV)
Using PureBasic latest stable version and current alpha/beta (x64) on Windows 11 Home
Re: Text element in ein array
Ich hätte es jetzt so gemacht (ist ein klein wenig kürzer)
Code: Alles auswählen
zeile.s = "QWERT ASDFG 123"
Dim myarray.s(3)
For k = 1 To CountString(zeile, " ") + 1
myarray(k - 1) = StringField(zeile, k, " ")
Debug myarray(k - 1)
Next
PB 6.10