Risultato variabile in txt

  • Creatore Discussione Creatore Discussione Monital
  • Data di inizio Data di inizio

Monital

Utente Attivo
15 Apr 2009
778
2
18
Salve a tutti

rieccomi qua con un altro quesito a cui spero possiate darmi risposta, come sempre d'altra parte

allor ala cosa è abbastanza semplice da spiegare ma forse non ho ancora le conoscenze necessarie per applicarla

vediamos e riesco a spiegarmi bene con un esempio

ho un form dove si chiede di isnerire un numero poniamo che sia 5 questo 5 risulta come una variabile diciamo $num che viene inviato a diversi file

tra questi file c'è un file archivio.txt in questo file ci sono divers righe tra cui quella che mi interessa "oggi=0"

in pratica dovrei creare uno script che mi scorre le righe mi trova oggi= ed al posto del numero esistente mi inserisca 5

essendo in txt non posso metterlo come $num qualcuno saprebbe dirmi come si fa?
 
allora la cosa si è complicata un pò

ero quasi riuscito ma ora vedo di riordinare serando che qualcuno possa darmi veramente una mano

il file da modificare si presenta cosi

Room1
A=1
B=1
C1=3
D1=2
etc.

Room2
A=1
B=1
C1=3
D1=2
etc.
Room3
A=1
B=1
C1=3
D1=2
etc.

allora il numero di room la ricavo da una variabile $nr ed anche il numero da sostituire in C1

come potete vedere esiste un c1 per ogni room

il problema è riuscire a far capire allo script ch deve agire sul c1 della room$nr qualcuno può aiutarmi? secondo me la cosa non è difficile ma come al solito ho poca dimestichezza con l'uso dei file di testo

magari mi si spiega con un esempio sia come far riconoscere il c1 da modificare in basse alla room sia come sostiuire il c1 ho provato con strpos() pregmatch() ma non riesco

Help to me
 
Se sai il numero di linee per i dati dopo Room$nr, puoi fare una cosa di questo tipo:
PHP:
<?php
$nr = 2;
$file = 'stanze.txt';

$data = file($file);

foreach($data as $i => $line)
{
	if($line == "Room{$nr}")
	{
		$a = $data[$i + 1];
		$b = $data[$i + 2];
		$c1 = $data[$i + 3];
		$d1 = $data[$i + 4];
	}
}

echo "A: {$a} <br />";
echo "B: {$b} <br />";
echo "C1: {$c1} <br />";
echo "D1: {$d1}";
?>
Per ulteriori informazioni ti rimando al manuale di PHP: http://it.php.net/manual/en/function.file.php
 
ciao ale

come sempre sei la mia luce nel buio almeno in un paio di forum :D

allora il codice l'ho provato e modificato per la mia esigenza però non funziona

cioè non fa stampa $a; $b;$c1 etc.

hof atto delle prove allora fino room tutto ok ed anche con l'array funziona difatti se io stampoa bvideo $data[250] mi stampa la riga 250 quindi probabilmente è il +1 +2 +3 che non va purtroppo sto array non e mai stato il mio forte sopratutto il count etc.

adessov edo un pò cmq

ah ma poi per sovrascrivere il dato mi basta con str replace far sovrascrivere $a con $newa giusto?

vedi un pò se puoi aiutarmi a chiudere ste 4 riga di codice che a livello morale questo passaggio del mio script mi sta molto a cuore

Grazie ancora dell'aiuto e della disponibilità
 
PHP:
$nr = 6;
$file = 'file.txt';
	

$data = file($file);


foreach($data as $i => $line)
{

    if($line == "[Round".$nr."]"){
echo $data[$i +1];
        $d1= $data[$i +1];
        $d2 = $data[$i + 2];
        $ta1 = $data[$i + 3];
        $tb1 = $data[$i + 4];
		 $ga1 = $data[$i + 5];
		  $gb1 = $data[$i + 6];

    }

}


echo "D1=".$d1." <br />";
echo "D2=".$d2." <br />";
echo "TA1=".$ta1." <br />";
echo "TB1=".$tb1."<br />";
echo "GA1=".$ga1."<br />";
echo "GB1=".$gb1."<br />";
?>

ho tolto i vari echo fatti per prova ccosì hai ilcodice pulito

e grazei a ncora ale

ho visto anche il manuale e fatto diverse prove ma non ne esco fuori
 
mi scuso se uppo ma magari sta sfuggendo a qualcuno

ormai son quasi calvo a forza di starpaprmi i capelli mi sono inchiodato qua

un piccolo suggerimento epr riaprtire?

:crying:
 
Io intendevo postare il file di testo, non quello PHP. Ma il file si chiama file.txt?

scusa non avevo capito no cmq il file non si chiama file.txt

tiposto una parte completa della zona dove modificare
[Round1]
D1=
D2=
TA1=3
TB1=1
GA1=-1
GB1=-1

NT1=
BE1=
TI1=
AT1=
TA2=2
TB2=4
GA2=-1
GB2=-1

NT2=
BE2=
TI2=
AT2=

le parti grassettate sono le righe che devo modificare e tieni conto che ci sono altre righe prima del round ma che non hanno importanza e che dopo AT2 rincomincia la serie dei round che può arrivare anche a 40

grazie ale dell'aiuto
 
Allora perché nel tuo file questa riga rimane invariata?
PHP:
$file = 'file.txt';
La devi cambiare!

:dipser:

ale su babbè tutto :D

ho lasciato file.txt per non metter eil nome del mio file logicamente nellos cript l'ho cambiato mettendo il nome del file interessato :jolly:

TI perdono solo eprchè mi stai aiutando :love:

la stringa è così

PHP:
$file ='europa.txt';
 

Discussioni simili