phpbar.de logo

Mailinglisten-Archive

Re: Problem mit ASCII-Import-Funktion (Betraege)
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problem mit ASCII-Import-Funktion (Betraege)



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 


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive