25. september 2001 - 16:07Der er
8 kommentarer og 2 løsninger
Tæller ved brug af .txt fil
Hello Jeg skal lave en tællefunktion, hvor brugeren i et formfelt kan indtaste et tal. Dette tal skal lægges til et eksisterende tal, som findes i en .txt-fil (donations.txt), og som bagefter overskriver dette. Dvs. tallet i txt-filen vokser, som denne handling begås flere gange af flere brugere.
Jeg har dog det problem med den nedenstående funktion, at $fp blot returnerer 1 (for true). Dermed får jeg altid $money + 1. Problemet består altså i, at jeg ikke får programmet til at læse indholdet af txt-filen, som er et tal. Hvordan går jeg det?
$fp er en resource-id. Den har så lige nummer 1 fordi det er scriptets første resource. $int = fread($fp, 100); Denne linje henter de først 100 bytes fra filen. Jeg vil tro, at det tal du leder efter, står i $int, og ikke i $fp.
I øvrigt: Et meget bedre emne til dit spørgmål ville være: \"Læsning af fil\". Det er jo det, der er problemet. Hvad du skal bruge det til, er ret ligegyldigt, ligesom det er ligegyldigt at du vælger at kalde din fil for noget med \".txt\" til sidst. :)
Ok, jeg har kvajet mig lidt. Linien: $total = $fp + $money; er selvfølgelig $total = $int + $money; Og det havde jeg også prøvet, men uden held! Det returnerer nemlig ingen værdi fra donations.txt overhovedet!!
coderdk, hvad angår dit forsøg, så fungerer det heller ikke. Det giver parsefejl på linien: $total = join(\"\",file(\"donations.txt\"));
Niels Andersen, Hvad angår din kommentar om emneoverskriftet, så overvej engang hvor bred formuleringen \"Læsning af fil\" er. Den kunne dække over flere tusinder forskellige problemer, og gør derfor ikke søgningsmuligheden særlig god. Derimod giver ordet \"tæller\" et prej om, hvilken funktionalitet jeg efterlyser, og \".txt-fil\" uddyber yderligere, hvordan denne funktionalitet skal implementeres. also spracht zarathustra
Jeg kan godt se at du skal bruge det til en tæller, men det er da ligegyldigt. Men det var nu også bare en kommentar. Det er åbenbart noget der kan diskuteres.
Kiggede lige ordentligt efter, og opdage umiddelbart to ting:
return $total; fclose($fp);
fclose bliver aldrig udført. Byt om på de to.
fopen(\"donations.txt\", \"w+\"); Prøv lige at se hvad der står i manualen om w+: \"Open for reading and writing; place the file pointer at the beginning of the file and truncate the file to zero length. If the file does not exist, attempt to create it.\"
Dvs. du sletter indholdet før du læser filen.
Prøv at kigge på coderdk\'s kode igen. Det er linjen med \"$total + = $money;\" den melder fejl på, ik\'? Det gjorde den hos mig, og den fejl forsvandt da jeg rettede \"+ =\" til \"+=\", altså fjernede mellemrummet.
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.