Salve a tutti.
Vorrei cheidere il vostro aiuto, circa l'uso di un paticolare comando per gestire I/O su files.
Ho cercato se esisteva già un tread sull'argomento ma non l'ho trovato (spero di non aver cercato male).
Si tratta del comando OPEN.
Quel che mi serve fare è poter aprire un file in scrittura in modo casuale (RANDOM e non sequenziale).
Per quel pochissimo che so, in Visual Basic il modello del comando adatto sarebbe il seguente:
Open filename For Random Access Read Write As #filenumber Len = reclength
Leggendo (forse non sufficentemente) la documentazione di Gambas, non ho trovato alcun riferimento all'opzione
"random" del metodo di apertura del file con il comendo Open.
Il mio scopo è quello di poter registrare e manutenere l'inventario di un magazzino, all'interno di un semplice file di testo.
Nel file, per ogni articolo (item), sarà presente una riga (record) che conterrà i dati specifici (campi) di quel particolare
oggetto (es: codice, descrizione, quantità, prezzo, ecc).
Le informazioni lette (o quelle da scrivere) sul file saranno poi elaborate dal programma, salvandole negli elementi di un
costrutto (struttura "Type") appositamente definito (in cui ogni elemento è stato dichiarato in modo tale da poter contenere
il tipo di dato di ciascun singolo campo del file di testo).
Dunque:
1) individuare una specifica riga di un file di testo (opportunamente formattato) (OPEN-READ-RANDOM)
2) caricare tale riga nel costrutto appositamente dichiarato
3) modificare uno o più dei valori delle variabili costutuenti il suddetto TYPE
4) ri-salvare nel file la stessa riga, con i nuovi dati (nella stessa identica posizione, senza generare un duplicato (OPEN-WRITE-RANDOM)
Il mio problema è che in Gambas non riesco a trovare il comando corrispondente a quello che ho scritto sopra e cioè quello
che consente di aprire un file e di poter accedere a qualsiasi sua riga in modo non sequenziale ma CASUALE (e che dunque mi
permetterebbe di ri-salvare facilmente un singolo record dinuovo dentro al file nella stessa posizione, individuandolo in
maniera univoca).
P.S.
come avrete capito non sono un esperto di programmazione ed al contempo desidererei non dover stravolgere il metodo
descritto sopra.
Dunque ovviamente sarò grato a chiunque mi dedicherà un pò del proprio tempo e mi potrà dare un aiuto, ma sarò grato in
maniera maggiore a coloro che non rispondranno a questo tread con informazioni che nulla hanno a che fare con la mia domanda
specifica (es. "... perchè non abbandoni il file di testo e usi un DB", oppure: "... scrivendo tutto ciò in Cobol si potrebbe fare
così ...", oppure "che tipo di processore usi...", ecc).
Questo mi confonderebbe solamente e non risponderebbe al mio quesito.
Spero che qualcuno più competente di me mi sappia aiutare.
Grazie a tutti.