Avatar billede foged3 Nybegynder
03. juli 2007 - 11:01 Der er 7 kommentarer og
1 løsning

Skrive tal værdier til en fil

Hej, Eksperter..

Har en kæmpe txt fil som jeg henter nogle tal værdier fra. Hver time (startende fra 00 til nuværende time) har følgende værdier:

Time:værdiA:værdiB

f.eks, hvis klokken er 02, så haves følgende:
00:873:64
01:86:974
02:873:31

...når klokken bliver 03, så haves følgende:
00:873:64
01:86:974
02:873:31
03:173:357


Kun den sidste time's værdi har ændret sig.
Så istedet for at gemmenløbe filen hver gang, så tænker jeg at lave noget smart caching, der (når klokken er X) henter værdier fra 00 til X-1 fra en txt-fil.. lægge den nye værdi ind, og gemme igen..

Har I nogen gode forlag..?
Takker
Avatar billede jakobdo Ekspert
03. juli 2007 - 12:39 #1
Problemet med filer er hele filen skal læses ind.
Hvorfor ikke bruge en mysql og hvis selve filen skal bruges, så lav en funktion der trækker data ud og gemmer som en flad fil?
Avatar billede killercop Nybegynder
03. juli 2007 - 14:35 #2
Jeg synes det er rigtig rigtig irriterrende når folk de bare skriver et modsigende spørgsmål som, hvorfor bruger du bare ikke MYSQL? Det er jo ikke det manden spørger om!

Jeg kunne forestille mig du skal bruge nogle if kommandoer, som kontrollerer hvis tiden er det og det, så input det her.. Og så skal du hente den med en GET kommando, måske en get_resource_type() eller en include() kommando, som jeg tror er bedst, kig her en gang:

http://dk.php.net/manual/da/function.include.php

Håber jeg kunne hjælpe lidt..:)
Avatar billede jakobdo Ekspert
03. juli 2007 - 15:04 #3
killercop: Dit svar var sgu da helt hen i skoven, prøve lige at undersøg funktionerne: get_resource_type() og include(), de kan da slet ikke bruges. Hvordan er det nu med at kaste med sten og bo i glashus?

foged3: Mit svar er ment som en måde du nemmere kunne løse dit problem på, så hvis killercop har ret i at mit svar er helt hen i skoven, så sig venligst til. :o)
Avatar billede killercop Nybegynder
03. juli 2007 - 15:18 #4
For det første skrev jeg "Jeg kunne FORESTILLE mig..." og "som jeg TROR er bedst...".

Og der er jo nok en grund til at han ikke har skrevet det i MYSQL, enten fordi han ikke kan MYSQL, eller ikke vil bruge MYSQL. Og desuden kan jeg slet ikke forstå hvorfor du følger op på mit svar, det er heller ikke det indlæg'et handle om. Diskussion slut (fra min side i hvert fald).
Avatar billede jakobdo Ekspert
03. juli 2007 - 15:33 #5
Killercop: Jeg bliver da nød til at rette dit fejl indlæg, så brugeren ikke straks kaster sig over at kode php og henter filer med funktionen: get_resource_type() eller include().
For så tror jeg vi får mere end almindelig travlt her på eksperten.dk hvis alle følger det råd! :o)
Avatar billede foged3 Nybegynder
04. juli 2007 - 07:00 #6
Hivs jeg ikke bruger en database, så er det fordi jeg ikke har adgang til en db..

Jacob: Har nok ikke udtrykt det klart, men tanken er også at linjerne skal skrives til en flad fil, men hvordan holder man styr på opdateringerne?..


enten skal jeg læse filen (max 24 linjer) eller så skal jeg igennem det store dyr hvergang..


nogen forslag?
Avatar billede jakobdo Ekspert
04. juli 2007 - 07:26 #7
Du kunne indlæse hele filen med: file()
Så får du hver linie i et array.
Så kan du nemt arbejde med de sidste 24 linier.

$myFile = file('din_txt_fil.txt');
if(count($myFile)>24)
{
for($i = count($myFile)-24)
{
echo $myFile[$i] . '<br >';
}
}
else
{
for($i = 0; $i < count($myFile); $i++)
{
echo $myFile[$i] . '<br >';
}
}

Og istedet for at printe dem ud, så skal du selvfølgelig lave din behandlinger. :o)
Avatar billede foged3 Nybegynder
24. juli 2007 - 10:42 #8
endte med at skrive en hel klasse til at håndtere caching.. ouch..
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