Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1532to1536
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Delimiter von & tatsächliche Kommata in CSV-Datei

Delimiter von & tatsächliche Kommata in CSV-Datei
07.01.2017 16:19:06
&
Hallo Forum,
ich habe folgende Herausforderung:
In einer CSV-Datei gibt es neben den Delimitern (, oder ;)auch Texteinschlusszeichen(""). ich benötige einen Code, der es ermöglicht die Delimiter von den verwendeten Kommata oder Semikolons innerhalb der Texteinschlüsse zu unterscheiden.
Mein Plan ist es, dass das Skript jeweils die Zeile/den String durchläuft und nacheinander die Anzahl der Delimiter und der Texteinschlusszeichen zählt. Immer wenn die Anzahl der Texteinschlusseinzeichen gerade ist, ist ein darauf folgendes Komma, Semikolon ein Delimiter - wenn die derzeitige Anzahl der Texteinschlusszeichen ungerade ist, ist das folgende Komma oder Semikolon kein Delimiter, sondern Bestandteil des Textes.
Bspw.
1,12,"Hund,Katze,Maus",15,"Fahrrad;",13
Danke für euren Support!!!!

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Delimiter von & tatsächliche Kommata in CSV-Datei
07.01.2017 16:36:21
&
Hi
probier mal die Importfunktion von Excel (Daten - Externe Daten - Aus Text).
da kann man Texterkennungszeichen und ähnliches Einstellen.
Das kannst du dir dann mit dem Recorder aufzeichnen.
Gruß Daniel
AW: Delimiter von & tatsächliche Kommata in CSV-Datei
07.01.2017 17:06:29
&
nochmal so als Idee, wenn du den Code wirklich per Makro selbst auseinander friemeln willst:
gehe Zeichenweise durch den Text und ersetze die Trennzeichen durch Zeichen, welche in den Texten nicht vorkommen, z.B. "|".
dann kannst du problemlos weiter mit dem neuen Trennzeichen arbeiten, ohne dich um die Texterkennung kümmern zu müssen
Zählen brauchst du die Anführungszeichen nicht, es reicht wenn du eine Boolsche Variable hast, welche du mit NOT umschaltest:
Sub Trennzeichen()
Dim Text1 As String
Dim Text2 As String
Dim Trenner As Boolean
Dim i As Long
Trenner = True
Text1 = "1,12,""Hund,Katze,Maus"",15,""Fahrrad;"",13"
For i = 1 To Len(Text1)
Select Case Mid(Text1, i, 1)
Case """"
Trenner = Not Trenner
Text2 = Text2 & Mid(Text1, i, 1)
Case ",", ";"
If Trenner Then
Text2 = Text2 & "|"
Else
Text2 = Text2 & Mid(Text1, i, 1)
End If
Case Else
Text2 = Text2 & Mid(Text1, i, 1)
End Select
Next
MsgBox Text1 & vbLf & Text2
End Sub
Gruß Daniel
Anzeige
AW: Delimiter von & tatsächliche Kommata in CSV-Da
09.01.2017 11:53:38
&
Hallo Daniel.
Vielen Dank für deine Vorschläge. Könntest du mir bitte über den Anweisungen kommentieren, was du gemacht hast? ich steige da einfach nicht hinter und unabhängig davon, dass es super funktioniert, würde ich es gern verstehen.
VG
AW: Delimiter von & tatsächliche Kommata in CSV-Da
09.01.2017 16:52:06
&
Hi
der Code überprüft einfach jedes Zeichen im Text und setzt diesen neu zusammen.
normale Zeichen (keine Trenn- oder Anführungszeichen) werden unverändert übernommen
beim Ersten Anführungszeichen wird der Kenner für TEXT aktiviert, beim nächsten wieder deaktiviert.
das machst die Funktion NOT welche einen Wahrheitswert immer umschaltet.
ist der Textkenner aktiviert (also nach dem 1. ") werden die ";" und "," unverändert übernommen.
ist der Textkenner nicht aktiviert (vor dem ersten ", nach dem zweiten ") werden die ";" und "," durch das alternative Trennzeichen "|" ausgetauscht.
Gruß Daniel
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige