Discussion:
Leere Zeilen in csv Datei löschen
(zu alt für eine Antwort)
Holger Janßen
2006-07-24 06:31:42 UTC
Permalink
Hi Leute,

ich importiere eine csv Datei mit einem Importfilter in meine Access DB.
Grundsätzlich funktioniert das sehr gut. Allerdings bekomme ich Fehler,
wenn leere Zeilen am Ende der Datei enthalten sind. Wie kann ich diese
leeren Zeilen am Ende der Importdatei vor dem Import löschen?
Jürgen Volke
2006-07-24 06:51:12 UTC
Permalink
Hallo Holger
Post by Holger Janßen
ich importiere eine csv Datei mit einem Importfilter in meine Access
DB. Grundsätzlich funktioniert das sehr gut. Allerdings bekomme ich
Fehler, wenn leere Zeilen am Ende der Datei enthalten sind. Wie kann
ich diese leeren Zeilen am Ende der Importdatei vor dem Import
löschen?
Mit Open for INPUT öffnen, Zeilenweise lesen und wenn Inhalt vorhanden in neue Datei, welche mit Open for OUTPUT geöffnet wurde
rein schreiben. Neue Datei importieren, statt Original

HTH Jürgen
Martin Steinbach
2006-07-24 06:58:17 UTC
Permalink
Post by Jürgen Volke
Hallo Holger
Post by Holger Janßen
ich importiere eine csv Datei mit einem Importfilter in meine Access
DB. Grundsätzlich funktioniert das sehr gut. Allerdings bekomme ich
Fehler, wenn leere Zeilen am Ende der Datei enthalten sind. Wie kann
ich diese leeren Zeilen am Ende der Importdatei vor dem Import
löschen?
Mit Open for INPUT öffnen, Zeilenweise lesen und wenn Inhalt vorhanden in neue Datei, welche mit Open for OUTPUT geöffnet wurde
rein schreiben. Neue Datei importieren, statt Original
HTH Jürgen
ich habe in meiner aktuellen db einfach die Importfehlertabelle
automatisch loeschen lassen (per vba code):
Function DeleteImportErrorTables()
Dim db As Database, t As TableDef, i As Integer
Set db = CurrentDb()
For i = db.TableDefs.Count - 1 To 0 Step -1
Set t = db.TableDefs(i)
If t.Name Like "*Importfehler" Then
db.TableDefs.Delete t.Name
End If
Next i
db.Close
End Function
Holger Janßen
2006-07-24 08:10:55 UTC
Permalink
Hallo Martin,
Post by Martin Steinbach
Post by Jürgen Volke
Hallo Holger
Post by Holger Janßen
ich importiere eine csv Datei mit einem Importfilter in meine Access
DB. Grundsätzlich funktioniert das sehr gut. Allerdings bekomme ich
Fehler, wenn leere Zeilen am Ende der Datei enthalten sind. Wie kann
ich diese leeren Zeilen am Ende der Importdatei vor dem Import
löschen?
Mit Open for INPUT öffnen, Zeilenweise lesen und wenn Inhalt vorhanden in neue Datei, welche mit Open for OUTPUT geöffnet wurde
rein schreiben. Neue Datei importieren, statt Original
HTH Jürgen
ich habe in meiner aktuellen db einfach die Importfehlertabelle
Function DeleteImportErrorTables()
Dim db As Database, t As TableDef, i As Integer
Set db = CurrentDb()
For i = db.TableDefs.Count - 1 To 0 Step -1
Set t = db.TableDefs(i)
If t.Name Like "*Importfehler" Then
db.TableDefs.Delete t.Name
End If
Next i
db.Close
End Function
Auch danke für deine Antwort. Das ist sicherlich eine Möglichkeit. Aber
mir wäre schon daran gelegen die Ursache der Importfehler vorher zu beheben.
Michel Fouquet
2006-07-24 08:30:52 UTC
Permalink
Hallo,
Post by Holger Janßen
Aber
mir wäre schon daran gelegen die Ursache der Importfehler vorher zu beheben.
vielleicht wäre es noch sinnvoller, dort, wo die CSV-Datei erzeugt wird,
dafür zu sorgen, dass überhaupt erst keine leeren Zeilen produziert
werden?

