/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Redigere bestemt linje i *.TXT-fil
Fra : Niels


Dato : 11-12-04 20:38

Hvordan kan jeg redigere en bestemt linje i en *.TXT-fil, sådan at den
skriver noget i enden af linjen.

--
Mvh. Niels (http://niels.spoweb.dk)
http://niels.spoweb.dk/noop - Søgemaskine



 
 
Johan Holst Nielsen (11-12-2004)
Kommentar
Fra : Johan Holst Nielsen


Dato : 11-12-04 22:02

Niels wrote:
> Hvordan kan jeg redigere en bestemt linje i en *.TXT-fil, sådan at den
> skriver noget i enden af linjen.

Det simpleste ville være...

<?php
$fil = 'minfil.txt';
$fc = file($fil);
$fc[12] .= 'dflk'; //Skriv dflk i enden af linie 13
$fp = fopen($fil,'w');
fwrite($fp,implode('\n',$fc));
fclose($fp);
?>

mvh
Johan Holst Nielsen

Niels (12-12-2004)
Kommentar
Fra : Niels


Dato : 12-12-04 06:19


"Johan Holst Nielsen" <phpgeek@gmail.com> skrev i en meddelelse
news:cpfn85$18re$2@news.cybercity.dk...
> Niels wrote:
>> Hvordan kan jeg redigere en bestemt linje i en *.TXT-fil, sådan at den
>> skriver noget i enden af linjen.
>
> Det simpleste ville være...
>
> <?php
> $fil = 'minfil.txt';
> $fc = file($fil);
> $fc[12] .= 'dflk'; //Skriv dflk i enden af linie 13
> $fp = fopen($fil,'w');
> fwrite($fp,implode('\n',$fc));
> fclose($fp);
> ?>
>
> mvh
> Johan Holst Nielsen

Sådan så min *.TXT-fil ud først:

hejsa
linje2
linje3
linje4
linje5
linje6

Så brugte jeg scriptet:

<?php
$fil = 'dok.txt';
$fc = file($fil);
$fc[2] .= 'Niels er god'; //Skriv Niels er god i enden af linie 3
$fp = fopen($fil,'w');
fwrite($fp,implode('\n',$fc));
fclose($fp);
?>

Hvorefter *.TXT-filen så sådan her ud:

hejsa
linje2
linje3
linje4
linje5
linje6

Første gang jeg prøvede så filen sådan her ud:

hejsa
linje2
linje5
linje6

Efter jeg havde prøvet så den sådan her ud:

hejsa
\nlinje2
\nNiels er godlinje5\nlinje6

Eller noget i den stil



Johan Holst Nielsen (13-12-2004)
Kommentar
Fra : Johan Holst Nielsen


Dato : 13-12-04 01:57

Niels wrote:
> fwrite($fp,implode('\n',$fc));
<SNIP>
> Efter jeg havde prøvet så den sådan her ud:
>
> hejsa
> \nlinje2
> \nNiels er godlinje5\nlinje6

prøv at ændre:
fwrite($fp,implode('\n',$fc));
til
fwrite($fp,implode("\n",$fc));

mvh
Johan

Niels (13-12-2004)
Kommentar
Fra : Niels


Dato : 13-12-04 08:12


"Johan Holst Nielsen" <spam@phpgeek.dk> skrev i en meddelelse
news:41bce951$0$60825$edfadb0f@dread14.news.tele.dk...
> Niels wrote:
>> fwrite($fp,implode('\n',$fc));
> <SNIP>
>> Efter jeg havde prøvet så den sådan her ud:
>>
>> hejsa
>> \nlinje2
>> \nNiels er godlinje5\nlinje6
>
> prøv at ændre:
> fwrite($fp,implode('\n',$fc));
> til
> fwrite($fp,implode("\n",$fc));
>
> mvh
> Johan

hejsa
linje2
linje4 //Linje 3 som der skal skrives i
linje5
linje6Sådan så den ud /\ (Uden "//Linje 3 som der skal skrives i")bagefter
scriptet:hejsa

linje2

linje4
Niels er god
linje5

linje6Tja det går da fremad



Johan Holst Nielsen (13-12-2004)
Kommentar
Fra : Johan Holst Nielsen


Dato : 13-12-04 08:19

Niels wrote:
> "Johan Holst Nielsen" <spam@phpgeek.dk> skrev i en meddelelse
> news:41bce951$0$60825$edfadb0f@dread14.news.tele.dk...
>
> hejsa
> linje2
> linje4 //Linje 3 som der skal skrives i
> linje5
> linje6Sådan så den ud /\ (Uden "//Linje 3 som der skal skrives i")bagefter
> scriptet:hejsa
>
> linje2
>
> linje4
> Niels er god
> linje5
>
> linje6Tja det går da fremad

Kan du ikke sende mig et link til dine source filer? (inkl.
tekstfilerne) - så jeg kan se om der ligger en fejl der :)

mvh
Johan

Niels (13-12-2004)
Kommentar
Fra : Niels


Dato : 13-12-04 08:27


