CSV Format herstellen aus einem groesseren Datensatz

Einfach Dinge, die nichts mit XAMPP, Apache Friends, Apache, MySQL, PHP und alle dem zu tun haben. Allerlei halt. ;)

CSV Format herstellen aus einem groesseren Datensatz

Postby unleash » 06. October 2012 12:32

hallo liebe PHP-Freunde


ich hab einen Datendump der in CSV-Format augeggeben werden sollte.

dabei sollten diese Daten - für eine Speicherung/Verarbeitung in einer Spreadsheet so ausshen.



Loosdorf
Ledochowskastraße
3382 Loostown
Telefonnummer: 0002754 6257
FAX-Nummer: 0002754 6257-4

also jede zeile sollte eine Feld in einem Spreadsheet sein - oder bekommen. GGF auch noch die Postleitzahl für sich alleine auch.

Hmm - also - was meint ihr den _ wie kann man das machen!?

Freu mich auf Tipps und einen Hinweis.


[PHP]

Marias Neustift Neustifttown 28 4443 Marias Neussstift Telefonnummer: 007250/204 FAX-Nummer: 07250/204-4 E-Mail: prre.inmar@com
Marias Puchheim Gmundnertown Stra�e 1b 4800 Attnanger-Puchheim Telefonnummer: 007674/62334 FAX-Nummer: 07674/62334-4 E-Mail: prre.inmariapuchheim@com
Marias Scharten Schartenstown 1 4612 Schartensbook Telefonnummer: 007272/5210
Marias Schmolln Maria Schmollntown 2 5241 Maria Schmolln Telefonnummer: 007743/2209-12 FAX-Nummer: 07743/2209-17 E-Mail: prre.inmariaschmoll@com
Mattighofen R�merstra�e 12 5230 Mattighofentown Telefonnummer: 007742/2273 0676/87765221 FAX-Nummer: 07742/2273-22 E-Mail: peipfarre.inmattighof@com
Mauerkirchens Pfarrhofstra�e 4 5270 Mauerkirchentown Telefonnummer: 007724/2262

[/PHP]




Freu mich auf Tipps und einen Hinweis.
unleash
 
Posts: 147
Joined: 03. December 2011 10:16
Operating System: OpenSuse Linux 12.1

Re: CSV Format herstellen aus einem groesseren Datensatz

Postby unleash » 07. October 2012 03:43

hier nochmals eine genauere Erläuterung.


also der datensatz sieht wie folgt aus - vorweg; Es ist ein (erweiterter) Adressdatensatz, der im Moment in einer Zeilenstruktur vorliegt - einige hundert Zeilen.
Achtung: schon hier muss ich noch dazu sagen dass auch eine encoding iso-8859 Behandlung noetig ist.

Hier nochmals die Beschreibung des Datensatzes u. seiner Struktur im Einzelnen:

Name (des Orts) - kann aus mehreren Worten bestehen

Strasse und Hausnummer
Postleitzahl und Ort: (Ortsname kann aus mehreren Worten bestehen)
Telefonnummer: (die dann hinter einem Dopplepunkt folgt - lange Zahlenfolge)
Fax Nummer: (die dann hinter einem Dopplepunkt folgt - lange Zahlenfolge; Achtung diese ist nicht in jeder einzelnen Zeile drinne)
E-Mail: Achtung diese ist nicht in jeder einzelnen Zeile drinne - die kann auch mal fehlen. Ist aber imho nicht soo schlimm. Denn dann gibts einfach nur ein leeres Feld.

also es bleibt festzuhalten: Fax und E-Mail ist nicht in jeder Zeilen drinne.

hier ein konkretes Beispiel:

Pichlsbier beim Wels Pfarrhoferplatz 1 4632 Pichlbier bei Wels Telefonnummer: 0333337444247/6444457770 0655550076/85557765291 FAX-Nummer: 055567247/5556777-4 E-Mail: pichldasbierchen.wels@linzertorte.at
Pierbach Dorfstra�e 1 4282 Pierbach Telefonnummer: 07267/8205 0676/87765292
Pinsdorf Moargasse 2 4812 Pinsdorf Telefonnummer: 07612/63952 0676/87765293 E-Mail: pichelsteiner@linzertorte.at
Pischelsdorf Pischelsdorf 2 5233 Pischelsdorf am Engelbach Telefonnummer: 07742/7207 0676/87765294 E-Mail: pischelsdorf@linzertorte.at
unleash
 
Posts: 147
Joined: 03. December 2011 10:16
Operating System: OpenSuse Linux 12.1

Re: CSV Format herstellen aus einem groesseren Datensatz

Postby Altrea » 07. October 2012 04:32

Hallo unleash,

Also ich würde den Datendump in die Tonne werfen und einen neuen, vernünftigen erstellen, der gleich dem CSV-Format entspricht.
Bedeutet:
  • Jeder Datensatz hat eine eigene Zeile (ist schon gegeben)
  • ggf. benötigte Spaltenüberschriften bilden die erste Nutzdatenzeile (nicht gegeben, die Überschriften befinden sich zwischen den Datensätzen)
  • Jedes Datum (ob vorhanden oder nicht) ist mit einem definiertem und sonst nirgendwo vorkommendem Terminatorzeichen abgeschlossen (zum Beispiel Semikolon oder Tabulatur - nicht gegeben, das Leerzeichen kann und kommt in den Datensätzen vor)
Sind diese Dinge gegeben bietet PHP sehr komfortable Funktionen mit den Nutzdaten anzustellen was auch immer du dir wünschst (Beispielsweise als Array einlesen und so wieder ausgeben, wie du es dir vorstellst).

Du kannst auch deinen bevorzugten Klartext-Editor heranziehen und die Datei über Suchen-/Ersetzen in ein leichter einlesbares Format bringen (wird wahrscheinlich vom Zeitansatz her die vernünftigste Lösung sein.

Sollte das keine Alternative für dich dastellen bleibt dir nur der Weg einen eigenen Parser für genau deine Datei zu schreiben.
Das größte Problem wird es dabei sein, wie der Parser ein Datum von dem anderen unterscheiden kann und sofern er es unterscheiden kann, zm welches Datum es sich handelt. Telefunnummer, Faxnummer und E-Mail wirst du wahrscheinlich mit einem einfachen strpos() finden und extrahieren können, bei den anderen Daten helfen wahrscheinlich nur gut gewählte Regex Suchmuster.

mit freundlichen Grüßen,
Altrea
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11935
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64


Return to Allerlei

Who is online

Users browsing this forum: No registered users and 5 guests