Ciao a tutti ragazzi, avrei un problema da risolve e, nonostante le mie ricerche su itnernet, non ho trovato niente di utile.
La parte del programma che richiede il vostro aiuto è quella che memorizzare i log di una partita di un gioco simile alla dama, in un file di testo. Il formato che avrà il file è il seguente:
start = 1 //giocatore che parte
[1:1] -> xx //disposizione dei pezzi
[2:2] -> yy
.............
1) [1:1] --> [2:2] //mossa eseguita
2) [2:2] --> [3:3]
............
Vincitore = 2 //giocatore che vince
FINE //indica la fine della partita
Su questo file, devo memorizzare tutte le partite che farò... e fin qui nessun problema ( usando FileOutputStream(nome_file, true) ed aggiungendo man mano tutti i valori), ma il problema sorge dal fatto che all'inizio del file, dovrei scrivere il numero di partite memorizzate nel log, quindi dovrei poter modificare la parte iniziale del documento senza alterare tutto il resto.
Magari, se fosse possibile, mi piacerebbe anche scrivere (sempre all'inizio del file) a che rigo del file "inizia" il log della nuova partita, cosicchè se volessi rigiocare la decima partita, saprei quante volte dovrei fare " testo.readLine() " per arrivare alla linea da me desiderata.
giusto per rendere più chiaro quello che dico, vorrei avere una cosa del genere:
Un'ultima domanda: ma per andare alla linea i-esima di un file, l'unico modo è fare un ciclo for per scorrere tutte le linee fino alla linea che mi serve? possibile che non c'è un metodo del tipo "string getLineaX(int numero_linea)" ? ovviamente tale metodo potrei crearmelo io, ma se il file avesse 100000000000 linee e mi servisse la 999999999, dovrei fare un immenso ciclo for per scorrere tutte le linee...totale partite: 10
partita 1 = 2 //numero di riga
partita 2 = 30
partita 3 = 70
.......
PARTITA 1
start = 1 //giocatore che parte
[1:1] -> xx //disposizione dei pezzi
[2:2] -> yy
.............
1) [1:1] --> [2:2] //mossa eseguita
2) [2:2] --> [3:3]
............
Vincitore = 2 //giocatore che vince
FINE //indica la fine della partita
PARTITA 2
start = 1 //giocatore che parte
[1:1] -> xx //disposizione dei pezzi
[2:2] -> yy
.............
1) [1:1] --> [2:2] //mossa eseguita
2) [2:2] --> [3:3]
............
Vincitore = 2 //giocatore che vince
FINE //indica la fine della partita
.........
..........
Vi ringrazio anticipatamente per la risposta.
P.S. ho visto che esistono delle clasi per memorizzare delle chiavi - valori (come hashtable e Properties) ma secondo me sono troppo "limitative" per il tipo di informazioni che contengono... voi che dite? farei meglio ad usare una di quelle classi come metodo di memorizzazione?

Rispondi quotando