Autor | Zpráva | ||
---|---|---|---|
oogi Profil * |
#1 · Zasláno: 28. 3. 2006, 15:06:15
Na stránkách mam neco jako statistiky, které se mi ukladaji do TXT souborů.
U rozsáhlejších statistik se mi čas od času TXT soubor "vynuluje", tedy zmizí všechny dříve uložený hodnoty - myslim že se to vždy stane po dosažení nějaké velikosti. Je tedy TXT soubor nějak omezen? Nebo za to může funkce File_Size? |
||
souki Profil |
#2 · Zasláno: 28. 3. 2006, 16:44:30
Nikdy jsem se s tím nesetkal... tam bude asi problém v nějakém mezokroku... kdyžtak napiš jak to ukládáš....
Když použiješ binární soubory místo textových tak se jeho velikost určitě zmenší.... Ale pokud je těch záznamů hodně a chceš s nimi dále pracovat, tak bych doporučil spíše ukládání do nějaké databáze. |
||
hugo_jinde Profil * |
#3 · Zasláno: 28. 3. 2006, 17:14:03
Toto je pravdepodobne zpusobeno pristupem vice uzivatelu k jednomu souboru. Pouzij radsi databaze.
|
||
souki Profil |
#4 · Zasláno: 28. 3. 2006, 17:15:42
Toto je pravdepodobne zpusobeno pristupem vice uzivatelu k jednomu souboru. Pouzij radsi databaze.
dobrý nápad... ale i tak by se mělo jen přijít o zápis jednoho uživatele a ne o celý soubor. Nebo ne? |
||
oogi Profil * |
#5 · Zasláno: 29. 3. 2006, 10:10:49
Je pravda že do souboru může přijít až několik desítek uživatelů naednou, ale takových souborů mam na webu přes deset, ale ty méně rozsáhlejší fungují, takže v ukládání problém nebude....
Databaze zatim neumim, nasel jsem si nejake clanky, ale zdalo se mi to moc slozity... |
||
juneau Profil |
#6 · Zasláno: 29. 3. 2006, 10:58:41
Je to problem v ukladani, alespon podle mych zkusenosti. Priklad (mozna zcestny)
A otevre soubor a cte z nej. (data $a) B otevre jiz jednou otevreny soubor a cte z nej: protoze je otevreny, tak je take zdanlive prazdny. (data $b) A ulozi $a do souboru a zavre jej. B ulozi $b do souboru a zavre jej. Jenze $b je prazdna hodnota. V souboru nic neni. Tak to myslim funguje. A pokud ne, je to jedno, mel by to byt hlavni duvod zacit se ucit pracovat s databazi. Nikdy to pak nedocenis. |
||
oogi Profil * |
#7 · Zasláno: 30. 3. 2006, 16:10:46
A když to udělám v databázi tak tohle nehrozí?
|
||
jozob Profil |
#8 · Zasláno: 30. 3. 2006, 17:05:16
oogi
"A když to udělám v databázi tak tohle nehrozí?" Prečo by sme Ti inak doporučovali databázu? :-)... Databázový server je navrhnutý tak, aby sa podobné veci nestávali. |
||
nethor Profil * |
#9 · Zasláno: 30. 3. 2006, 17:05:48
Tenhle problem jsem resil taky.
Nakonec jsem to osetril tak, ze po zapisu do souboru testuju velikost souboru a kdyz je nulova zapis opakuju. ( cyklus do {'zapis'} while (velikost==0) <= samoz. zjednodusene) Pomohlo to. |
||
Hugo Profil |
#10 · Zasláno: 30. 3. 2006, 17:08:16
nethor
Ale stejně je lepší použít tu db. Jinak ten zápis dost zavání nekonečnou smyčkou. |
||
jozob Profil |
#11 · Zasláno: 30. 3. 2006, 17:08:44
oogi
Nebo za to může funkce File_Size? Ani náhodou :-)... Funkcia file_size() zistí a vráti počet bajtov obsadených súborom na disku, zo súborom nič nerobí, môj predpoklad je taký, že pri zisťovani veľkosti súboru sa pracuje len s tabuľkou súborového systému. |
||
oogi Profil * |
#12 · Zasláno: 30. 3. 2006, 17:15:35
( cyklus do {'zapis'} while (velikost==0) <= samoz. zjednodusene)
To vypadá slibně. Zkusim to použit. |
||
oogi Profil * |
#13 · Zasláno: 30. 3. 2006, 17:18:42
A ta velikost je testována příkazem File_Size ???
|
||
jozob Profil |
#14 · Zasláno: 30. 3. 2006, 17:21:18 · Upravil/a: jozob
oogi
Áno. http://php.net/filesize |
||
jozob Profil |
#15 · Zasláno: 30. 3. 2006, 17:22:30
Ešte poznámka: Nie file_size, ale filesize.
|
||
nethor Profil * |
#16 · Zasláno: 30. 3. 2006, 17:33:31
FileSize(); ( file_size(); je chyba )
Nekonecna smycka se sz. musi osetrit.
|
||
oogi Profil * |
#17 · Zasláno: 30. 3. 2006, 17:37:36
A nestačilo by pouze ověřit velikost při otevírání?
$i=0; do { otevření souboru $i++; } while (FileSize($soubor) == 0 && $i < 100) další operace se souborem |
||
jozob Profil |
#18 · Zasláno: 30. 3. 2006, 17:39:03
To už je krajší for cyklus, nie? :-)
|
||
nethor Profil * |
#19 · Zasláno: 30. 3. 2006, 18:00:52
A nestačilo by pouze ověřit velikost při otevírání?
To ho chceš otvírat tak douho, dokud se nezvětší? ;-) To už je krajší for cyklus, nie? :-) myslym , že do while je na místě, protože , když jde vše správně proběhne jen jednou. |
||
jozob Profil |
#20 · Zasláno: 30. 3. 2006, 18:06:11
nethor
Máš pravdu, to som si neuvedomil. |
||
oogi Profil * |
#21 · Zasláno: 30. 3. 2006, 20:47:18
A nestačilo by pouze ověřit velikost při otevírání?
To ho chceš otvírat tak douho, dokud se nezvětší? ;-) Ale já ten soubor nemam prázdnej, takže by to mělo jít... Protože aby mi vždy proběhly všechny ty operace co tam mam je fakt zdržovačka.... |
||
oogi Profil * |
#22 · Zasláno: 30. 3. 2006, 21:00:27
Tak sem udělal kontrolu jen pro otevírání a funguje to:)
|
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0