Hi, um wegen meines Gnumeric-Vorschlags nicht als unsportlicher Feigling zu erscheinen ;) will ich noch einen Kommentar samt Warnung loswerden.
Tepperis von der Ohe, Michael (LOGICA) hat gesagt: > hier ein programm-rahmen. allerdings gibt es ein > gutes, hilfreiches html-modul fuer perl. > $_ ist die aktuelle zeile. > > #!/usr/bin/perl > [...] > while( <FILE> ) # datei einlesen > { > s/,/<td>/g; Die Warnung: Obiges funktioniert nicht immer, warum s.u. > print FILE2 " <tr><td>$_</tr>\n"; > } Der Kommentar: Einfach das Komma durch <td> zu ersetzen (wie auch in den Shell-Lösungen vorgeschlagen), geht dann nicht mehr, wenn in den csv-Feldern selber Kommas auftauchen dürfen, und das ist zum Beispiel bei Preisen gar nicht selten. Meist wird dann das Komma geschützt, ala \, oder der ganze Dateneintrag in "Anführungszeichen" gesetzt. Da kommt die naive Lösung natürlich aus dem Tritt. Man muss also gegebenenfalls vorbereitet sein. Wie man das in der Shell macht, weiß ich nicht, Python ist leider nicht so populär, daher hier die Perl-Lösung: Sie steckt im Modul Text::ParseWords und heißt quotewords. Das Beispiel in der man-Page: use Text::ParseWords; @words = "ewords('\s+', 0, q{this is "a test" of\ quotewords \"for you}); $i = 0; foreach (@words) { print "$i: <$_>\n"; $i++; } gibt aus: 0: <this> 1: <is> 2: <a test> 3: <of quotewords> 4: <"for> 5: <you> Das ergibt dann diese Funktion, um eine csv-Zeile zu splitten: $sep = ","; # oder wie auch immer sub parse_csv { my $text = shift; # record containing comma-separated values my @new = (); @new = "ewords($sep, 0, $text); return @new; # list of values that were comma-separated } Stammt glaube ich aus dem Perl-Cookbook, liegt hier so rum... Damit wird der Loop zu: while( <FILE> ) { # splitte aktuelle Zeile: @data = parse_csv($_); # @data weiter verarbeiten &Mach_html_aus(@data); } Ciao, -- __ __ Frank Barknecht ____ ______ ____ __ trip\ \ / /wire ______ / __// __ /__/ __// // __ \ \/ / __ \\ ___\ / / / ____/ / / / // ____// /\ \\ ___\\____ \ /_/ /_____/ /_/ /_//_____// / \ \\_____\\_____\ /_/ \_\ -- Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)