/ 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
Hvilken værdi har tom linie?
Fra : Christer Rasmussen


Dato : 08-09-02 14:58

Jeg har en .txt fil med følgende indhold. (complete.txt)
*** Fil start ***
Track: Monza Thu Sep 05 21:51:34 2002

PRACTICE TIMES

Pos No Driver Team Nat Time
1 3 Torben Ferrari USA 1m28.181s
2 15 Flemming Lotus DEN 1m28.475s
3 17 Henning Eagle DEN 1m28.786s

All times are official

RACE RESULT

Pos No Driver Team Nat Time Laps
1 3 Torben Ferrari USA 33m24.181s 17
2 15 Flemming Lotus DEN 33m25.475s 17
3 17 Henning Eagle DEN 34m18.746s 17

All times are official
*** Fil slut ***

Jeg skal have nogle af informationerne fra de 3 (Kan være flere alt efter
antal deltagere) linier med resultatet af løbet lagt ind i en database.

og indtil vidre har jeg følgende kode.

<?
$fd = fopen ("complete.txt", "r");
while (!feof ($fd)) {
$buffer = fgets($fd, 4096); //Henter en linie
$pos = strpos($buffer, "Pos"); //Ser om linien indeholder "Pos"
if ($pos === false) { //Hvis "Pos" ikke findes skal der
ikke ske noget (while lykken læser næste linie)
} else { //Hvis linie indeholder
"Pos" skal der ske noget
$driverpos = strpos($buffer, "Driver"); //hvor starter Driver
Navn
$teampos = strpos($buffer, "Team"); //hvor starter Team Navn
$natpos = strpos($buffer, "Nat"); //hvor starter Nat
while ($buffer = fgets($fd, 4096) NOT EQUAL "tom") { //Det er
så her jeg har problemet. LÆS under koden.
$name = trim(substr($buffer, $driverpos,
($teampos-$driverpos))); //klip Navnet ud af linien som herefter kan
puttes i database.
}
}
}
fclose ($fd);
?>

LÆS her. lykken skal gentages indtil der kommer en tom linie (Linien under
Henning). hvorefter den første while køre videre til den kommer til "Pos"
efter RACE RESULT og denne while køre igen.
Hvad er indholdet af $buffer når linien er tom?

Mvh
Christer




 
 
Niels Andersen (08-09-2002)
Kommentar
Fra : Niels Andersen


Dato : 08-09-02 16:08

Christer Rasmussen wrote in <alfl2f$2m0r$1@news.cybercity.dk>:
> $buffer = fgets($fd, 4096); //Henter en linie
[...]
> Hvad er indholdet af $buffer når linien er tom?

Et linjeskift. Dvs. "\n" eller "\r\n", alt efter om det er Unix eller
Windows linjeskift.

Du kan evt. køre trim() på den. Den fjerne alt "white-space" (linjeskift,
mellemrum, tabulator...) først og sidst på linjen.

Dvs.:

' test
'

(altså med linjeskift til sidst) bliver til:

'test'

og en tom linje (altså kun et linje skift) bliver til '', altså en helt tom
streng.

--
Mvh.

Niels Andersen
(la nels. anersyn.)

Christer Rasmussen (08-09-2002)
Kommentar
Fra : Christer Rasmussen


Dato : 08-09-02 18:13

Tak for det, det virkede.


"Niels Andersen"
> Christer Rasmussen wrote in <alfl2f$2m0r$1@news.cybercity.dk>:
> > $buffer = fgets($fd, 4096); //Henter en linie
> [...]
> > Hvad er indholdet af $buffer når linien er tom?
>
> Et linjeskift. Dvs. "\n" eller "\r\n", alt efter om det er Unix eller
> Windows linjeskift.
>
> Du kan evt. køre trim() på den. Den fjerne alt "white-space" (linjeskift,
> mellemrum, tabulator...) først og sidst på linjen.
>
> Dvs.:
>
> ' test
> '
>
> (altså med linjeskift til sidst) bliver til:
>
> 'test'
>
> og en tom linje (altså kun et linje skift) bliver til '', altså en helt
tom
> streng.
>
> --
> Mvh.
>
> Niels Andersen
> (la nels. anersyn.)



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste