Mailinglisten-Archive |
Hi.
Am Mon, 09 Okt 2000 schrieb Volker Wambach:
> Habe ich ne Möglichkeit ASCII-Datein mit fester Satzlänge pro Feld (!!!)
> zu importieren ???
> z.B. Stelle 1-20 = Artikelnummer, 21-50 = Bezeichnung, ...
> Je ein Datensatz pro Zeile
Direkt geht das nicht (steht auch im MySQL-Manual). Du kannst aber, z.B.
mit Perl, die Datei in eine Trennzeichen-separierte wandeln.
Das untenstehende Script musst du noch auf deine Datei anpassen, d.h. die
jeweiligen Feldlängen bei unpack angeben (anstelle des "..."). Die ersten
beiden Felder, die du ja angegeben hast, habe ich schon drin (Artikelnr:
20 Stellen = a20, Bezeichnung: 30 Stellen = a30). Das Script gibt die
gewandelte Datei auf der Standardausgabe aus, so das du es wie folgt
starten musst (wenn du das Script als "fest2csv" speicherst):
fest2csv input.txt > output.csv
Hier das Script:
#!/usr/bin/perl -w
while(<>) {
_(at)_array = unpack("a20 a30 ...", $_);
for (_(at)_array) { s/\s+$// } # hängenden Whitespace entfernen
print join(";", _(at)_array) , "\n";
}
Du brauchst latürnich noch Perl, ist bei Linux normalerweise dabei und
gibt auch für Windows (da ist der Start aber anders, glaube ich).
Ciao, Rene
--
----------------------------------------------------------------------
mailto:rene.fertig_(at)_wtal.de http://home.telebel.de/referti/
======================================================================
>>>>>>>>>>>> PGP-Key auf Anfrage +++ PGP-Key on request <<<<<<<<<<<<
---
*** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive