Habe eine groessere Datei, die aus Zeilenbloecken
besteht.
Jeder Block hat eine Titelkarte und dann kommen Zeilen
mit Zahlen.
Jeder Block hat unterschiedlich viele Zeilen.
Ich moechte die grosse Datei splitten, dass jeder
Block anschliessend in einer eigenen kleinen Datei steht.
Die Titelkarte besteht aus Buchstaben (mixed case) und Zahlen.
Aber auch die Zeilen mit den Zahlen enthalten leider nicht nur
Zahlen, weil diese im wissenschaftlichen Format dort stehen,
also neben [0..9] auch noch +-.E enthalten.
Die Titelkarte kann aber auch ein E enthalten.
Ein Beispiel fuer die Zahlenzeilen:
3.12870E+00 7.05570E+00 6.37200E+00 2.48330E+00 8.59200E-01
3.96730E-01
1.87960E-01 7.53420E-02 8.22110E-02 7.10710E-02 4.82120E-02
1.46620E-02
Wie kann man so eine Titelkarte erkennen und die Datei dann
entsprechend
splitten?
Gruss, Astrid
Eher ist es andersherum. In den Nichttitelkarten kommen
[0..9] + - E . und Leerzeichen vor.
In den Titelkarten kommen ausser dem E auch noch andere
Buchstaben vor. Und auch [0..9] + - . und Leerzeichen.
Gruss, Astrid
Dann findest du raus, ob es eine Titelkarte ist, indem du nach
irgendeinem Buchstaben suchst, der nicht "E" ist.
if ($string =~ /[A-DF-Za-z]/) { ist titelkarte } else {nicht}
Man müsst hier wissen um welches Split-Kriterium es sich handelt!
Wenn es sich um eine leere Zeile handelt, kann man überprüfen mit
while (<>) {
if (/\S/) {
// ein nicht space-char is vorhanden, normal
print OUTPUT $_;
} else {
close OUTPUT;
open OUTPUT "xxx".i++;