Offsetadessen der Dateizeilen einlesen
Sebastian Nagel
- perl
Hi Leute, ich hab ein Problem mit einem meiner Scripts.
Ich versuche mittels dieses Codes die Offsetnummern der Zeilen einer Datei einzulesen:
open(DATAIN, "<../guest.data");
@Daten = <DATAIN>;
$hexoffset[0] = tell(DATAIN);
while(<DATAIN>)
{
$i++;
$hexoffset[$i] = tell(DATAIN);
}
close(DATAIN);
Das Problem ist nur, dass danach der Array nichts enthält (bzw. nur die Zelle Nr. 0 hat danach einen zugewiesenen Wert)
Der Beispiel-Code von Self-HTML klappt auch nicht - der Server bringt wiedermal den vielsagenden Fehler: a Error ocurred....
Hier noch mal kurz der Beispielcode, damit ihr nicht zu lange suchen müßt:
#!/usr/bin/perl -w
use strict;
use CGI::Carp qw(fatalsToBrowser);
my $Datei = "/usr/info/readme.txt";
my @Zeilenanfaenge = "";
open(DATEI, "<$Datei") || die "$Datei: $!";
$Zeilenanfaenge[0] = tell(DATEI);
my $i = 0;
while(<DATEI>) {
$i++;
$Zeilenanfaenge[$i] = tell(DATEI);
}
close(DATEI);
$i = 1;
print "Content-type: text/html\n\n";
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">', "\n";
print "<html><head><title>Testausgabe</title></head><body>\n";
foreach (@Zeilenanfaenge) {
print "Zeile $i beginnt in der Datei bei Offset $_<br>\n";
$i++;
}
print "</body></html>\n";
Hi Leute, ich hab ein Problem mit einem meiner Scripts.
Ich versuche mittels dieses Codes die Offsetnummern der Zeilen einer Datei einzulesen:open(DATAIN, "<../guest.data");
@Daten = <DATAIN>;
$hexoffset[0] = tell(DATAIN);
Dir ist die Funktion von tell() offensichtlich nicht ganz klar.
Sei so gut, lies nach.
Rolf
while(<DATAIN>)
{
$i++;
$hexoffset[$i] = tell(DATAIN);
}
close(DATAIN);Das Problem ist nur, dass danach der Array nichts enthält (bzw. nur die Zelle Nr. 0 hat danach einen zugewiesenen Wert)
Der Beispiel-Code von Self-HTML klappt auch nicht - der Server bringt wiedermal den vielsagenden Fehler: a Error ocurred....
Hier noch mal kurz der Beispielcode, damit ihr nicht zu lange suchen müßt:
#!/usr/bin/perl -w
use strict;
use CGI::Carp qw(fatalsToBrowser);my $Datei = "/usr/info/readme.txt";
my @Zeilenanfaenge = "";
open(DATEI, "<$Datei") || die "$Datei: $!";
$Zeilenanfaenge[0] = tell(DATEI);
my $i = 0;
while(<DATEI>) {
$i++;
$Zeilenanfaenge[$i] = tell(DATEI);
}
close(DATEI);
$i = 1;
print "Content-type: text/html\n\n";
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">', "\n";
print "<html><head><title>Testausgabe</title></head><body>\n";
foreach (@Zeilenanfaenge) {
print "Zeile $i beginnt in der Datei bei Offset $_<br>\n";
$i++;
}
print "</body></html>\n";
"Das Beispiel öffnet mit open eine Textdatei und liest sie in einer while-Schleife zeilenweise ein. Dabei wird direkt nach dem Öffnen und bei jedem Schleifendurchgang die aktuelle Position des Dateizeigers mit tell ermittelt und im jeweils nächsten Element des Arrays @Zeilenanfaenge gespeichert. Anschließend wird HTML-Code an den Browser gesendet. Dabei werden die gespeicherten Offset-Positionen der Zeilenanfänge in einer foreach-Schleife ausgegeben."
Wie kann man an eine bestimmte Stelle in einerDatei springen ?
Hi,
Wie kann man an eine bestimmte Stelle in einerDatei springen ?
wie kann man an eine bestimmte Stelle in einem bereits zum Thema geöffneten Thread springen?
Cheatah
Hi,
Wie kann man an eine bestimmte Stelle in einerDatei springen ?
wie kann man an eine bestimmte Stelle in einem bereits zum Thema geöffneten Thread springen?
Mit einem Klick!
Entdecke die Maus...
SCNR, Rolf
Hello Rolf,
Dir ist die Funktion von tell() offensichtlich nicht ganz klar.
Sei so gut, lies nach.
Auch ich habe mit PERL gerade erst angefangen und 'ne Menge Fragen dazu. Gibt es für Perl eine ähnliche Doku, so wie für PHP? Dann wäre ich Dir für einen Link-Tipp dankbar.
Liebe Grüße aus http://www.braunschweig.de
Tom
use Mosche;
Auch ich habe mit PERL gerade erst angefangen und 'ne Menge Fragen dazu. Gibt es für Perl eine ähnliche Doku, so wie für PHP? Dann wäre ich Dir für einen Link-Tipp dankbar.
perdoc ist _das_ Maß aller Dinge.
Ich muß allerdings zugeben, daß ich persönlich nicht dait gelernt habe (zumindest zu Beginn), da half mir ein "Einführung in Perl" aus dem O'Reilly-Verlag und "Fortgeschrittene Perl-Programmierung" (ebenfalls O'Reilly).
http://www.perldoc.com sollte aber eigentlich (wenn man bereits programmieren kann) verständlich sein, insbesondere wenn man Grundlagen zB didaktisch sinnvoll aufgebaut auch in SelfHTML finden kann.
use Tschoe qw(Matti);
___Doppelposting___
Bleib doch bitte in deinem alten Thread!
Grüße,
Fabian St.
Ist es nicht möglich die Position in der Form Pos(Zeile,Zeichen) anzugeben ?
Das wäre sehr hilfreich
Hallo Sebastian,
Ist es nicht möglich die Position in der Form Pos(Zeile,Zeichen) anzugeben ?
Nein.
Grüße,
CK