Seite 1 von 2
[gelöst] Wie "mehrzeiligen" string aufsplitten ?
Verfasst: 05.12.2006 21:16
von scholly
Von einem WMI-Aufruf
Code: Alles auswählen
opticals$ = WMI("SELECT * FROM Win32_cdromdrive,drive,name")
bekomme ich einen mehrzeiligen String zurück. Nach dem Speichern aus dem Debugger-Fenster heraus habe ich folgendes File:
Code: Alles auswählen
drive = H:
name = ATAPI CD-R/RW 4X4X32
drive = I:
name = HL-DT-ST DVDRAM GSA-4163B
Die Wertepaare werden augenscheinlich durch x0a0D getrennt.
Muß ich das "zu Fuß" aufdröseln oder gibts eine PB-Funktion, die mir hilft ?
TIA....
scholly
Verfasst: 05.12.2006 21:17
von AND51
StringField() ist dein Freund...

Verfasst: 05.12.2006 21:26
von Kaeru Gaman
x0a0d
=> 1.byte $0d 2.byte $0a
=> #CRLF$
..normales "newline"
Verfasst: 05.12.2006 21:29
von scholly
Wie geht das denn?
Doku hat geschrieben:A one character 'Delimiter$' is used to split the string
Aber der Trenner besteht aus 2 Chars: 0A und 0D hintereinanander

Oder mißversteh ich da was ?
Verfasst: 05.12.2006 21:48
von mk-soft
Code: Alles auswählen
StringField(opticals$, 1, #CRLF$)
; oder
StringField(opticals$, 1, #LFCR$)
Verfasst: 05.12.2006 22:06
von scholly
mk-soft hat geschrieben:
StringField(opticals$, 1, #LFCR$)
Danke

Verfasst: 05.12.2006 22:09
von AND51
Um's nochmal zu verdeutlichen: Der Separator$ beim Befehl StringField$ kann ein beliebiger String sein, also auch 2 zeichen oder meht umfassen.
Hier findest du weitere
Nützliche String-Funktionen (z. B. StringField_InsertString) 
Verfasst: 05.12.2006 22:56
von remi_meier
Kann er nicht:
Code: Alles auswählen
s.s = "hallo#-du"
Debug StringField(s, 0, "#-")
Debug StringField(s, 1, "#-")
Debug StringField(s, 2, "#-")
Debug StringField(s, 3, "#-")
Mach einfach zuvor ein ReplaceString(file.s, #CRLF$, #LF$)
Verfasst: 05.12.2006 23:11
von mk-soft
Stimmt:
Gibt den Feldinhalt des 'String$' an der angegebenen Stelle 'Index' zurück. 'Trennzeichen$' ist das Zeichen, das zur Aufteilung des Strings benutzt wird (nur ein Zeichen lang). Die erste 'Index' Position ist 1.
Allso
Code: Alles auswählen
opticals$ = "Hallo" + #LFCR$ + "Welt"
opticals$ = ReplaceString(opticals$, #LFCR$, #LF$)
Debug StringField(opticals$, 1, #LF$)
Debug StringField(opticals$, 2, #LF$)
Verfasst: 06.12.2006 17:28
von AND51
> Kann er nicht
Stimmt
Das habe ich in meiner ganzen Laufbahn nie gemerkt... Jetzt bricht aber 'ne Welt zusammen...
StringField() war immer mein absoluter Lieblingsbefehl...
Ab ins "Feature Request Forum..."
