souborový script

Dobrý večer, snažím se udělal takovej script, který zapisuje do souboru, pokud soubor přesáhne velikost 10kb tak se vytvoří další a to se opakuje stále dokolečka, název souboru je dnešní datum + číslou souboru tedy: 20112007-1.txt mohl by mi s tím někdo pomoct? Nějak mě postrčit případně část/celý napsat? Předem děkuji
hm...

nemuzu si vzpomenout na zadnou funkci,ktera by rekla jak je velka promenna :/ (urcite by to slo obejit 2 zpusoby:

bud v textu spocitat znaky, vynasobit velikosti za znak (1B) a pak rozdelit text podle poctu znaku.....

nebo postupne ukladat do souboru (treba vzdycky 2000 znaků a pak kontrolovat velikost souboru - filesize() - jenom bys nesmel zapomenout na nasledne pouziti funkce clearstatcache() - at se filesize necachuje ... xD )

) .. mozna nekoho napada efektivnejsi reseni :)
Z toho, co je známo bych to udělal tak, že před zápisem nových dat bych zkontroloval, jak velký je stávající soubor. Pokud je menší než 10 kB, tak bych zapsal do něj, pokud větší, založil bych nový soubor a zapsal tam. Po každém zápisu bych soubor uzavřel (vím, chvíli to trvá), abych mohl příště zjistit jeho velikost.
Freeze


clearstatcache() jsem neslyšel, ale použiju.
na znaky bych to nedělal:-)


zbi


tak nějak jsem si to představoval i já, ale horší je už realizace.

napadlo mě něco takovýho (zatím to neřeší, pokud soubor neexistuje, prostě očekává, že tam je) :


http://www.renet.borec.cz/soubory.jpg

bohužel vloží sice do souboru "text", ale pokaždý vytváří další
No je to ponekud nestastne reseni.

V prvnim kroku je potreba najit ten nejaktualnejsi. Coz je vlastne ta prvni cast kodu. (treba 20112007-1.txt)

V druhem kroku se provede kontrola prekroceni kapacity (filesize(20112007-1.txt)). Pokud je pod 10kB, tak pouzijeme aktualni nazev souboru ($soubor = "20112007-1.txt" ). Pokud je nad 10kB, tak se vytvori novy nazev souboru ($soubor = "20112007-2.txt").
V tvem pripade druha cast kodu, ale bez zapisu do souboru. Jen musis najit takovy soubor, ktery je pod limitem a priradit mu nazev souboru.

V poslednim proku provedes zapis dat do souboru (s nazvem podle podminky - $soubor).


Ale jelikoz system predpoklada, ze predchozi indexy jsou jiz zaplnene, pak staci jen skontrolovat soubor s nejvetsim indexem a na nej provest kontrolu velikosti.

$number = count($day_file) - 1;
if ( filesize($directory.$day_file[$number]) > 10000 )
$soubor = $file_name."-".($number+1).$suffix;
else
$soubor = $day_file[$number];

$file_open($soubor,"a+");
. . .

Proste tak nejak. Neni to skontrolovany.
Tomík

vůbec mi nedošlo, že nemusím kontrolovat každý, že stačí poslední. V příkladu bylo pár chybyček, ale teď už to funguje jak má, děkuju moc