Hallo dog.je
hier ist er z.b. gestolpert.
[1. Zelle mit] [Trennzeichen"] [2. Zelle mit ,
Trennzeichen]
Du hast recht, ich habe Mist gebaut. Muss ich
noch mal ran
sagen wir mal so: mein php-klasse hat 100 zeilen mehr und
duerfte etwas mehr speicher brauchen - output siehe unten. na
gut, immerhin kann sie mir das ergebnis bei csv mit kopfzeile
auch als named array zurueckgeben - das ist ab 20 spalten
hilfreich.
100 Zeilen? Mit Kommentaren und Handbuch, oder
ich finde es immer erstaunlich, was ihr aus der zeichenmenge
[@%~ynqr?:] - was wahrscheinlich schon wieder ein „sinnvoller“
perlausdruck ist - macht.
Warte, was nun kommt …
von wg. der pruefbarkeit muesste man jeweils noch 3. dritte
spalte setzen.
OK
mein klasse rafft das mit den gequoteten trennzeichen noch
nicht:
Array
Jetzt klappts auch mit N Feldern pro Zeile
(leider ist der reguläre Ausdruck 2 Zeilen
länger geworden …)
my ($rg, $r);
$rg = qr/(?[^",]+?)(?:,|\z))|(??{$r=0})
(?:"(?{$r++})|\A)((?:[^"]+|(?:"")+
)+)(?(?{$r&1})"(?!")(?{$r++})|(?:,|
\s*))(?:,|\z ))/xs;
$/ = ‚‘; # set paragraph mode \n\n
while( ) {
chomp; y/\n/~/d; # Zeilenumbruch => ~
my @daten = grep defined, /$rg/g; # extrahieren
print scalar @daten, " felder: ", (map "($_) ", @daten), „\n“
}
__DATA__
„1.zelle mit um-
bruch“,„2.zelle mit um-
bruch“
„1. Zelle mit „„Quotes“““,„2.Zelle mit „„Quotes“““
„“„1. Zelle in „„Quotes“““"",""„2. Zelle in „„Quotes“““""
„1. Zelle mit , Trennzeichen“,„2. Zelle mit , Trennzeichen“
„1. Zelle mit „“,“" Trennzeichen in Quotes",„2. Zelle mit „“,“" Trennzeichen
in Quotes",„3. Zelle mit „“,“" Trennzeichen in Quotes nach Umbruch"
„1. Zelle mit , Trennzeichen und „„Quotes“““,„2. Zelle mit , Trennzeichen und „„Quotes“““
„“„1. Zelle in Quotes um-
bruch und , Trennzeichen und „„Quotes“““"",""„2. Zelle in Quotes um-
bruch und , Trennzeichen und „„Quotes“““""
1.normale zelle,2.normale zelle
Grüße
CMБ