Export DBF -> CSV

Zugriff, Engines, Konvertierung. Von ADS über DBF bis zu SQL.

Moderator: Moderatoren

Antworten
Benutzeravatar
Lutz Rübe
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 144
Registriert: Mi, 02. Aug 2006 18:13
Wohnort: 24536 Neumünster
Danksagung erhalten: 6 Mal
Kontaktdaten:

Export DBF -> CSV

Beitrag von Lutz Rübe »

Hallo miteinander,

Microsoft stellt mir mal wieder eine neue Aufgabe. Bisher konnte ich mit Office 2010 im Rahmen von Serienbriefen DBF-Dateien als Datenquelle einlesen. Jetzt musste ich auf das neue Office 2016 umstellen und da werden DBF-Datenquellen nicht mehr unterstützt. Habt Ihr eine Idee, wie ich das am einfachsten hinbekomme ?

Wie erreiche ich am einfachsten ein Export in eine CSV-Datei, in der die Feldnamen als erste Zeile mit eingebunden sind ?

Ein "einfaches" Export in eine Txt-Datei ereiche ich mit "copy all to test_1.txt delimited", jedoch fehlen mir für ein erfolgreiches Einlesen in Word die Feldnamen. Gibt es hier eine einfache Lösung ?

Besten Dank für eure Tipps.
Lutz

P.S.: Natürlich kann ich die DBF-Tabelle mit Excel öffnen und als Excel-Datei speichern und dann in Word die Excel-Tabelle als Datenquelle einlesen. Aber das sind - gerade wenn man etwas unter Zeitdruck steht - ein paar Schritte zuviell, bei denen dann leicht Fehler gemacht werden können.
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2126
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 30 Mal
Danksagung erhalten: 75 Mal

Re: Export DBF -> CSV

Beitrag von Werner_Bayern »

Lutz Rübe hat geschrieben:Wie erreiche ich am einfachsten ein Export in eine CSV-Datei, in der die Feldnamen als erste Zeile mit eingebunden sind ?
Servus Lutz,

nach dem Export die Datei mit fopen öffnen, mit fread() alles einlesen, dann einfach Datei neu mit Feldnamen am Anfang schreiben.
Ist max. ein 10-Zeiler...
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: Export DBF -> CSV

Beitrag von AUGE_OHR »

Lutz Rübe hat geschrieben:Jetzt musste ich auf das neue Office 2016 umstellen und da werden DBF-Datenquellen nicht mehr unterstützt.
...
P.S.: Natürlich kann ich die DBF-Tabelle mit Excel öffnen und als Excel-Datei speichern und dann in Word die Excel-Tabelle als Datenquelle einlesen.
hast du es mit Excel 2016 ausprobiert ? wenn es damit geht müsste es auch mit Word gehen.
IMHO wird seit Office 2011 der ODBC Treiber nicht "default" installiert über den der Zugriff auf DBF Dateien geht.
wenn er nun die (temporäre) DBF "frisst" dann benenne die doch mal um in *.XLS und versuche es damit.


eine CSV Datei, mit Header, "könntest" du dir auch selbst basteln ... aber warum nicht gleich "richtig" !
In Outlook hast du "Contact" und da sollten die Daten für ein Mailmerge vorliegen.
gruss by OHR
Jimmy
Benutzeravatar
Lutz Rübe
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 144
Registriert: Mi, 02. Aug 2006 18:13
Wohnort: 24536 Neumünster
Danksagung erhalten: 6 Mal
Kontaktdaten:

Re: Export DBF -> CSV

Beitrag von Lutz Rübe »

Hallo Werner,
ich suche eine einfachere Lösung - so wie sie Jimmy angedeutet hat. Aber wenn diese nicht funktioniert wird mir nichts anderes übrigbleiben.

Hallo Jimmy,
eigenartigerweise kann ich mit Excel 2016 die dbf-Dateien öffnen, aber nicht mit Word 2016. Ist vielleicht nur eine Konfigurationssache in Word, denn wenn es mit Excel geht, warum nicht mit Word ?? Deine Idee mit umbenennen der dbf in eine xls Datei funktioniert übrigens einwandfrei.
Da ich keine Adressdateien verarbeiten will sondern adress-unabhängige Daten (Startkarten für Skat-Turniere), hilft mir der Hinweis auf Outlook auch nicht.

Vielen Dank erst mal für eure Ideen und Hinweise.

Gruß
Lutz
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2126
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 30 Mal
Danksagung erhalten: 75 Mal

Re: Export DBF -> CSV

Beitrag von Werner_Bayern »

Servus Lutz,

Code: Alles auswählen

procedure main
local cText, cOK := "nicht", cFelder := ""

cls
use adresse.dbf
copy to test.txt deli
if .not. empty(cText := memoread("test.txt"))
   aeval(dbstruct(), {|x|cFelder += x[1] + ","})
   cText := left(cFelder, len(cFelder) -1) + chr(13) + chr(10) + cText
   if memoWrit("test.txt", cText)
      cOK := "alles"
   endif
endif
dbCloseArea()
? cOK, "erfolgreich!"
wait
return
Zuletzt geändert von Werner_Bayern am Sa, 19. Dez 2015 16:51, insgesamt 1-mal geändert.
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Export DBF -> CSV

