Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

UTF-8-Textdatei mit VBS einlesen

Frage Entwicklung VB for Applications

Mitglied: n4426

n4426 (Level 2) - Jetzt verbinden

13.12.2010, aktualisiert 18.10.2012, 13568 Aufrufe, 10 Kommentare

Hallo zusammen,

ich versuch heute schon den ganzen Tag ein UTF-8 Formatierte Textdatei mit VBS einzulesen.

Das funktioniert auch soweit, bis auf Sonderzeichen wie z.B. ß, ä, ö ü ... Ich hab leider nichts gefunden, was funktioniert hat um eine UTF-8-Datei mit VBS zu verarbeiten.

Hier mein VBS-Code.

01.
file = "textdatei.txt" 
02.
 
03.
dim Ausgabe, varText, varAusgabeListe 
04.
Set wshShell = WScript.CreateObject( "WScript.Shell" ) 
05.
 
06.
Set fso = CreateObject("Scripting.FileSystemObject") 
07.
 
08.
If fso.FileExists(file) Then 
09.
Set fi = fso.OpenTextFile(file) 
10.
 
11.
Do While Not (fi.atEndOfStream) 
12.
	varText = fi.Readline 
13.
 
14.
	Ausgabe = split(varText, vbTab) 
15.
	 
16.
	msgbox Ausgabe(3)  
17.
 
18.
Loop 
19.
 
20.
End if
Hat da einer von euch vieleicht eine Idee/Lösung für mich?

Vielen Dank im voraus.

mfg
n4426
Mitglied: MrTrebron
13.12.2010 um 15:57 Uhr
Hi n4426

also was ich dir schon mal sagen kann, das du nicht einfach nur die Textdatei angeben kannst, sondern auch den Pfad zur Datei setzen musst.

Zudem wäre es hilfreich wenn du deine Fehlermeldung mit postest.

Gruß
Norbert
Bitte warten ..
Mitglied: bastla
13.12.2010 um 16:02 Uhr
Hallo n4426!

Hast Du es schon mit
Set fi = fso.OpenTextFile(file, 1, False, True)
versucht?

Grüße
bastla
Bitte warten ..
Mitglied: n4426
13.12.2010 um 16:30 Uhr
Hallo,

@norbert: Hab den Pfad nur hier im Posting weggelassen.

Das Problem besteht eigentlich nur darin, das die Sonderzeichen falsch ausgegeben werden (soll hier z.B. ein ß sein).

b660a8e05ba8564b7ae841f97648aa93 - Klicke auf das Bild, um es zu vergrößern


@bastla: ja, hab ich, da kommt das hier raus .

ac7cea6d782a4abb674809d4115d150c - Klicke auf das Bild, um es zu vergrößern

mfg
n4426
Bitte warten ..
Mitglied: bastla
13.12.2010, aktualisiert 18.10.2012
Hallo n4426!

Stimmt - ich seh' da auch kein einziges ß, ä, ö oder ü (sieht ansonsten aber nicht uninteressant aus) ...

[Edit] Das hat jetzt aber gedauert, bis ich diesen Beitrag (bzw sogar jenen ) gefunden habe ... [/Edit]
[Edit2] Sollte sich mit Dieters Kurzfassung unten erledigt haben ... [/Edit2]

Grüße
bastla
Bitte warten ..
Mitglied: 76109
13.12.2010 um 17:10 Uhr
Hallo n4426!

Versuchs mal so:
01.
Const UTF8Path = "E:\Test\UTF8.txt" 
02.
 
03.
Const adTypeText = 2 
04.
 
05.
Dim UTF8Stream, Text 
06.
     
07.
Set UTF8Stream = CreateObject("ADODB.Stream") 
08.
         
09.
With UTF8Stream 
10.
    .Type = adTypeText 
11.
    .Charset = "UTF-8" 
12.
    .Open 
13.
    .LoadFromFile UTF8Path 
14.
     Text = .ReadText 
15.
    .Close 
16.
End With
Gruß Dieter
Bitte warten ..
Mitglied: n4426
13.12.2010 um 17:36 Uhr
Hallo Dieter,

das Sonderzeichen werden jetzt richtig ausgegeben. Danke.

Allerdings wird jetzt das ganze Textfile in einem rutsch eingelesen. Ich brauchs aber Zeile für Zeile und dann die Zeile wieder am TabStop Trennen, damit ich das ganze weiter verarbeiten kann.

