sascha0174
Goto Top

Textdatei mit Leerzeichen f. mySQL Einspielung aufbereiten

Leerzeichen entfernen, in CSV-Format konvertieren um in mySQL-DB ein zu spielen

Hi @ All,

ich hab ein kleines Verständnisproblem, da ich auch ziemlich neu bin in der php-Materie. Ich hoffe jemand kann mir helfen!

Zum Problem:
Ich habe ein Textfile mit Hunderten von Zeilen je mit einer festen Länge von 109 Zeichen.

Die relevanten Daten innerhalb des Files sehen z.B. wie folgt aus:

_-_-_- 01010101 _-_- 12345 _-_- G -_-_-_-_-_-_-_-_-_-_-_-_-_-_ 1234 1234 _-_-_-_-_-_-_ 52 __ 1234

_-_-_ 02020202 __ 56789 _-_-_ I _-_-_-_-_-_-_ 1234 1234567890 __-_-_-_-_-_-_-__ 80 ____ 1234
_-_-_- 03030303 _-_ 00051 _-_ 1234 _-_-_-_-__-_-_-_ 0 _-_-_-_-__ 01234567890 3456 __-_-_-_-_-_-__ 00 ___ 1020

Die Unterstriche& Minus(se) sollen nur die verschiedenen Anzahlen der Leerzeichen verdeutlichen!

Nun mein Problem, mit trim() respektive ltrim() oder rtrim() bekomme ich ja nur die Anfangs-, Links- oder Rechtsbündigen Leerzeichen weg. Wie kann ich denn per Schleife solange die Leerzeichen innerhalb des Strings entfernen bis ich immer nur noch ein Leerzeichen übrig habe, welches ich dann danach durch ein Semikolon ersetze.

Ich muß die Datei quasi mySQL-tauglich machen und das sollte möglichst in naher Zukunft dann mehr oder weniger automatisch ablaufen anstatt die Datei jedesmal in Textpad oder Excel o.ä. zu ziehen und dort auf zu bereiten.

Vielen Dank im Voraus für eure Hilfe und meine Verständnisprobleme bei php.

Greeetz, Sacha0174.

Content-ID: 44167

Url: https://administrator.de/contentid/44167

Ausgedruckt am: 22.11.2024 um 08:11 Uhr

blubb
blubb 10.11.2006 um 18:45:50 Uhr
Goto Top
Die Unterstriche& Minus(se) sollen nur die verschiedenen Anzahlen der Leerzeichen verdeutlichen!

Sollte man dann nicht erstmal alle _ und - durch Leerzeichen ersetzen? (preg_replace)

Wie kann ich denn per Schleife solange die Leerzeichen innerhalb des Strings entfernen bis ich immer nur
noch ein Leerzeichen übrig habe, welches ich dann danach durch ein Semikolon ersetze.

Weißt du denn auch, welches Leerzeichen bleiben soll? Es sind ja mehrere vorhanden! Naja, geht evtl. mit substr_replace.
erikro
erikro 11.11.2006 um 00:41:05 Uhr
Goto Top
Hallo,

das Zauberwort, nach dem Du suchst, heißt regulärer Ausdruck oder regular expression. Und nun ist Google erstmal Dein Freund. face-smile

Liebe Grüße

Erik
sascha0174
sascha0174 13.11.2006 um 10:28:32 Uhr
Goto Top
@blubb:
Alle _ und - sind von mir nachträglich eingesetzt worden um zu verdeutlichen was ich da meine. In meiner Textdatei sind es ausschliesslich Leerzeichen.

Natürlich weiß ich welche Leerzeichen bleiben sollen, quasi immer 1 zwischen den "Werten", um dieses Leerzeichen danach durch ein Semikolon auszutauschen.

z.B.:
zuvor:
_-_-_- 01010101 _-_- 12345 _-_- G -_-_-_-_-_-_-_-_-_-_-_-_-_-_ 1234 1234 _-_-_-_-_-_-_ 52 1234
danach:
01010101;12345;G;1234;1234;52;1234;


@ erikro:

Vielen Dank für das Schlüsselwort, dann werd ich mich dort mal versuchen durch zu kämpfen! face-smile
blubb
blubb 21.11.2006 um 19:04:07 Uhr
Goto Top
Falls es noch aktuell ist und du selbst noch keine Lösung gefunden hast (war länger nich online)...

Alle _ und - sind von mir nachträglich eingesetzt worden um zu verdeutlichen was ich da meine. In meiner Textdatei sind es ausschliesslich Leerzeichen.
Na, dann hatte ich ja recht: ;)
preg_replace("! +!",";",$file_get_contents); ...
sascha0174
sascha0174 22.11.2006 um 08:57:26 Uhr
Goto Top
@ blubb:

Vielen Dank für den Lösungsvorschlag, hab ich aber auch schon so aufgebaut! ;)
Hättest du nicht geantwortet, so hätte ich vergessen dieses Thema zu schliessen. Thx.


Damit kann dieses Thema hier als gelöst und geschlossen angesehen werden!

Grüße, sascha0174
masterG
masterG 22.06.2007 um 14:06:27 Uhr
Goto Top
Dann markiere ich den Thread als geschlossen!

masterG