Beitrag von brandelh »

ich drucke meine immer direkt in eine Datei, so kann man Anpassungen vornehmen und auch die Felder begrenzen
Gruß
Hubert
Benutzeravatar
Lutz Rübe
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 144
Registriert: Mi, 02. Aug 2006 18:13
Wohnort: 24536 Neumünster
Danksagung erhalten: 6 Mal
Kontaktdaten:

Re: Export DBF -> CSV

Beitrag von Lutz Rübe »

Hallo Werner,
das ist ja fast wie Weihnachten.....
nachdem ich noch ein "SET CHARSET TO ANSI" am Anfang eingefügt habe, werden jetzt auch die Umlaute korrekt in die CSV-Datei übertragen. Lediglich der letzte Datensatz in der CSV-Datei ist von Word nicht lesbar, da er "nur" das Datei-Ende-Zeichen enthält.

Code: Alles auswählen

"v. Roos","Jörg","","Königstor 48","","34117","Kassel","","",20070221
"von Ulm","Hans-Joachim","H","Wilhelm-von-Capitaine Str. 6","","50858","Köln","","",20080218
"von der Heidt","Heinz","H","Fritz-Bechtold-Str. 14","","83278","Traunstein","","",20080218
Das Zeichen ist im Code hier nicht sichtbar. Es sieht in etwa aus wie in der Schriftart "Wingdings" die Nr. 126 ().

Aber sonst: passt alles wunderbar. Besten Dank....
und frohe Feiertage

Lutz
peternmb
1000 working lines a day
1000 working lines a day
Beiträge: 525
Registriert: Mi, 01. Feb 2006 16:22
Wohnort: 06618 Naumburg

Re: Export DBF -> CSV

Beitrag von peternmb »

Lutz Rübe hat geschrieben:... Lediglich der letzte Datensatz in der CSV-Datei ist von Word nicht lesbar, da er "nur" das Datei-Ende-Zeichen enthält.
Das Zeichen ist im Code hier nicht sichtbar. Es sieht in etwa aus wie in der Schriftart "Wingdings" die Nr. 126 ().
Lutz
Hallo,
ich entferne bei selber erstellten Text/CSV-Dateien das Zeichen vor dem Verarbeiten mit einer kleinen Funktion:

Code: Alles auswählen

function leerweg(file)
   ctxt     := MemoRead(file)
   ctxt=substr(ctxt,-(len(ctxt)-2))
   memowrit( file,ctxt )
return .t.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Export DBF -> CSV

Beitrag von brandelh »

Man darf nicht memowrit() nutzen, da dieses genau das Zeichen immer wieder anfügt ;-)

http://www.xbaseforum.de/viewtopic.php? ... t=Str2Disk*

Str2Disk() löst das Problem endgültig (so ähnlich auch in den Tools) ;-)
Gruß
Hubert
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1991
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Export DBF -> CSV

Beitrag von Herbert »

Was spricht gegen das simple fwrite?
Grüsse Herbert
Immer in Bewegung...
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Export DBF -> CSV

Beitrag von brandelh »

nichts, das nutzt meine Funktion intern ;-)

Aber auch SET ALTERNATE TO ... erledigt Ihren Dienst ;-)
Gruß
Hubert
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1991
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Export DBF -> CSV

Beitrag von Herbert »

Ich staune immer wieder. was für Bögen ihr da machen müsst, um etwas Simples zu erreichen.
Grüsse Herbert
Immer in Bewegung...
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2126
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 30 Mal
Danksagung erhalten: 75 Mal

Re: Export DBF -> CSV

Beitrag von Werner_Bayern »

Bitte, gern geschehen. :wink:
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21192
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Export DBF -> CSV

Beitrag von Manfred »

tja Herbert, einfach kann jeder.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1991
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Export DBF -> CSV

Beitrag von Herbert »

hm, die Frage ist eher, wie viel Aufwand notwendig wird, um etwas "Einfaches" zu erreichen.
Ich mache ja auch nicht nur einfache Dinge...
Grüsse Herbert
Immer in Bewegung...
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2935
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Export DBF -> CSV

Beitrag von Wolfgang Ciriack »

Es gibt ja auch die Funktion strfile() aus den Tools, das ist auch einfach :)
Viele Grüße
Wolfgang
Benutzeravatar
Lutz Rübe
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 144
Registriert: Mi, 02. Aug 2006 18:13
Wohnort: 24536 Neumünster
Danksagung erhalten: 6 Mal
Kontaktdaten:

Re: Export DBF -> CSV

Beitrag von Lutz Rübe »

Vielen Dank an alle, =D> =D> =D>

mit Hilfe eurer Tips und Code-Schnipsel habe ich jetzt mein Programm gefunden, das eine CSV-Datei erstellt, die von Word als Quelldatei für meine "Serienbrieffunktion" verarbeitet werden kann. Ihr als Profis würdet aus meinem 29-Zeiler das ganze auf einen 10 Zeiler reduzieren und optimieren können, aber für meine Anforderungen ist diese Lösung vollkommen ausreichend.

Besten Dank noch mal an alle und einen guten Rutsch in's neue Jahr.

:santa: :santa:
Lutz

P.S.: Falls Interesse besteht, kann ich auch gerne den Code hier noch veröffentlichen.
Antworten