Line-In mit UTF-8

14/05/2008 - 16:32 von Ingi70 | Report spam
Hallo NG,

ich lese Stammdaten als Textdatei, feste Lànge mit Line-In aus, und
schreibe sie in eine Datenbank.

Das klappt auch soweit gut, wie es sich ium ASCII Dateien handelt.
Habe ich z.b. eine Schwedische Adresse : Måtsholmvàgen 7, dann kommt
nur Müll raus. Kann ich ja vielleicht noch akzeptieren, da es sich nur
um einen Viewer handelt. Viel schlimmer ist allerdings, das sich dabei
die Feldlànge àndert, und sich die Zeichen dann nach hinten
verschieben, und dies ist àrgerlich. STREET ist dann nàmlich nicht
mehr 60 Zeichen lang, sondern 63 Zeichen

Also wie kann ich Access (2003) dazu bekommen, in UTF-8 einzulesen ?

Vielen Dank für Ideen und Lösungsansàtze

Gruß Ingo
Ratingen/Germany

hier der codeschnipsel :

Open strPathFile For Input As #intFileNo

Do While Not EOF(intFileNo)
strzeile = strzeile + 1
Line Input #intFileNo, strLine
'prüfen, ob Ende
If Len(Trim(Nz(strLine))) > 0 Then

With rs1
.AddNew
!SATZ = Mid(strLine, 1, 2)
!LFDN = Mid(strLine, 3, 7)
.
.
.
!NAME4 = Mid(strLine, 180, 40)
!STREET = Mid(strLine, 220, 60)
!HOUSE_NUM1 = Mid(strLine, 280, 10)
.
.
.Update
End With
 

Lesen sie die antworten

#1 Christoph Schneegans
14/05/2008 - 18:50 | Warnen spam
"Ingi70" schrieb:

Also wie kann ich Access (2003) dazu bekommen, in UTF-8 einzulesen ?



Mit einem ADODB.Stream kannst du leicht den kompletten Text einer
UTF-8-codierten Datei auslesen:

Sub ReadFromUtf8File()

Dim str As ADODB.Stream: Set str = New ADODB.Stream
str.Charset = "utf-8"
str.Open
str.LoadFromFile "foo.txt"
Dim s As String: s = str.ReadText(-1)
MsgBox s
str.Close

End Sub

Zeilenweises Lesen ist offenbar schwieriger. Du brauchst auf jeden
Fall einen Verweis auf die Bibliothek, hier tut es mit "Microsoft
ActiveX Data Objects 2.7 Library".

<http://schneegans.de/usenet/mid-schreibweisen/> · Postings verlinken

Ähnliche fragen