Collapse column

Autor Thema: Office 2007: VBA CSV Datei lesen und bearbeiten - Sonderzeichen  (Gelesen 1085 mal)

Offline hth1140

  • Newbie
  • *
  • Beiträge: 3
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Mittelmäßig
  • Version [Office] : Office 2007
Office 2007: VBA CSV Datei lesen und bearbeiten - Sonderzeichen
« am: Mai 13, 2017, 22:57:33 Nachmittag »
Liebe VBA Gurus
 ich lese eine CSV Datei und habe in manchen Zeilen im Text folgende Zeichen: z.B.: "BESTÄTIGUNG" es soll also ein "Ä" sein
 folgende Strings habe ich gefunden:
 binÜ1              binÜ2
 C383C593       C39C  =  Ü
 C383C5B8       C39F  =  ß
 C383E2809E   C384  =  Ä
 C383E28093   C396   = Ö
 TFC = Replace(TFC, binÜ1, binÜ2, 1,-1,vbBinaryCompare)
 ich wollte diese Zeichen binär mit replace in der ganzen Datei tauschen und scheitere jetzt daran, wie ich in VBA die string1 und string2 variable definieren kann.
 Wo werde ich die binären werte für die restlichen Umlaute finden?
 Kann jemand helfen?

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline maninweb

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1.063
    • Profil anzeigen
    • Excel Formula Translator
  • Office-KnowHow: Experte
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2016
Antw:Office 2007: VBA CSV Datei lesen und bearbeiten - Sonderzeichen
« Antwort #1 am: Mai 14, 2017, 08:31:57 Vormittag »
Hallo,

wie liest Du die CSV Datei ein (Code)? Dürfte sich um eine CSV-Datei im UTF-8 Format handeln.
Ggf. eine Beispiel-CSV hier hochladen.

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) from 01/2011 - 06/2019
https://de.excel-translator.de :: Online Excel-Formel-Übersetzer :: Alle Übersetzungen der Excel Funktionen & Fehlerwerte

Offline hth1140

  • Newbie
  • *
  • Beiträge: 3
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Mittelmäßig
  • Version [Office] : Office 2007
Antw:Office 2007: VBA CSV Datei lesen und bearbeiten - Sonderzeichen
« Antwort #2 am: Mai 14, 2017, 09:05:03 Vormittag »
Guten Morgen,
danke für die Antwort, aber es hat nichts mit dem einlesen zu tun,
Set FSupd = fso.OpenTextFile(updFN)
    arUPD = Split(FSupd.ReadAll, vbCrLf, -1, vbBinaryCompare)
    FSupd.Close
oder
    Set FSsrc = fso.OpenTextFile(SrcFN)
    TFC = FSsrc.ReadAll
    FileContents = True
    FSsrc.Close

da die Zeichen nur in manchen Sätzen falsch sind. Auch nicht jedesmal wenn ich einen Datei download mache.
Es sind Datensätze aus dem onlinebanking.
Ich habe schon den eindruck, dass es davon abhängig ist, von welchen Server ich den download mache.
Es sind dann auch noch weitere "Zeichensatztprobleme" wie:
Bei Beträgen fehlen die nachlaufenden Nullen (;-10,40; vs. ;-10,4;) oder auch das Format einer Buchungsnummer (;1,70934E+14; vs. ;170933948103973;)
p.s.: wo kann ich eigentlich sehen, mit welchen Zeichencode Excel aktuell arbeitet?

Offline maninweb

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1.063
    • Profil anzeigen
    • Excel Formula Translator
  • Office-KnowHow: Experte
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2016
Antw:Office 2007: VBA CSV Datei lesen und bearbeiten - Sonderzeichen
« Antwort #3 am: Mai 14, 2017, 09:33:23 Vormittag »
Hallo

VBA kennt erstmal nur den ASCII-Zeichensatz. Welcher Zeichensatz in der CSV-Datei verwendet wird,
ist in der Datei selbst drin. Zu angucken kannst Du Dir Notepad++ installieren. Dann die Datei darin
aufmachen, im Menü Kodierung findest Du den Zeichensatz entsprechend angehakt.

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) from 01/2011 - 06/2019
https://de.excel-translator.de :: Online Excel-Formel-Übersetzer :: Alle Übersetzungen der Excel Funktionen & Fehlerwerte

Offline hth1140

  • Newbie
  • *
  • Beiträge: 3
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Mittelmäßig
  • Version [Office] : Office 2007
Antw:Office 2007: VBA CSV Datei lesen und bearbeiten - Sonderzeichen
« Antwort #4 am: Mai 14, 2017, 09:43:06 Vormittag »
Ja, danke ...NB++ sagt es ist ANSI
.... also es scheint doch so, dass Excel der Verursacher ist:
ich habe eine Class geschrieben die u.a. folgendes tut (oder tun soll)
1. lesen der download Datei im csv Format
2. Analyse der Datei, abgesehen vom delimiter haben die Dateien folgende Formate:
    1) der Header hat die Felder durch den delimiter getrennt und das letzte Feld ist mit vbLf abgeschlossen
    2) der Header hat die Felder durch den delimiter getrennt und das letzte Feld ist mit delimiter und vbLf abg.
    3) der Header hat die Felder durch den delimiter getrennt und das letzte Feld ist mit vbCrLf abgeschlossen,
        ist dann der Fall, wenn es in den Feldern die mit "" eingeschlossen sind vbLf gibt.
    4) gleich wie 3) aber zusätzlich mit delimiter vbCrLf abgeschlossen.
   Format 1) und 2) werden vom onlinebanking geliefert.
   Format 3) und 4) entstehen, wenn die Datei mit Excel geöffnet wurde und entweder mit speichern wieder geschlossen wurde, wobei keine Daten verändert wurden sondern allenfalls die Spaltenbreite gezogen wurde. Wobei auch ein Unterschied besteht ob mit speichern mit Close oder ... AndereFormate csv
3. die eingelesene Datei wird auf ein einheitliches Format geändert und von mehrfach Leerzeichen gesäubert.
4. diese Daten werden als Array zu Verfügung gestellt und gespeichert (als History Datei)
5. da die Banken die Belegdaten nur 3 Monate halten, wird die "History Datei" mit den jeweiligen neuen Downloads ergänzt.
6. neue Downloads weden gleich behandelt und als "updDatei" gespeichert (möglicher Weise wird hier von Excel eine andere Codepage verwendet???, da die Tatsache, dass eigentlich nur Codepage relevante Änderungen auftauchen)
7. Beim syncronisieren der Datensätze falle ich dann leider mit dem strcomp wegen des veränderten Umlaute und Zahlenformate auf die Nase.

Im Debugger sehen die arrayDaten einwandfrei aus.
Den unterschied konnte ich nur über einen entsprechenden debug.print währen des strcomp feststellen.
Fehler tritt bei ca. 30% der Datensätze auf, je nachdem ob Umlaute verwendet werden. Merkwürdiger Weise ist jedoch der Format Fehler bzgl. der Belegnummer nicht bei allen Buchungszeilen die eine solche haben festzustellen.

Any Idears?
« Letzte Änderung: Mai 14, 2017, 10:49:51 Vormittag von hth1140 »

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.