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:
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")
A grandi linee funziona ma quando aggiungo il rename del file impazzisce e crea disastri...
Posso modificare in tempo reali direttamente il primo file senza doverne creare una copia? Il codice vi sembra corretto?
Grazie a tutti...