mfg,
Michel
--
FAQ: http://www.donkarl.com/AccessFAQ.htm
KnowHow.mdb: http://www.freeaccess.de/knowhow.asp
Holger Janßen
2006-07-24 08:09:37 UTC
Permalink
Hallo Jürgen,
Post by Jürgen Volke
Hallo Holger
Post by Holger Janßen
ich importiere eine csv Datei mit einem Importfilter in meine Access
DB. Grundsätzlich funktioniert das sehr gut. Allerdings bekomme ich
Fehler, wenn leere Zeilen am Ende der Datei enthalten sind. Wie kann
ich diese leeren Zeilen am Ende der Importdatei vor dem Import
löschen?
Mit Open for INPUT öffnen, Zeilenweise lesen und wenn Inhalt vorhanden
in neue Datei, welche mit Open for OUTPUT geöffnet wurde rein
schreiben. Neue Datei importieren, statt Original
Danke für deine Antwort.

Ich öffne die Datei schon mit Open for Input, berabeite diese mit
Replace (um bestimmte Zeichen zu ersetzen) und speichere sie in einer
neuen Datei ab. Aber wie kann ich nun festestellen, dass eine Zeile ganz
leer ist und diese löschen?
Christa Kurschat
2006-07-24 08:22:13 UTC
Permalink
Hallo Holger,
Post by Holger Janßen
Ich öffne die Datei schon mit Open for Input, berabeite diese
mit Replace (um bestimmte Zeichen zu ersetzen) und speichere
sie in einer neuen Datei ab. Aber wie kann ich nun
festestellen, dass eine Zeile ganz leer ist und diese löschen?
Ich würde die Daten in eine Importtabelle importieren, anschließend mit
einer Anfügeabfrage nur die Daten anfügen, die in einem Feld, das nicht leer
sein darf, nicht null (oder Leerstring, je nachdem, was in den daten steht)
enthalten.

Bei dem Anfügen könntest Du auch das(die) bestimmte(n) Zeichen ersetzen und
muß das nicht vorher erledigen.

Gruß
Christa
--
Access-FAQ: http://www.donkarl.com
SQL-Server-FAQ: www.sqlfaq.de
auch interessant: http://www.insidesql.de
Suchen in den Newsgroups:
http://groups.google.de/advanced_group_search?hl=de&lr=&ie=UTF-8
Jürgen Volke
2006-07-24 09:30:35 UTC
Permalink
Hallo Holger
Post by Holger Janßen
Post by Jürgen Volke
Post by Holger Janßen
ich importiere eine csv Datei mit einem Importfilter in meine Access
DB. Grundsätzlich funktioniert das sehr gut. Allerdings bekomme ich
Fehler, wenn leere Zeilen am Ende der Datei enthalten sind. Wie kann
ich diese leeren Zeilen am Ende der Importdatei vor dem Import
löschen?
Mit Open for INPUT öffnen, Zeilenweise lesen und wenn Inhalt
vorhanden in neue Datei, welche mit Open for OUTPUT geöffnet wurde
rein schreiben. Neue Datei importieren, statt Original
Danke für deine Antwort.
Ich öffne die Datei schon mit Open for Input, berabeite diese mit
Replace (um bestimmte Zeichen zu ersetzen) und speichere sie in einer
neuen Datei ab. Aber wie kann ich nun festestellen, dass eine Zeile
ganz leer ist und diese löschen?
naja mit len(Einlesestring) kannst du ja feststellen, wieviele Zeichen es sind.
Wenn CRLF dabei ist, musste halt auf >2 abfragen

HTH Jürgen

Loading...