"Johan Holst Nielsen" <spam@phpgeek.dk> skrev i en meddelelse
news:41bd42fa$0$71405$edfadb0f@dread14.news.tele.dk...
> Niels wrote:
>> "Johan Holst Nielsen" <spam@phpgeek.dk> skrev i en meddelelse
>> news:41bce951$0$60825$edfadb0f@dread14.news.tele.dk...
>>
>> hejsa
>> linje2
>> linje4 //Linje 3 som der skal skrives i
>> linje5
>> linje6Sådan så den ud /\ (Uden "//Linje 3 som der skal skrives
>> i")bagefter scriptet:hejsa
>>
>> linje2
>>
>> linje4
>> Niels er god
>> linje5
>>
>> linje6Tja det går da fremad
>
> Kan du ikke sende mig et link til dine source filer? (inkl.
> tekstfilerne) - så jeg kan se om der ligger en fejl der :)
>
> mvh
> Johan

Source: http://niels.spoweb.dk/testdok.php

Tekstfil: http://niels.spoweb.dk/dok.txt



Niels (13-12-2004)
Kommentar
Fra : Niels


Dato : 13-12-04 16:17


"Niels" <niels@spoweb.dk> skrev i en meddelelse
news:41bd444b$0$74682$14726298@news.sunsite.dk...
>
> "Johan Holst Nielsen" <spam@phpgeek.dk> skrev i en meddelelse
> news:41bd42fa$0$71405$edfadb0f@dread14.news.tele.dk...
>> Niels wrote:
>>> "Johan Holst Nielsen" <spam@phpgeek.dk> skrev i en meddelelse
>>> news:41bce951$0$60825$edfadb0f@dread14.news.tele.dk...
>>>
>>> hejsa
>>> linje2
>>> linje4 //Linje 3 som der skal skrives i
>>> linje5
>>> linje6Sådan så den ud /\ (Uden "//Linje 3 som der skal skrives
>>> i")bagefter scriptet:hejsa
>>>
>>> linje2
>>>
>>> linje4
>>> Niels er god
>>> linje5
>>>
>>> linje6Tja det går da fremad
>>
>> Kan du ikke sende mig et link til dine source filer? (inkl.
>> tekstfilerne) - så jeg kan se om der ligger en fejl der :)
>>
>> mvh
>> Johan
>
> Source: http://niels.spoweb.dk/testdok.php
>
> Tekstfil: http://niels.spoweb.dk/dok.txt
>

Jeg brugte

<?php
$fil = 'dok.txt';
$fc = file($fil);
$fc[2] .= 'Niels er god'; //Skriv dflk i enden af linie 13
$fp = fopen($fil,'w');
fwrite($fp,implode("",$fc)); //Altså uden \n
fclose($fp);
?>

Den skulle jo skrive i ENDEN af linje 3, isteddet skrev den i starten af
linje 4:
hejsa
linje2
linje3
Niels er godlinje4
linje5
linje6



Morten Holt (14-12-2004)
Kommentar
Fra : Morten Holt


Dato : 14-12-04 00:22

Hvorfor ikke bare bruge:

<?PHP
$fil = 'dok.txt';
$file = fopen ($fil, 'w');
$con = '';
while (!feof ($file))
$con .= fgets ($file, 4096);
$con = explode (chr (10), $con);
$con[2] .= "<text her>"; //Skriv <text her> i enden af linje 3
fwrite ($file, implode (chr (10), $con);
fclose ($file);
?>

Ved godt jeg vist kom op på 9 linjer men er ret sikker på at det ville
virke efter hensigten...

Uden dog at have afprøvet det irl
--
Morten 'T-Hawk' Holt
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
There are only 10 types of people
Those who understand binary and those who don't

Niels (14-12-2004)
Kommentar
Fra : Niels


Dato : 14-12-04 06:57


"Morten Holt" <blackhawk@my3d.dk> skrev i en meddelelse
news:41be2427$0$74687$14726298@news.sunsite.dk...
> Hvorfor ikke bare bruge:
>
> <?PHP
> $fil = 'dok.txt';
> $file = fopen ($fil, 'w');
> $con = '';
> while (!feof ($file))
> $con .= fgets ($file, 4096);
> $con = explode (chr (10), $con);
> $con[2] .= "<text her>"; //Skriv <text her> i enden af linje 3
> fwrite ($file, implode (chr (10), $con);
> fclose ($file);
> ?>
>
> Ved godt jeg vist kom op på 9 linjer men er ret sikker på at det ville
> virke efter hensigten...
>
> Uden dog at have afprøvet det irl
> --
> Morten 'T-Hawk' Holt
> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> There are only 10 types of people
> Those who understand binary and those who don't

Parse error: parse error, unexpected ';' in
/home/web/gb0730/niels/testdok.php on line 9

<?PHP
$fil = 'dok.txt';
$file = fopen ($fil, 'w');
$con = '';
while (!feof ($file))
$con .= fgets ($file, 4096);
$con = explode (chr (10), $con);
$con[2] .= "Niller"; //Skriv <text her> i enden af linje 3
fwrite ($file, implode (chr (10), $con);
fclose ($file);
?>



Morten Holt (16-12-2004)
Kommentar
Fra : Morten Holt


Dato : 16-12-04 20:09

> fwrite ($file, implode (chr (10), $con);
skal ændres til
fwrite ($file, implode (chr (10), $con));

--
Morten 'T-Hawk' Holt
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
There are only 10 types of people
Those who understand binary and those who don't

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408942
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste