html-Tabelle splitten
am 19.03.2006 12:57:41 von Hago ZieglerHallo,
ich habe eine lange Textdatei, mit lauter solchen Einträgen:
..........
....
...
....
...
..................
Statt der Punkte gibt es Text.
Dieses Element wiederholt sich sehr oft, immer mit der Leerzeile
dazwischen.
Ich möchte gerne die ganze Datei umdrehen, so dass der jetzt unterste
Eintrag ganz oben steht.
So habe ich es versucht:
$datei1 = 'gb.txt';
$datei2 = 'gb3.txt';
open(DATEI1, "<$datei1");
$D1 =
@eintr = split(/\n\r\n\r/,$D1);
@ein = reverse @eintr;
open(DATEI2, ">$datei2");
foreach(@ein){ print DATEI2 "$_\n";}
close DATEI2;
close DATEI1;
Ich hab' natürlich schon eine ganze Reihe von reg.Expr. versucht.
Als Ergebnis in Datei2 erhalte ich immer nur:
Jetzt habe ich "1x1x1" in die Leerzeilen geschrieben und versucht so zu
splitten, aber das Ergebnis bleibt das gleiche.
Kann mir da jemand helfen?
Gruß, Hago
Re: html-Tabelle splitten
am 19.03.2006 15:57:42 von joerg.hubeleHago Ziegler wrote:
> Hallo,
>
> ich habe eine lange Textdatei, mit lauter solchen Einträgen:
> Dieses Element wiederholt sich sehr oft, immer mit der Leerzeile
> dazwischen.
>
> Ich möchte gerne die ganze Datei umdrehen, so dass der jetzt unterste
> Eintrag ganz oben steht.
>
> So habe ich es versucht:
> open(DATEI1, "<$datei1");
> $D1 =
Das macht nicht was du erwartest, siehe $/ in perlvar.
Um die ganze Datei in einen Skalar einzulesen:
{
local $/;
$D1 =
}
Besser ist es aber du setzt $/ gleich so, dass immer von Leerzeilen
getrennte Blöcke eingelesen werden, in etwa so (ungetested):
open IN, '<', $datei1;
local $/ = "";
my @in =
close IN;
open OUT, '>', $datei2;
chomp @in;
print OUT join "\n\n", reverse @in;
close OUT;
falls der letzte Eintrag auch noch mit einer Leerzeile endet, kannst du den
chomp/join Zirkus weglassen
Jörg
Re: html-Tabelle splitten
am 19.03.2006 16:35:49 von Hago ZieglerHallo Jörg,
danke, hat geklappt.
Gruß, Hago