Mailinglisten-Archive |
Hi Nicolas, > Die Beträge sind im folgenden Format in der Textdatei: > 27.456,67 > einen Punkt als Tausendertrenner und ein Komma als Dezimaltrenner. > Nach dem import ist alles nach dem Komma weg. > Kann man MYSQL dazu bringen, denn Punkt zu ignorieren und das > Komma als Dezimaltrenner anzuerkennen ? Sofern du Unix benutzt, findet sich die Lösung deines Problems in einem kleinen, sehr praktischen Tool namens sed. sed verfügt über eine Reihe von Kommandos zum zeilenweisen Manipulieren von Daten, unter anderem auch das s-Kommando, mit dem man Zeichenketten suchen und ersetzen kann, wobei die zu suchende Zeichenkette im RegExp-Format anzugeben ist. Für dich müssen wir also zunächst einmal die Eingabedatei zeilenweise durchsuchen und dabei die Tausender-Punkte entfernen. Der Syntax hierfür ist s/\.//g Danach wandeln wir die Kommas in Punkte um: s/,/./g In der Kommandozeile sieht der gesamte Befehl dann so aus: sed "s/\.//g;s/,/./g" inputfile.dat > outputfile.dat aus 27.456,67 wird dann 27456.67, also genau das, was du brauchst. Beachte aber, dass ALLE Punkte entfernt und ALLE Kommas ersetzt werden, also wenn in der ASCII-Datei noch an anderer Stelle Punkt und Komma stehen, werden die auch umgewandelt. In diesem Falle müsste man die Regexps noch etwas restriktiver formulieren. Gruß Jan --- *** Weitere Infos zur Mailingliste und MySQL unter www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive