Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
text in csv format umwandeln [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
text in csv format umwandeln


 
mysqlfrage
25-12-2005, 17:14 
 
frohe weihnachten,

möchte folgenden string

1234567 Penol Reifen GRAU 115 1 1 ABB 0 6.65 9.98 0 0
1234567 Penol Reifen GRAU 115 1 1 ABB 0 6.65 9.98 0 0
hinweis: es ist nicht immer nur ein leerzeichen, das forum macht aus mehreren leerzeichen hier eins.

in folgende Variation umwandeln

"1234567","Penol Reifen GRAU 115","1","1","ABB","0","6.65,"9.98","0","0"
"1234567","Penol Reifen GRAU 115","1","1","ABB","0","6.65,"9.98","0","0"

nun habe ich schon einiges ausprobiert, im forum geschaut, etc. nur bekomme ich den richtigen regulären ausdruck nicht hin.

folgendes funtioniert zwar etwas, ist aber nicht perfekt.
set_time_limit(0);
$inhalt = file('main.txt');
$match = "/ /";
$inhalt2 = preg_replace($match,'","',$inhalt);
$fp = fopen('main.csv', 'w');
fputs($fp, implode("", $inhalt2));
fclose($fp);

hat jemand den regulären ausdruck oder weiss jemand eine bessere lösung?

 
MelloPie
25-12-2005, 17:23 
 
wieviele leerzeichen sinds denn?
Immer die gleiche anzahl?
Was kommt bei Deinem regexp als ergebnis raus?

 
mysqlfrage
25-12-2005, 17:36 
 
die leerzeichen sind leider unterschiedlich lang und zwischendruch habe ich leider auch noch text, der durch ein leerzeichen getrennt ist.


das kommt raus:

1234567","Penol","Reifen","","," ","GRAU","115","","1","usw.....

 
MelloPie
25-12-2005, 17:51 
 
gibt es irgendeine gemeinsamkeit die die felder trennt? etwa 2 oder mehr leerzeichen?

 
mysqlfrage
25-12-2005, 17:55 
 
leider nein! nach buchstaben kann man auch nicht gehen, man kann höchstens nach der platzierung gehen. sprich bis zum 7. buchstaben ist die artikelnummer, dann kommt die bezeichnung von 9 bis xxx, ist aber nicht 100 prozentig, da es auch da ausnahmen gibt.

hab mal versucht anhand von exel über die tabellenbreite die datei zu erzeugen, geht aber auch nicht ohne fehlausgaben.

bin jetzt schon mal soweit, daß ich folgende ausgangsdatei habe:

1234567 Pola Reifen 123 st 0 0.00 50.00 0 1 2 0 0 0 0 0 0 2 3 1 0 0 1 0 0 1 0 0 0 0 0 0

ob das soviel bringt ;-)

 
MelloPie
25-12-2005, 18:17 
 
gibt es viele Felder, die immer die gleiche breite haben?
dann kannste das ganze mehrstufig angehen, scheindas Problem liegt an feld 2 mit dem variablen Text.

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:53 Uhr.