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

Mitglied: n4426

n4426 (Level 2) - Jetzt verbinden

13.12.2010, aktualisiert 18.10.2012, 13799 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

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

Python

Python mal utf-8 mal nicht

gelöst Frage von peterpaPython1 Kommentar

Hallo, ich versuche gerade ein Programm zu schreiben, in Python, welches eine große HTML Datei in mehrere kleine aufspaltet. ...

Neue Wissensbeiträge
Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 6 StundenWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Sicherheit
Microsoft und Skype: Sicherheit
Information von kgborn vor 6 StundenSicherheit

Die Tage gab es ja einige Berichte zur Sicherheit des Skype-Updaters. Der Updater von Skype läuft unter dem Konto ...

Viren und Trojaner
Neue Avira Management Console Egosecure
Information von OSelbeck vor 1 TagViren und Trojaner1 Kommentar

Hallöchen zusammen, ich weiß nicht, wer von euch noch Avira einsetzt Wir haben ein paar Kunden Avira hatte ja ...

Datenschutz

Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10

Information von Penny.Cilin vor 1 TagDatenschutz8 Kommentare

Hallo, passend zum Thema Ablösung LIMUX in München ein Beitrag bei Heise (siehe Link folgend). Behörden ignorieren Sicherheitsbedenken gegenüber ...

Heiß diskutierte Inhalte
Exchange Server
Exchange Postfach Einbindung Betriebs-rat -Arzt, Bewerbung .
Frage von YellowcakeExchange Server15 Kommentare

Hey ich habe da mal eine Denksport Aufgabe bekommen Genutzt wird ein Exchange Server 2010. hier gibt es den ...

Datenschutz
Telematikinfrastruktur Erfahrungsaustausch
Frage von MOS6581Datenschutz12 Kommentare

Moin, unter meinen Kunden befinden sich auch einige Ärzte, welche sich künftig mit der Telematikinfrastruktur-Geschichte der Gematik herumärgern dürfen. ...

Windows Server
Delgegierte OU via RDP verwalten - Objektverwaltung zuweisen
gelöst Frage von TOAOICEWindows Server12 Kommentare

Hallo, ich habe folgendes Problem. Ich möchte in meiner Domäne (Server2016), einer Gruppe (OUAdmin) Berechtigungen auf die OU Test ...

Windows Server
Downgrade von Windows Server 2016 auf 2012 - Wie vorgehen?
Frage von EstefaniaWindows Server12 Kommentare

Guten Ich habe eine Frage an Erfahrene unter euch. Durch einen InPlace Upgrade wurde Windows Server 2012 auf die ...