Leser: 2
8 Einträge, 1 Seite |
Quote20 Euro Belohung!!!! Â Â Â Â Â
Hallo, brauche dringend hilfe.
möchte eine textdatei ab einer bestimmten Stelle überschreiben.
Der Printbefahl sieht so aus:
print FILE "$id}{$email}}{$url}{$name}{$ort}{$strasse}{$nr}{$tel\n";
Ich möchte nun, das beim überschreiben vorne, die ersten drei Variablen nicht überschrieben werden, aber dann aber der vierten Varibale soll alles überschrieben werden. Also, das die id, die email und die url so bleiben sollen, der rest wird neu beschrieben. Ich habe mal was von einem seek-befehl gehört, der einen Zeiger auf eine bestimmte Stelle steuert und dann von dort aus beschreibt.
Wie mach ich das???? Bruch dringend einen Code, der erste Code der funktioiert,dem überweise ich 20 euro sofort.
moni
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Keine Garantie auf Richtigkeit: #!/usr/bin/perl -w my $line = 5; # Achtung ! Perl fängt bei 0 an zu zählen. #---- Daten die geändert werden sollen. my $ort = "Kanada"; my $strasse = "Buschstrasse"; my $nr = 32; my $tel = 123456; open(DAT,"+<datei.txt") || die $!; # Datei zum lesen und schreiben öffnen my @read = <DAT>; # Dateiinhalt einlesen $read[$line] =~ /(.+)}{(.+)}}{(.+)}{(.+)}{.+}{.+}{.+}{.+/; # In bestimmter Zeile Daten zwischen Klammern matchen. splice(@read, $line, 1, "ũ}{Ū}}{ū}{Ŭ}{$ort}{$strasse}{$nr}{$tel "); # Bestimmte Zeilen ändern, dabei die Daten der ersten 4 Klammern behalten. seek(DAT, 0, 0); # Dateizeiger an den Anfang der Datei setzen truncate(DAT, 0); # File komplett löschen print DAT @read; # Daten Zurück in die Datei schreiben close(DAT); # Datei schliessen 20 Euro brauchens nicht sein. Ne Aspirin tuts auch !
1 2 3
sub _{s;;xrqIpiql\\{}p{pl{R>rl{N{}gjwpkssq]>rl{N;;;*{{}=*{_};; ${{}={q{{{}}}=>[reverse+split+reverse+q;}{;]};${{}->{q{{{}}}}->[@{{}];} ${{}=reverse+_(q{{}}=>q{{}})^chr(30)x+length&_(q{{}}=>,q{{}})and+print;
s/^(\w+).(\w+).(\w+).(\w+).*$/$1 $2 $3 $4 $ort $str $nr $tel/;
1 2 3
sub _{s;;xrqIpiql\\{}p{pl{R>rl{N{}gjwpkssq]>rl{N;;;*{{}=*{_};; ${{}={q{{{}}}=>[reverse+split+reverse+q;}{;]};${{}->{q{{{}}}}->[@{{}];} ${{}=reverse+_(q{{}}=>q{{}})^chr(30)x+length&_(q{{}}=>,q{{}})and+print;
8 Einträge, 1 Seite |