Avatar billede dalbjerg Nybegynder
12. maj 2003 - 11:12 Der er 21 kommentarer og
1 løsning

txt fil læsning

Hej

Jeg har et txt. fil jeg skal bruge som database.

Indholdet i txt filen er:
Kenneth:9848:9888:0:
Ole:9204:9244:1:
Jens:1234:2222:0:
Dalbjerg:2345:1234:1:

Ud fra dette skal jeg så kunne trække ud:
de steder hvor der står 1, det skal jeg nemmelig kunne bruge til at skrive

Følgende bruger er logget ind:
(I eks oven over skal der så står):
Ole
Dalbjerg

Hvordan gøres dette ??
Avatar billede andy Nybegynder
12. maj 2003 - 11:23 #1
$content = file("fil.txt");

for ($i=0; $i<sizeof($content); $i++) {
    $temp = explode(":", $content[$i]);
    if ($temp[3] == 1) { $users[] = $temp[0]; }
}

Så ligger alle online users i $users
Avatar billede jakoba Nybegynder
12. maj 2003 - 11:24 #2
<?php

$stort_array = file( "dinfil.txt" );
    // nu er hver linie i filen eet element i arrayet $stort_array

for ( $i=0; i<count($stort_array); $i++ ) {  // for hver celle
        // lav linien til et array med en celle for hvert ':' tegn
    $stort_array[$i] = explode( trim($stort_array[$i]), ":" );
}

// mu kan du slå op i filen:
echo $stort_array[0][0] ."<br>";  skriv navn fra første linie
echo $stort_array[0][3] ."<br>";  skriv login-status fra første linie

og vi kan så søge efter de, der er logget ind med en løkke:
for ( $i=0; i<count($stort_array); $i++ ) {  // for hver celle
        // udskriv navnet hvis loginstatus == 1
    if ( $stort_array[$i][3] == 1 ) {
        echo $stort_array[$i][0] ." er logget ind.<br>";
    }
}

?>

mvh JakobA
Avatar billede erikjacobsen Ekspert
12. maj 2003 - 11:25 #3
Hvor er I hurtige ...

  $lines = file("xxx.txt");
  foreach ($lines as $line) {
    $a = split(':',$line);
    if (isset($a[3]) && $a[3]=='1') {
      print "$a[0]<br>\n";
    }
  }
Avatar billede jakoba Nybegynder
12. maj 2003 - 11:26 #4
Ups.  andy har ret. parametrene til explode(...) funktionen skives i den rækkefølge han bruger.
Avatar billede dalbjerg Nybegynder
12. maj 2003 - 11:39 #5
hvordan printer man så andys ud ??
Avatar billede andy Nybegynder
12. maj 2003 - 11:47 #6
for ($i=0; $i<sizeof($users); $i++) {
echo "$users[$i]<br>";
}

eller:
$content = file("fil.txt");
for ($i=0; $i<sizeof($content); $i++) {
    $temp = explode(":", $content[$i]);
    if ($temp[3] == 1) { echo "$temp[0]<br>"; }
}
Avatar billede dalbjerg Nybegynder
12. maj 2003 - 11:51 #7
$content = file("log.txt");
for ($i=0; $i<sizeof($content); $i++) {
    $temp = explode(":", $content[$i]);
    if ($temp[3] == 1) { echo "$temp[0]<br>"; }
}
printer ikke noget ud...
Avatar billede jakoba Nybegynder
12. maj 2003 - 11:55 #8
forenden af hver linie er der et linieskift, det skal lige trimmes væk:

$content = file("log.txt");
for ($i=0; $i<sizeof($content); $i++) {
    $temp = explode(":", trim($content[$i]) );
    if ($temp[3] == 1) { echo "$temp[0]<br>"; }
}
Avatar billede andy Nybegynder
12. maj 2003 - 11:57 #9
Virker her uden/med trim...
Avatar billede dalbjerg Nybegynder
12. maj 2003 - 11:57 #10
viser stadig ikke noget...
Avatar billede andy Nybegynder
12. maj 2003 - 11:58 #11
Er der overhovedet nogen logget ind? :)
Avatar billede dalbjerg Nybegynder
12. maj 2003 - 11:58 #12
sådan se filen ud:
Kenneth:9848:9888:0:
Ole:9204:9244:1:
Jens:1234:2222:0:
Ole:2345:1234:0:
Avatar billede dalbjerg Nybegynder
12. maj 2003 - 11:59 #13
hehe, ja... :)
Avatar billede jakoba Nybegynder
12. maj 2003 - 12:00 #14
det burde helt klart virke. der må være noget helt andet galt.
Avatar billede andy Nybegynder
12. maj 2003 - 12:04 #15
Prøv denne:
$content = file("log.txt") or die ("Kunne ikke åbne log.txt");
for ($i=0; $i<sizeof($content); $i++) {
    $temp = explode(":", trim($content[$i]) );
    if ($temp[3] == 1) { echo "$temp[0]<br>"; }
}
Avatar billede dalbjerg Nybegynder
12. maj 2003 - 12:04 #16
<?php
$content = file("log.txt");

for ($i=0; $i<sizeof($content); $i++) {
    $temp = explode(":", $content[$i]);
    if ($temp[3] == 1) { $users[] = $temp[0]; }
}

for ($i=0; $i<sizeof($users); $i++) {
echo "$users[$i]<br>";
}

?>

kan heller ikk for det til at virke...
Avatar billede jakoba Nybegynder
12. maj 2003 - 12:04 #17
prøv at debugge lidt:

if ( !file_exists( "log.txt" ) ) { echo "filen kan ikke findes.<br>"; } // debug linie
$content = file("log.txt");
echo "filen indeholder " .sizeof($content) ." linier.<br>"; // debug linie
for ($i=0; $i<sizeof($content); $i++) {
    echo "linie $i er: " .$content[$i] ."<br>";  // debug linie
    $temp = explode(":", $content[$i]);
    if ($temp[3] == 1) { echo "$temp[0]<br>"; }
}
Avatar billede dalbjerg Nybegynder
12. maj 2003 - 12:05 #18
<? $content = file("log.txt") or die ("Kunne ikke åbne log.txt");
for ($i=0; $i<sizeof($content); $i++) {
    $temp = explode(":", trim($content[$i]) );
    if ($temp[3] == 1) { echo "$temp[0]<br>"; }
}  ?>

det der virker heller ikke skriver ingenting ud..
Avatar billede dalbjerg Nybegynder
12. maj 2003 - 12:06 #19
doh min fejl...
sorry..
Avatar billede dalbjerg Nybegynder
12. maj 2003 - 12:07 #20
dem som følger de skal havde points, svare i ikke lige ??
Avatar billede andy Nybegynder
12. maj 2003 - 12:09 #21
del lortet :D
Avatar billede dalbjerg Nybegynder
12. maj 2003 - 15:41 #22
de andre syntes åbenbart du skulle havde dem, så det for du
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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