Hallo Engin!
Das ist ja mal wieder Typisch, beim aller ersten Aufruf hatte es funktioniert,
zwar wurden die Zeilen nicht nummeriert aber in die OUTPUT file wurde was geschrieben,
Was denn, wenn nicht zeilenweise das Selbe plus vornedran Zeilennummern à la
123:
124:
das funzte aber irgendwie nur einmal, jetzt geht es nicht mehr, bzw. wird nichts mehr in die OUTPUT Seite eingetragen.
chdir "C:/xampp/anonymous/nimmet";
open INPUT, "suche.php" or die "Can't open file: $!";
open OUTPUT, "write.txt" or die "Can't open file: $!";
my $count = 1;
while (<INPUT>) {
$count = $count < 10 ? " ".$count : $count < 100 ? " ".$count : $count;
print OUTPUT "$count: $_";
$count++;
}
Du öffnest hier beide Dateien nur zum Lesen!... und hast meinen [Hinweis](https://forum.selfhtml.org/?t=166817&m=1089903), die [korrigierte Fassung](https://forum.selfhtml.org/?t=166817&m=1089846) zu nehmen, da ich im ersten Post einen Vergesslichkteisfehler hatte, ignoriert.
Der erste open öffnet die Quelldatei. Die soll ja nicht verändert werden, also reicht einfach, deren Namen anzugeben. Sie wird zum Lesen geöffnet. Hier hätte ich auch:
~~~perl
open INPUT, "<suche.php" or die "Can't open file: $!";
# ^ Dieses Zeichen bedeutet: Zum »nur lesen« öffnen
schreiben können.
Der zweite open soll die Zieldatei öffnen UND beschreiben. Exisitiert keine, soll sie neu erstellt werden. Also wird das Perl mitgeteilt mit den Zeichen:
Öffnen (evtl. neu erstellen) und Inhalt überschreiben oder
Öffnen (evtl. neu erstellen) und Inhalt dranhängen
Eigentlich hätte ich »>« benutzen sollen, denn um eine Textdatei mit Zeilennummern zu erstellen, sozusagen als Zeigekopie der Quelldatei, wollen wir ja keinen Inhalt an einer evtl. bereits bestehenden dranhängen: wenn z.B. festgestellt wird, dass man in der Quelldatei ein paar Zeilen HTML-Text vergessen hat, und man will die Zieldatei deswegen neu machen, sollte die Zieldatei ja überschrieben werden, und der neue Quellcode (in dem Fall wörtlich: Code von der Quelldatei *g*) nicht einfach unter dem alten erscheinen. Deswegen hier die korrigierteRE Fassung ;) :
chdir "C:/xampp/anonymous/nimmet";
open INPUT, "suche.php" or die "Can't open file: $!";
open OUTPUT, ">write.txt" or die "Can't open file: $!";
my $count = 1;
while (<INPUT>) {
$count = $count < 10 ? " ".$count : $count < 100 ? " ".$count : $count;
print OUTPUT "$count: $_";
$count++;
}
Zu open: http://de.selfhtml.org/perl/funktionen/einausgabe.htm#open
Ich kriege das mit den Sections und Subsections nicht so hin, wie ich das gerne hätte, im makenav-Nachfolgeskript...
Ich würd jetzt so gern sagen "zeig mal her" aber viel bringen wird das nicht. :-)
Ich habe eine rekursive Funktion geschrieben, die mir die Sections bis aus der hintersten Schublade rausholt. Ausgehend von einer verschachtelten Web-Struktur:
start page (Root, Index-Seite - Startseite) <- oberste Ebene (level0)
level1-A/page1 (1. Unterverz. von Root - Seite 1) <- level1
level1-A/page2 (1. Unterverz. von Root - Seite 2) <- level1
level1-A/level2-A/page1 (1. Unterverz. vom 1. Unterverz. -Seite 1) <- level2
level1-B/page1 (2. Unterverz. von Root - Seite 1) <- level1
level1-B/page2 <- level1
level1-B/level2-A/page1 <- level2
level1-B/level2-A/page2 <- level2
level1-B/level2-A/level3-A/page1 <- level3
.
.
.
also so was wie (in Verzeichnissen ausgedrückt am Beispiel eines Webs mypets.example.org):
root (dir)
index.html.................level0/page1
katzen (dir)...............level1-A/
index.html...............level1-A/page1
muschi.html..............level1-A/page2
muschikinder (dir).......level1-A/level2-A
kleineskaetzchen.html..level1-A/level2-A/page1
hunde (dir)................level1-B/
index.html...............level1-B/page1
fifi.html................level1-B/page1
fifikinder (dir).........level1-B/level2-A
hasso.html.............level1-B/level2-A/page1
bello.html.............level1-B/level2-A/page2
fifienkel (dir)........level1-B/level2-A/level3-A/
wuffel.html..........level1-B/level2-A/level3-A/page1
.
.
.
komme ich an allen Daten ran, nur einen »Pretty HTML-Output«, eine schön strukturierte, verschachtelte <ul>-Liste bekomme ich nicht, bzw. nicht hundertprozentig hin. Ich bekomme die Liste zwar valide, also richtig verschachtelt, nur mit den Einrückungen happerts:
Startseite: index.html
<ul>
<li>katzen/index.html</li>
<li>katzen/muschi.html
<ul>
<li>kleineskaetzchen.html</li>
</ul>
</li> <-- hier sollte das </li> wieder 2 Leerzeichen nach vorne, das haut bei mir nicht richtig hin
Struppi wird sagen, ich spinne, hauptsache der Output ist valide ;)
Viele Grüße aus Frankfurt/Main,
Patrick