Hallo,
ich bin mir sicher, dass ich eine solche Funktion schon mal gesehen habe. Aber wo?
Ich möchte z.B. den String "23,514,99915,Schmitz" in ein Array {23,514,99915,"Schmitz"} umwandeln? Mir wäre auch schon weiter geholfen, wenn man im Ergebnis nur Zahlen oder nur Strings im Array hätte.
Bitte, bitte Hilfe. Ich möcht's nicht selbst schreiben...
Merci, danke und thank you
Christof
Textfeld in Array umwandeln?!
Moderator: Moderatoren
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Christof,
Du musst erstmal Deinen String richtig aufbauen - und zwar folgendermassen:
Sollte gehen - zumindest für eine Zeile. Bei mehreren musst Du halt entsprechend zeilenweise vorgehen.
Viele Grüße,
Martin
Du musst erstmal Deinen String richtig aufbauen - und zwar folgendermassen:
Code: Alles auswählen
cArray := "23,514,99915,Schmitz"
cArray := "{" + cArray + "}"
cArray := strtran( cArray, ",", "," + chr( 34 ), 3 )
cArray := strtran( cArray, "}", chr( 34 ) + "}" )
aArray := &cArray
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Lewi
- 1000 working lines a day
- Beiträge: 830
- Registriert: Di, 07. Feb 2006 14:10
- Wohnort: Hamburg
- Danksagung erhalten: 2 Mal
Hi,
nachfolgend eine Funktion, die einen übergebenen String in ein Array umwandel:
Gruß, Olaf
nachfolgend eine Funktion, die einen übergebenen String in ein Array umwandel:
Code: Alles auswählen
/************************************
* Str2Array( <cStr>, [cDelim] )
Beispiel: Str2Array( cStr, ";" )
************************************/
FUNCTION Str2Array(cString, cDelim )
LOCAL aRet := {}
Local nX := 1
Local nPos := 0
LOCAL nLen
LOCAL cRet
cDelim := IIF( cDlim == NIL, ";", cDelim)
if Valtype( cString) <> "C"
RETURN aRet
endif
nLen := LEN( cString )
cRet := SPACE(nLen)
WHILE ( .T. )
nPos := AT(cDelim, cString, nX)
IF nPos > 0
cRet := SubStr(cString, nX, nPos-nX)
AADD(aRet, cRet)
nX := ++nPos
ELSEIF nX <= nLen
cRet := SubStr(cString, nX)
aadd(aRet, cRet)
exit
ELSEIF nX > nLen
aadd(aRet, "")
exit
ELSE
exit
ENDIF
ENDDO
RETURN ( aRet )
Gruß, Olaf