String in Einzelteile zerlegen?

Guten Abend Forum,

ich habe Schwierigkeiten, meinen ausgelesenen String in Einzelteile zu zerlegen. Wenn ich die Datei in einem TextEditor anschaue, stehen zwischen den einzelnen Werten immer zwei kleine Kästchen. Diese Kästchen habe ich als Leerzeichen interpretiert. Ist das richtig oder was stellen diese Kästchen dar?
nachfolgenden Code habe ich geschrieben und er funktioniert auch wunderbar, wenn ich besipielsweise an Punkten (.) trennen lasse. Wie trenne ich aber meinen String an den "leerzeichen" -stellen?

Vielen Dank Für eure Hilfe.


Dim pFile As IGxFile
Dim ausgabe As String
Set pFile = New GxFile
pFile.Path = "C:\Worldfile\ref_1893.jgw"
Open pFile.Path For Input As #1
Input #1, ausgabe
Close #1
Dim pArray() As String
dim trenner as String
trenner = "."
pArray() = Split(ausgabe, trenner, , vbTextCompare)
Guten Abend Gast,

> Diese Kästchen habe ich als Leerzeichen interpretiert.
> Ist das richtig oder was stellen diese Kästchen dar?

Nein. Die Kästchen dürften Dummies für die in Deinem System nicht darstellbaren Zeichen 0-31/127 sein (siehe vba-Hilfe stichwort "Zeichensatz"), können also verschiedene Zeichen darstellen. In der Regel sind es Zeilenumbrüche, -vorschübe oder Tabulatoren.
(Aber keine Leerzeichen. Wenn Du nach Leerzeichen trennen willst, gibst Du halt ein Leerzeichen ein: Trenner = " " , oder läßt den delimiter der split-funktion einfach ganz weg)

Wenn Dein "Ausgabe"-string nicht allzu lang ist, würd' ich's einfach mal händisch per asc() und msgbox testen:

...
Dim i As Long
For i = 1 To Len(Ausgabe)
'wenn nicht darstellbares Zeichen, dann nummer anzeigen
If Asc(Mid(Ausgabe, i, 1)) <= 31 or Asc(Mid(Ausgabe, i, 1)) = 127 Then
MsgBox Asc(Mid(Ausgabe, i, 1)),,i
'Wenn darstellbar, als Zeichen darstellen
Else
MsgBox Mid(Ausgabe, i, 1),,i
End If
Next i
...

Wenn Du dann eine einheitliche Nummer (bzw. Nummernfolge) des "Zeichen hinter dem Kästchen" ermittelst, die Du als delimiter verwenden willst, kannst Du diesem das Zeichen der Nummer per chr() wieder als string zuweisen:

...
Dim trenner as string
Trenner = chr(HierdieErmittelteNummerEintragen)
...

Vermutlich sind Deine beiden Kästchen Zeilenvorschübe (Zeichen 10), dann wäre Dein Trenner also

Trenner = chr(10) & Chr(10)


Viele Grüße
Jörg Ostendorp
Kleiner Nachtrag,
ist so etwas dämlich, weil Du ja ggf auch Zahlen als Zeichen zurückkriegst. Besser irgendwie noch kennzeichnen, ob es sich um ein Zeichen oder eine Nummer handelt:

MsgBox "Nummer: " & Asc(Mid(Ausgabe, i, 1)),,i

'bzw
MsgBox "Zeichen: " & Mid(Ausgabe, i, 1),,i

oder etwas in der Art..

Viele Grüße
Jörg Ostendorp
Danke Jörg,

ich habe den Durchlauf Zeichen für Zeichen einmal gemacht und dabei festgestellt, das es tatsächlich das zeichen 10 ist. dann habe ich wie du geschrieben hast, den Trenner als Chr(10) & chr(10) definiert und jetzt klappt es wunderbar.
Hallo ?,

nur zu deiner Info: Bei CHR(10) handelt es sich um ein Zeilenende, wie es unter UNIX definiert ist. Mit einem Texteditor wie z. B. TEXTPAD kannst du deine ASCII-Datei wie unter UNIX ansehen und auch als PC-Datei speichern, so dass sie auch mit anderen Windows-Editoren und -Textverarbeitungsprogrammen uebersichtlich dargestellt wird, falls das fuer dich vorteilhaft sein sollte.

Gruss

Uwe