Hast du da was zur hand?

mfg
n4426
Bitte warten ..
Mitglied: bastla
13.12.2010 um 17:46 Uhr
Hallo n4426!

Wenn Du alles in der Variablen "Text" hast, kannst Du ja diese zeilenweise splitten:
01.
For Each varText In Split(Text, vbCrLf) 
02.
    MsgBox Split(varText, vbTab)(3) 
03.
Next
Grüße
bastla
Bitte warten ..
Mitglied: n4426
13.12.2010 um 18:02 Uhr
Hallo Bastla,

danke funktioniert fast einwandfrei. Jetzt ist nur noch das Problem, das nach der letzte Zeile der UTF-8-Datei nicht verarbeitet werden kann/darf, da diese eine leerzeile ist (da schmiert das Script ab). Kann man das noch abfangen?

mfg
n4426
Bitte warten ..
Mitglied: bastla
13.12.2010 um 18:07 Uhr
Hallo n4426!

Entweder direkt abfragen:
If Trim(varText) <> "" Then MsgBox Split(varText, vbTab)(3)
bzw
01.
arrText = Split(varText, vbTab) 
02.
If UBound(arrText) >= 3 Then MsgBox arrText(3)
oder, wenn Du immer die letzte Zeile weg lassen willst:
01.
arrLines = Split(Text, vbCrLf) 
02.
For i = 0 To UBound(arrLines)-1 
03.
    MsgBox Split(arrLines(i), vbTab)(3) 
04.
Next
[Edit] Variablenname auf "arrLines" geändert [/Edit]

Grüße
bastla
Bitte warten ..
Mitglied: n4426
13.12.2010 um 18:13 Uhr
Super.
Vielen Dank an Bastla und Dieter.

Ich werds warscheinlich die erste Variante mit dem Direkten abfragen nehmen, dann dürfte es auch gehen, wenn mal zwischendrin eine Zeile leer sein sollte.

mfg
n4426
Bitte warten ..
Ähnliche Inhalte
Ubuntu
Dateiinhalt in UTF-8 ist nicht gleich UTF-8?
gelöst Frage von lexa-lexaUbuntu6 Kommentare

Hi Linux und PHP Gurus, ich habe ein Problem mit dem Zeichensatz *in* einer Datei und komme nicht weiter: ...

Batch & Shell
Doppelpunktgetrennte Textdatei einlesen Batch
gelöst Frage von Fabian-HaasBatch & Shell3 Kommentare

Hallo, ich habe eine Textdatei auf einem Server, die sieht so aus und möchte aus einer bestimmten Zeile das ...

Batch & Shell
Variable aus VBS in Batch einlesen
gelöst Frage von racer1601Batch & Shell4 Kommentare

Hallo ich habe das Problem das ich die Variable "Ordner" aus einem VBS Script nicht in meine Batch bekomme. ...

Ubuntu
Alle Zeilen mit Zeichen, die nicht auf einer deutschen Tastatur vorhanden sind, in einer UTF-8 Textdatei löschen?
gelöst Frage von takitanoUbuntu3 Kommentare

Hallo liebe Forum-Mitglieder, ich war lange nicht mehr hier. Ich habe ein folgendes Problem: ich will alle Zeilen in ...

Neue Wissensbeiträge
Verschlüsselung & Zertifikate

19 Jahre alter Angriff auf TLS funktioniert immer noch

Information von BassFishFox vor 3 StundenVerschlüsselung & Zertifikate

Interessant zu lesen. Der Bleichenbacher-Angriff gilt unter Kryptographen als Klassiker, trotzdem funktioniert er oft noch. Wie wir herausgefunden haben, ...

Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 14 StundenWindows 102 Kommentare

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 16 StundenSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 1 TagViren und Trojaner3 Kommentare

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

Netzwerkmanagement
NAS über zwei weitere Ethernet Anschlüsse verbinden
gelöst Frage von Sibelius001Netzwerkmanagement16 Kommentare

Sorry - ich bin hier wahrscheinlich als kompetter IT Trottel unterwegs. Aber eventuell kann mir jemand ganz einfach helfen: ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...

Netzwerkgrundlagen
Hi eine blöde frage. xD
Frage von 132954Netzwerkgrundlagen13 Kommentare

Also: Habe 2012 r2 essentials neuinstalliert, allerdings installiert diese version ja gleich diesen gangen AD kram mit, den hab ...