Hi,
ich lese eine Datei mit ungefähr folgendem Inhalt:
"a"
"b"
"c"
"d
e
f"
"g"
Also, die ganze Geschichte soll in eine db, aber die Einträge d,e und f sind ein Datensatz, den meine lieben Kollegen mit \n zerstückelt haben :-(. Ich muß also irgend wie prüfen, ob das letzte Zeichen ein " ist, sonst mit den nachfolgenden verbinden.
Wie mach ich das nun?
Frank Sommer
Hi,
* fsommer@qualitype.de [05/27/02 18:27:59 CEST] wrote:
ich lese eine Datei mit ungefähr folgendem Inhalt:
"a" "b" "c" "d e f" "g"
Also, die ganze Geschichte soll in eine db, aber die Einträge d,e und f sind ein Datensatz, den meine lieben Kollegen mit \n zerstückelt haben :-(. Ich muß also irgend wie prüfen, ob das letzte Zeichen ein " ist, sonst mit den nachfolgenden verbinden.
Ich wuerde mit Perl von stdin alles (komplett ohne \n) in eine Variable lesen, und das dann mit '""' als Trennzeichen wieder aufspalten:
#!/usr/bin/perl -w
use strict;
my $str; my @db = ();
while (<>) { $str .= substr($_,0,length($_)-1); } @db = split( /""/ , $str );
for (@db) { print "$_\n"; }
HTH,
Cheers, Rocco.
Am Montag, dem 27. Mai 2002 um 18:27:59, schrieb fsommer@qualitype.de:
Also, die ganze Geschichte soll in eine db, aber die Einträge d,e und f sind ein Datensatz, den meine lieben Kollegen mit \n zerstückelt haben :-(. Ich muß also irgend wie prüfen, ob das letzte Zeichen ein " ist, sonst mit den nachfolgenden verbinden.
Etwa so (ungetestet):
my $line; while (<>) { chomp; $line .= $_; redo unless /"$/ or eof; # benutze $line hier } continue { $line = ''; }
Torsten
lug-dd@mailman.schlittermann.de