Seite 1 von 1
Text element in ein array
Verfasst: 12.11.2025 11:17
von marcelx
Hallo,
ich habe ein Text wie zeile.s = "QWERT ASDFG 123" und möchte jeden Elemnt gesplittet mit " " in ein array speichern ?
Danke
Marcel
Re: Text element in ein array
Verfasst: 12.11.2025 12:29
von Axolotl
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):
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
Oder als Procedure:
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
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)
Re: Text element in ein array
Verfasst: 12.11.2025 14:06
von marcelx
Wunderbar
Danke
Re: Text element in ein array
Verfasst: 12.11.2025 16:15
von H.Brill
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