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

Forumthread: Textdatei von Unicode nach ASCII umwandeln

Textdatei von Unicode nach ASCII umwandeln
Unicode
Hallo,
mit nachfolgendem Code habe ich bisher immer die Leerzeilen aus einer SAP heruntergeladene Textdatei gelöscht.
Das Format der Textdatei war bisher immer ASCII. Nun liegt die Textdatei aber im Unicode Format vor und der Code funktioniert so nicht mehr. Es werden nur noch merkwürdige Zeichen geschrieben.
Ich habe schon im Archiv gesucht aber noch keinen vernünftigen Lösungsansatz gefunden.
Ist es möglich die Textdatei per VBA von Unicode nach ASCII umzuwandeln ohne die Datei in Excel selbst zu öffnen da mehr als 65536 Zeilen vorhanden sind?
So könnte dann der nachfolgende Code wieder funktionieren.
Gruß
Joe
Sub Leerzeilen_Löschen()
XFile = Verz_DLSAP & DatNam_Kalk1 & ".txt"
XTemp = Verz_DLSAP & DatNam_Kalk1 & "Temp" & ".txt"
Name XFile As XTemp
Fif = FreeFile
Open XTemp For Input As Fif
Fof = FreeFile
Open XFile For Output As Fof
While Not EOF(Fif)
Line Input #Fif, textline
If textline  "" Then
Print #Fof, textline
End If
Wend
Close Fif
Close Fof
Kill XTemp
End Sub

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Textdatei von Unicode nach ASCII umwandeln
16.06.2011 11:33:14
Unicode
Hallo,
hier mal zwei Möglichkeiten:
1. Textdatei in Notepad öffnen und bei "Speichern unter" ANSI wählen.
2.
VBA-Funktion
siehe hier: http://blog.brettski.com/2009/12/04/vba-convert-unicode-to-ascii/
Gruß
Kawensmann
Anzeige
AW: Textdatei von Unicode nach ASCII umwandeln
17.06.2011 08:52:47
Unicode
Auch Hallo,
alternativ dazu nimm das FSO und OpenTextFile mit Format=TristateTrue.
http://msdn.microsoft.com/en-us/library/314cz14s(v=vs.85).aspx
cu, Bernd
--
Option Explicit

Sub y()
    Dim objFSO As Object, objFile As Object
    Dim strFileName As String, strOneLine As String
    
    ' e:\test>file utf-16-le.txt
    ' utf-16-le.txt: Little-endian UTF-16 Unicode text, with CRLF line terminators
    
    strFileName = "e:\test\utf-16-le.txt"
    
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.OpenTextFile(strFileName, 1, False, True)
    
    Do While objFile.AtEndOfStream <> True
        strOneLine = objFile.ReadLine
        Debug.Print strOneLine
    Loop
    
    objFile.Close
    Set objFSO = Nothing
End Sub


Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Textdatei von Unicode nach ASCII umwandeln


Schritt-für-Schritt-Anleitung

  1. VBA-Umwandlung: Um eine Textdatei von Unicode nach ASCII umzuwandeln, kannst du VBA verwenden. Hier ist ein einfaches Beispiel, wie das funktioniert:
Sub UnicodeToAscii()
    Dim objFSO As Object
    Dim objFile As Object
    Dim strFileName As String
    Dim strOneLine As String

    strFileName = "C:\Pfad\zur\deiner\datei.txt"

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.OpenTextFile(strFileName, 1, False, True)

    While Not objFile.AtEndOfStream
        strOneLine = objFile.ReadLine
        Debug.Print strOneLine ' Hier kannst du den ASCII-Text verarbeiten
    Wend

    objFile.Close
    Set objFSO = Nothing
End Sub
  1. Datei speichern: Speichere die umgewandelte Datei als ASCII-Datei, zum Beispiel mit der Endung .txt.

  2. In Excel importieren: Du kannst die ASCII-Datei dann einfach in Excel importieren, um die Daten weiter zu verarbeiten.


Häufige Fehler und Lösungen

  • Merkwürdige Zeichen: Wenn beim Öffnen der Datei merkwürdige Zeichen erscheinen, liegt das oft an einer falschen Kodierung. Stelle sicher, dass du die Datei im richtigen Format speicherst (ASCII/ANSI).

  • Leerzeilen: Wenn du Leerzeilen hast, die beim Umwandeln erhalten bleiben, überprüfe deine VBA-Logik oder nutze die If textline <> "" Then Bedingung, um diese zu entfernen.


Alternative Methoden

  1. Notepad: Öffne die Unicode-Textdatei in Notepad und wähle „Speichern unter“. Wähle im Dropdown-Menü das Format „ANSI“, um die Datei als ASCII zu speichern.

  2. Online-Tools: Es gibt diverse Online-Tools, die dir helfen können, Unicode in ASCII umzuwandeln, ohne dass du Software installieren musst.

  3. Excel-Funktion: Du kannst auch Excel-Funktionen verwenden, um Text aus Unicode in ASCII umzuwandeln, indem du die Daten importierst und dann mit Formeln bearbeitest.


Praktische Beispiele

  • Beispiel für eine ASCII-Datei: Wenn du eine ASCII-Textdatei erstellen möchtest, kannst du den folgenden Code verwenden:
Sub CreateAsciiFile()
    Dim strFilePath As String
    strFilePath = "C:\Pfad\zur\deiner\ascii_datei.txt"

    Open strFilePath For Output As #1
    Print #1, "Dies ist ein Beispiel für ASCII-Text."
    Close #1
End Sub
  • Unicode in Excel: Um Daten, die in Unicode gespeichert sind, in Excel zu importieren, kannst du den Texteditor nutzen oder die Datei direkt in Excel öffnen, wobei du die Kodierung auswählst.

Tipps für Profis

  • Buchstaben in ASCII umwandeln: Wenn du spezifische Buchstaben in ASCII-Codes umwandeln möchtest, kannst du die Funktion Asc() in VBA verwenden, um den ASCII-Wert eines Zeichens zu erhalten.

  • Automatisierung: Wenn du regelmäßig Unicode-Dateien in ASCII umwandeln musst, erstelle ein VBA-Skript, das diesen Prozess automatisiert.

  • Performance optimieren: Bei großen Dateien kann es sinnvoll sein, die Verarbeitung in Blöcken durchzuführen, um die Performance zu verbessern.


FAQ: Häufige Fragen

1. Wie kann ich Unicode in Text umwandeln?
Du kannst Unicode in Text umwandeln, indem du die Datei in einem Text-Editor öffnest und als ANSI abspeicherst oder ein VBA-Skript nutzt, um die Umwandlung durchzuführen.

2. Was ist der Unterschied zwischen ASCII und ANSI?
ASCII ist ein 7-Bit-Zeichensatz, während ANSI eine erweiterte Version ist, die 8-Bit-Zeichen unterstützt. ANSI kann zusätzliche Zeichen für verschiedene Sprachen enthalten.

3. Wie kann ich eine ASCII-Datei in Excel importieren?
Du kannst eine ASCII-Datei in Excel importieren, indem du „Daten“ > „Aus Text“ wählst und den Import-Assistenten verwendest, um die Datei zu laden und die Daten zu formatieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige