Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: nach VBA bearbeitung Unicode verloren.

nach VBA bearbeitung Unicode verloren.
22.08.2016 21:39:24
rocketfox
Hallo ich habe ein VBA Script
und möchte eine externe Text Datei bearbeiten.
In diesem Beispiel die erste zeile ersetzen.
das Script funkioniert soweit auch.
https://www.herber.de/bbs/user/107781.txt
Anbei die Beispiel datei sie sollte in "Message_.txt" umbenannt werden
in dieser sind ca 100 Sonderzeichen.
nach Bearbeitung der Datei mit dem Script verliert die Datei aber das Unicode Format.
also die Frage: Gibt es eine Möglichkeit das zu verhindern?

Sub first_line()
Grundpfad = ActiveWorkbook.Path
Dim vntIn, strTmp As String
Dim zahler As Integer
vntIn = "Erste Zeile geändert"
Open Grundpfad & "\Message_" & ".txt" For Input As #1
Do While Not EOF(1)
Line Input #1, strTmp
n = n + 1
Select Case n
Case 1: vntIn = vntIn
Case Else: vntIn = vntIn & vbCrLf & strTmp
End Select
Loop
Close #1
Open Grundpfad & "\Message_" & ".txt" For Output As #1
Print #1, vntIn
Close #1
End Sub

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: UFT-8 (65001)
22.08.2016 22:24:12
Fennek
Hallo,
importiere die txt-Datei zuerst in ein xl-Arbeitsblatt mit der Option Zeichencode UFT-8 (65001). Dabei bleiben die Unicode-Zeichen erhalten.
mfg
AW: UFT-8 (65001)
22.08.2016 23:54:32
rocketfox
Hallo Fennek,
das Problem ist das ich als Ziel eine Text Datei benötige.
In meiner Orginal Text sind auch Anführungszeichen enthalten.
mit einem weiteren Im / export drehe ich mich also ich Kreis. Da die Anführungszeichen beim exportieren verdoppelt werden und ich diese wieder entfernen ( über ein Script.)
Die Lösung die ich also Suche ist die Datei als UFT-8 (65001) zu bearbeiten. das wäre Perfekt wenn irgendwie möglich.
gruß chris
Anzeige
nach VBA bearbeitung Unicode verloren.
23.08.2016 17:41:27
Anton
Hallo Chris,
so vielleicht:
Sub b()
Dim fso As Object, sInhalt As String, vInhalt, sDatei As String
Set fso = CreateObject("Scripting.FileSystemObject")
sDatei = "C:\Temp\utf.txt" 'Pfad anpassen
Set f = fso.OpenTextFile(sDatei, 1, True)
sInhalt = f.ReadAll
f.Close
vInhalt = Split(sInhalt, vbCrLf)
vInhalt(0) = "Erste Zeile ersetzt"
Set f = fso.OpenTextFile(sDatei, 2, True)
f.Write Join(vInhalt, vbCrLf)
f.Close
Set fso = Nothing
End Sub
mfg Anton
Anzeige
AW: nach VBA bearbeitung Unicode verloren.
23.08.2016 22:20:26
rocketfox
Hallo Anton Danke für die Mühe.
Bei mir wird die erste Zeile eingefügt aber der Rest der Datei ist dann gelöscht.
ich verstehe leider auch nur 20 % von dem was da im script passiert. und kann den Fehler da auch nicht finden. aber sehe ich das richtig das die Ganze Datei in ein String geladen wird?
meine Text datei ist nämlich sehr groß (ca 9000 Zeilen)
gruß chris
Anzeige
probier nochmal
24.08.2016 15:17:47
Anton
Hallo Chris,
Sub b()
Dim fso As Object, f As Object
Dim sInhalt As String, sDatei As String, vInhalt
Set fso = CreateObject("Scripting.FileSystemObject")
sDatei = "C:\Temp\107781.txt" 'Pfad anpassen
Set f = fso.OpenTextFile(sDatei, 1, True, -1)
sInhalt = f.ReadAll
f.Close
vInhalt = Split(sInhalt, vbCrLf)
vInhalt(0) = "Erste Zeile ersetzt"
Set f = fso.OpenTextFile(sDatei, 2, True, -1)
f.Write Join(vInhalt, vbCrLf)
f.Close
Set fso = Nothing
End Sub
mfg Anton
Anzeige
? oT
26.08.2016 15:30:09
Anton
AW: probier nochmal
27.08.2016 17:32:05
rocketfox
Hallo Anton ,
danke für den Support. Ich werde es probieren und rückmeldung geben.
vielen dank für die Hilfe.
gruß chris
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige