Avatar billede shjdsi Nybegynder
24. juli 2002 - 16:19 Der er 9 kommentarer og
1 løsning

starte append til fil 3 linier fra bunden

Hej!

Hvordan kan jeg finde ud af at skrive til en fil 3 linier over sidste linie.
Avatar billede thomasledet Nybegynder
24. juli 2002 - 18:43 #1
dit problem lyder mystisk og kan selvfølgelig sagtens lade sig gøre... men jeg vil egentlig hellere vide, hvad det er du skal bruge det til, da jeg tror, at der er meget smartere metoder...
Avatar billede thomasledet Nybegynder
24. juli 2002 - 18:44 #2
hov... det skulle ikke være et svar... ignorer venligst, at det var et svar...
Avatar billede shjdsi Nybegynder
24. juli 2002 - 20:43 #3
Det er fordi jeg generer en xml fil.
Denne har følgende template
<?xml version="1.0" encoding="iso-8859-1" ?>
<JOBS>
<JOB>
<NAVN>her skal indsættes navn variabel</NAVN>
<DATO>her skal indsættes dato variabel</DATO>
</JOB>
</JOBS>


******************
<JOB>
<NAVN>her skal indsættes navn variabel</NAVN>
<DATO>her skal indsættes dato variabel</DATO>
</JOB>
Skal appendes til filen. Det skal fungere som en slags log, bare i xml format.

Jeg har ikke mulighed for iunstallering af evt. xml moduler til perl, men der findes givetvis en smartere måde at gøre det på en den jeg har tænklt på, men jeg synes sgu det er så indviklet med de regulere udtryk i perl :-). Nogen fordslag ??
Avatar billede breum Nybegynder
25. juli 2002 - 13:46 #4
$navn="Breum";
$dato="27/4-2002";
open (XMLFILE, ">>$xmlfile");
print XMLFILE "<JOB>\n";
print XMLFILE "<NAVN>$navn</NAVN>\n";
print XMLFILE "<DATO>$dato</DATO>\n";
print XMLFILE "</JOB>\n";
close XMLFILE;
Avatar billede breum Nybegynder
25. juli 2002 - 13:47 #5
Ups havde ikke set det med 3 linier fra bunden
Avatar billede breum Nybegynder
25. juli 2002 - 13:48 #6
Så bliver du vist nød til at åbne filen, hente indholdet ind, indsætte de nye linier og skrive hele filen igen.
Avatar billede shjdsi Nybegynder
25. juli 2002 - 13:55 #7
Har selv løst det, fandt ud af at det faktisk kun kunne lade sig gøre med at kopiere hele filen over i en tmp fil og derefter genskrive sidste tag oh rename til org fil. troede egenligt at der var en eller anden metode at arbejde med linier i en fil med. Meeeen det er jo trodsalt ikke det samme som alm. shell script :-)
Avatar billede breum Nybegynder
25. juli 2002 - 14:03 #8
$navn="Breum";
$dato="27/4-2002";
$xmlfile="testfil.xml";

open (XMLFILE, "$xmlfile");
@xmllines=<XMLFILE>;
close (XMLFILE);

$sidstelinie=$xmllines[$#xmllines];
$andensidstelinie=$xmllines[$#xmllines-1];
$trediesidstelinie=$xmllines[$#xmllines-2];
pop (@xmllines);
pop (@xmllines);
pop (@xmllines);

open (XMLFILE, ">>$xmlfile.2");
print XMLFILE @xmllines;
print XMLFILE "<JOB>\n";
print XMLFILE "<NAVN>$navn</NAVN>\n";
print XMLFILE "<DATO>$dato</DATO>\n";
print XMLFILE "</JOB>\n";
print XMLFILE $trediesidstelinie;
print XMLFILE $andensidstelinie;
print XMLFILE $sidstelinie;

close (XMLFILE);
Avatar billede breum Nybegynder
25. juli 2002 - 14:04 #9
Det virker
Avatar billede shjdsi Nybegynder
25. juli 2002 - 14:09 #10
Tak det er altid rart med laternative måder at gøre tingende på, især når man er så ny i perl som jeg er.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester