Thread Post aus anderem Forum ! (7 answers)
Opened by BrownWolf at 2003-09-16 05:37

BrownWolf
 2003-09-16 05:37
#19182 #19182
User since
2003-08-15
308 Artikel
BenutzerIn
[default_avatar]
Hallo,

in einem anderen Forum hat jemand anderes eine schwierige Aufgabe gegeben. Sie wollte dafür 20 ¤ überweisen wenn es jemand schaft *lol*

Quote
20 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


Ich habe darauf folgendes geantwortet:

Code (perl): (dl )
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 !


Wie hättet ihrs gemacht ?
Edit: Diese komischen Zeichen da bei splice sollten eigentlich $1, $2 , $3 , $4 sein aber das Forum nimmt die nicht an ?\n\n

<!--EDIT|BrownWolf|1063676311-->
Code (perl): ()
1
2
3
sub _{s;;xrqIpiql\\{}p{pl{R>rl{N{}gjwpkssq]>rl{N;;;*{{}=*{_};;
&#36{{}={q{{{}}}=>[reverse+split+reverse+q;}{;]};&#36{{}->{q{{{}}}}->[@{{}];}
&#36{{}=reverse+_(q{{}}=>q{{}})^chr(30)x+length&_(q{{}}=>,q{{}})and+print;

View full thread Post aus anderem Forum !