Ciao, a tutti...
Sono un po' parecchio arrugginito...
Devo scrivere una semplice funzione che legga un file di testo in questo formato:
1|6
2|3
3|9
dove il primo numero è la posizione e il secondo è un numero casuale, lo modifichi in questo modo:
1|0
2|0
3|0
La modifica però deve (più o meno..) essere fatta ciclicamente sottraendo ogni volta 1 al secondo campo fino ad ottenere tutti 0. Ho scritto questo codice:
A grandi linee funziona ma quando aggiungo il rename del file impazzisce e crea disastri...codice:$textfile = fopen("ciclo.txt", "r") $textfile2 = fopen("ciclonew.txt","w") while ($rigafile = fgets($textfile,1024)) { $campiriga = explode("|", $rigafile); while ($campiriga[1] <> "0") { if ($campiriga[1] == "0") { echo "E' già zero"; }else{ echo "Sottraggo 1 al $campiriga[0] campo"; $campiriga[1] = ($campiriga[1] - 1); $rigafile2 = $campiriga[0] . "|" . $campiriga[1] . "\n\r"; fwrite($textfile2, $rigafile2) } } fclose($textfile); fclose($textfile2); unlink("ciclo.txt"); rename("ciclonew.txt","ciclo.txt")
Posso modificare in tempo reali direttamente il primo file senza doverne creare una copia? Il codice vi sembra corretto?
Grazie a tutti...

Rispondi quotando