PDA

Vollständige Version anzeigen : CSV einlesen: Probleme mit Zeilenumbrüchen


kingcasi
02.06.2012, 18:58
Hallo,
ich habe ein Problem, weiß aber nicht genau, wonach ich suchen soll.

Also: ich will eine Fehlerdatei einlesen, die laut Beschreibung eine CSV-Datei ist im Textformat, Feldtrennzeichen ein ; und pro Zeile soll angeblich ein Datensatz gespeichert sein. Die Fehlerdatei habe ich in der Anlage beigefügt.
Mit Line Input funktioniert das normalerweise auch problemlos. Nur: wenn ich eine Zeile einlese, bekomme ich den gesamten Inhalt, jedoch ist in der Datei selbst jeweils nach dem Datensatz eine Absatzmarke. Deutlich wird das Problem vielleicht, wenn man die Datei in Word öffnet und die Formatierungen anzeigen läßt.

Wie kann ich die Datei denn jetzt einlesen, dass mir pro Zeile ein Datensatz übertragen wird?

Ich hoffe, jemand versteht mein Problem und kann mir ansatzweise helfen.

Danke!

Marsu65
02.06.2012, 19:06
Hallo.

Warum importierst du die Textdatei nicht einfach? (Datei/Externe Daten/Importieren ...)

Steffen0815
02.06.2012, 19:13
Hallo,
die Datei hat kein Windowszeilenende. Damit kommt die Open/Input-Funktion nicht klar.

Willst du trotzdem mit VBA importieren (was aber eigentlich Quatsch wäre) kannst du Methoden des "Scripting.FileSystemObject" nutzen.

Marsu65
02.06.2012, 19:37
Falls du dir die Arbeit machen willst, die Datei mittels VBA einzulesen:
Lies die Datei in eine Stringvariable und splitte sie mit der SPLIT-Funktion in ein Datenfeld auf.
Das Trennzeichen ist entweder Wagenrücklauf (Chr(13)) oder Zeilenumbruch (Chr(10)).

@Steffen:
was bitte ist ein "Windowszeilenende"?

Steffen0815
02.06.2012, 19:45
Hallo,Das Trennzeichen ist entweder Wagenrücklauf (Chr(13)) oder Zeilenumbruch (Chr(10)). Wagenrücklauf (Chr(13)) + Zeilenumbruch (Chr(10)) ist ein Zeilenumbruch wie er in Textdateien unter Windows oder DOS verwendet wird (Windowszeilenende).
Nur Chr(13): Mac OS bis Version 9
Nur Chr(10): Unix, Linux, Mac OS X ...

In der Beispieldatei wird als Zeilenende chr(10) verwendet.

Hab ich die Prüfung bestanden ;)

kingcasi
02.06.2012, 20:02
Vielen Dank,
werde das mit dem Split ausprobieren.
Die Datei muss über einen Button eingelesen werden, da es sich um Rückmeldungen von regelmäßig stattfindenden Dateiübertragungen handelt.

Steffen0815
02.06.2012, 20:17
Hallo,
also Docmd.transfertextlässt sich nach meiner Kenntnis auch über einen Button starten ;).