pantera555: HTML Dateien splitten???

Hi Leute,
kann mir jemand mal verraten wieso ich mit diesem Script (soll eine html auslesen und bei <br><br> splitten) in $Ergebnis[0] die ganze html seite habe und nicht nur den ersten teil nach dem splitt!? in
$Ergebnis[1] steht dann garnichts...

require "cgi-lib.pl";
&parse_form;

$old = "e:/Xitami/webpages/eintrag/loeschen.htm";
$new =">e:/Xitami/webpages/eintrag/eintrag2.txt";
open (OLDFILE, $old) or die "Datei existiert nicht\n";
open (NEWFILE, $new);

while (<OLDFILE>)
{
$Satz = $_;

chomp($Satz);
@Ergebnis = split(/<BR><BR>/, $Satz);
print NEWFILE $Ergebnis[0];

}

close (OLDFILE);
close (NEWFILE);

Die HTML-Datei aus der gelesen werden soll sieht so aus:
<HTML>
<HEAD>
<TITLE>Caravan Auto</TITLE>
<HEAD>
<BODY bgcolor=dcdcb4>
<table width=450 border=1><tr><td>
<img src=e:/Xitami/webpages/eintrag/img/auto01.gif >
</td>
<td>
Test, dieser

</td></tr></table>
<form method=get action=/cgi-bin/loesch.cgi>
<INPUT NAME="loeschen" TYPE=RADIO ALIGN=left VALUE="1">Datensatz löschen?
<INPUT type=submit value=Senden>
</form>
<BR><BR>
<HTML>
<HEAD>
<TITLE>Caravan Auto</TITLE>
<HEAD>
<BODY bgcolor=dcdcb4>
<table width=450 border=1><tr><td>
<img src=e:/Xitami/webpages/eintrag/img/auto01.gif >
</td>
<td>
Noch ein Test

</td></tr></table>
<form method=get action=/cgi-bin/loesch.cgi>
<INPUT NAME="loeschen" TYPE=RADIO ALIGN=left VALUE="2">Datensatz löschen?
<INPUT type=submit value=Senden>
</form>
<BR><BR>
<HTML>
<HEAD>
<TITLE>Caravan Auto</TITLE>
<HEAD>
<BODY bgcolor=dcdcb4>
<table width=450 border=1><tr><td>
<img src=e:/Xitami/webpages/eintrag/img/auto02.gif >
</td>
<td>
Ein letzter Test

</td></tr></table>
<form method=get action=/cgi-bin/loesch.cgi>
<INPUT NAME="loeschen" TYPE=RADIO ALIGN=left VALUE="3">Datensatz löschen?
<INPUT type=submit value=Senden>
</form>
<BR><BR>
etc....

  1. Hi Leute,
    kann mir jemand mal verraten wieso ich mit diesem Script (soll eine html auslesen und bei

    »»  splitten) in $Ergebnis[0] die ganze html seite habe und nicht nur den ersten teil nach dem splitt!? in

    $Ergebnis[1] steht dann garnichts...

    ...
    »»  @Ergebnis = split(/<BR><BR>/, $Satz);
    ...
    Du splittest jede Zeile einzeln. In der HTML-Datei steht aber <BR><BR> in einer extra Zeile
    ...

    </form>
    <BR><BR>
    <HTML>

    ...
    Was soll da gesplittet werden??
    Wenn Du die Datei splitten willst, musst Du alle Zeilen bis <BR><BR> nach Ergebnis[0] schreiben und _danach_ nach Ergebnis[1] usw.. Also etwa
    ...
    $datei=0;
    open(ERGEBNIS,"ergebnis0.htm")
    while(<HTML>){
    if ($_ eq "<BR><BR>"){
       close(ERGEBNIS);
       $datei++;
       open(ERGEBNIS,"ergebnis$datei.htm")
    }
    print  ERGEBNIS $_ ;
    ...

    oder so etws ähnliches

    Chiau Pit

    1. Hi,
      ok, kapiert aber was wenn ich die einzelnen Stücke nicht in anderen HTML-Dateien Haben möchte sondern in der Liste @Eintrag !?

  2. ändere das:
    while (<OLDFILE>)
    {
    $Satz = $_;

    chomp($Satz);
    @Ergebnis = split(/<BR><BR>/, $Satz);
    print NEWFILE $Ergebnis[0];

    }

    in:
    $Satz = "";
    while (<OLDFILE>)
    {
    chomp($Satz);
    $Satz .= $_;
    }

    @Ergebnis = split(/<BR><BR>/, $Satz);
    print NEWFILE $Ergebnis[0];