| |
Visual-Basic EinsteigerRe: einlesen einer Textdatei | | | Autor: Preisser | Datum: 27.04.12 15:43 |
| Hallo,
dabei handelt es sich vermutlich um eine Textdatei, die als UTF-16 LE gespeichert ist. Das BOM (Byte Order Mark) bei UTF-16 LE besteht aus FF FE (hex). Wenn diese Datei als Windows-1252 eingelesen wird, erscheinen die ersten 2 Bytes als "ÿþ".
Du müsstest also z.b. prüfen ob die ersten 2 Bytes der Textdatei "FF FE" sind und dann die Datei als UTF-16 LE einlesen. | |
einlesen einer Textdatei | | | Autor: sinus | Datum: 27.04.12 14:30 |
| Hallo,
beim Einlesen einer Textdatei habe ich das Problem das die ersten beiden Zeichen ein
y(mit ü-Punkten)und ein bsind. Ich vermute das irgendwo im Speicher oder im Puffer
diese beiden buchstaben gespeichert sind.
Im Code erfolgt ein zweites einlesen da ist dieser Fehler nicht mehr vorhanden.
Function array*****()
Dim i As Integer
Dim temp As String
Dim tempparts() As String
Open "h:\*******.txt" For Input As #1
i = 0
Do While Not EOF(1)
Line Input #1, temp
tempparts = Split(temp, ",")
user(i).Name = tempparts(0) & " " & tempparts(1)
user(i).abteilung = tempparts(2)
user(i).telefon = tempparts(3)
user(i).email = tempparts(4)
user(i).usern = tempparts(5)
user(i).selectvon = False
user(i).dwahl = tempparts(6)
i = i + 1
Loop
Close #1
End Function Muss ich die Variable temp vorher als leer definieren oder den Line Input Befehl?
Vielen Dank für die Hilfe im Voraus.
Gruß
Birger
Beitrag wurde zuletzt am 27.04.12 um 14:47:21 editiert. | |
Re: einlesen einer Textdatei | | | Autor: eierlein | Datum: 27.04.12 16:04 |
| Versuch's mal so.
...
Do While Not EOF(1)
Line Input #1, temp
If i = 0 Then temp = mid$(temp, 3)
tempparts = Split(temp, ",")
... 0 | |
Re: einlesen einer Textdatei | | | Autor: sinus | Datum: 02.05.12 13:33 |
| Hallo eierlein,
vielen Dank das hat Prima funktioniert. Wenn ich das richtig verstanden habe. Springe ich
immer in der ersten Zeile an die 3te Adresse.
Greetz
sinus | |
Re: einlesen einer Textdatei | | | Autor: Preisser | Datum: 02.05.12 14:40 |
| Hallo,
auf den ersten Blick scheint das zwar zu funktionieren, da VB6 hier anscheinend die \0-Bytes überspringt; aber wenn die Datei tatsächlich in UTF-16 LE ist, werden wahrscheinlich auch Zeichen mit Unicodewerten > U+00FF, wie z.B. "€", falsch eingelesen.
Man müsste z.B. die Datei byteweise einlesen und dann anhand des BOMs entscheiden, welche Kodierung man verwendet. Da das alles bei VB6 aber ziemlich umständlich ist, wäre es am einfachsten, auf VB.Net zu wechseln, da dort schon Unterstützung für verschiedene Encodings direkt integriert ist und der StreamReader beispielsweise die Kodierung auch anhand des BOMs erkennen kann.
Beitrag wurde zuletzt am 02.05.12 um 14:55:35 editiert. | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats sevAniGif (VB/VBA)
Anzeigen von animierten GIF-Dateien
Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. Weitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|