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... :wink:

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 :praise:

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) :allright:

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 :o :?

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..." :)