Autore Topic: Gestire file di testo  (Letto 2666 volte)

Offline Mefrio

  • Grande Gambero
  • ***
  • Post: 203
    • Mostra profilo
Gestire file di testo
« il: 11 Luglio 2010, 18:29:17 »
Ragazzi mi sapete dire come sia possibile aprire un file di testo "x" e alla riga "y" cancellare ciò che c'è scritto per sostituirlo con un mio testo?
per quanto io sia messo male, voglio aiutare chi sta peggio di me :D

Offline doublemm

  • Maestro Gambero
  • ****
  • Post: 445
    • Mostra profilo
Re: Gestire file di testo
« Risposta #1 il: 11 Luglio 2010, 18:53:10 »
devi mettere il file in una stringa

Codice: [Seleziona]
DIM nomefile AS string

'inserisco il file nella stringa

nomefile = File.Load("percorso/nomefile")

poi in base al criterio che devi usare per cancellare la riga puoi splittare con la funzione SPLIT il file in un array e poi cancelli la posizione dell'array che contiene la riga da cancellare.
Matteo DoubleMM Mion

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Gestire file di testo
« Risposta #2 il: 11 Luglio 2010, 22:59:23 »
Un file di testo é un file sequenziale e non é modificabile direttamente; occorre caricarlo tutto in memoria e riscriverlo con l'opzione "FOR CREATE". Perciò dopo averlo caricato in memoria con l'istruzione File.Load, occorre individuare il record "y" (quello che tu chiami la riga  "y", se non ho capito male). Ora però bisogna capire quale sia con sicurezza il record che tu cerchi per modificarlo.
Ne conosci con esattezza ed univocamente il contenuto, in modo da non sbagliare record?
Hai un campo di riferimento per la tua ricerca?
Conosci la sua posizione nel file (1°, 2°, ..., n°)?
Considerato tutto ciòi, secondo me, occorrerebbe che tu aggiunga qualche ulteriore dettaglio, per consigliarti in maniera mirata. Infatti non esiste una sola maniera per arrivare alla stessa soluzione.  :)
:ciao:

Offline Mefrio

  • Grande Gambero
  • ***
  • Post: 203
    • Mostra profilo
Re: Gestire file di testo
« Risposta #3 il: 11 Luglio 2010, 23:24:23 »
conosco perfettamente il file che voglio modificare e non mi è chiaro cosa sia la funzione SPLIT! Per maggiori dettagli che intendi? Io non voglio fare altro che modificare una riga di un file testuale
per quanto io sia messo male, voglio aiutare chi sta peggio di me :D

Offline doublemm

  • Maestro Gambero
  • ****
  • Post: 445
    • Mostra profilo
Re: Gestire file di testo
« Risposta #4 il: 11 Luglio 2010, 23:39:57 »
SPLIT è quella funzione che permette di dividere una stringa in "sottostringhe" esempio

file testo.txt:
questa è
una prova

Codice: [Seleziona]
dim stringa as stringa
dim vettore as stringa[]

stringa = File.Load("percorso/testo.txt")

vettore=split(stringa,\n)



vettore[0]="questa è"
vettore[1]="una prova"

\n=lo usi per dire a plit di separare il testo dove c'è un ritorno a capo

per maggiori dettagli guarda qui http://gambasdoc.org/help/lang/split?it
Matteo DoubleMM Mion

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Gestire file di testo
« Risposta #5 il: 11 Luglio 2010, 23:51:30 »
conosco perfettamente il file che voglio modificare e non mi è chiaro cosa sia la funzione SPLIT! Per maggiori dettagli che intendi? Io non voglio fare altro che modificare una riga di un file testuale
Ho capito perfettamente quello che vuoi fare, ma, prima di darti un consiglio vorrei capire qual'é l'elemento del file testuale che ti permette di riconoscere la riga che vuoi modificare. I record del tuo file contengono un solo record per ciascuna riga o no? Se contengono una sola riga, immagino che vuoi rintracciare quella il cui contenuto, parziale o totale corrisponda alla tua stringa di ricerca.
La funzione split non é molto semplice da spiegare in poche righe, ma ti puo aiutare la lettura dell'articolo che ho scritto proprio su detto argomento nel numero 0 de "Il resto del pinguino". Dovendo poi eseguire anche un replace del contenuto dell'array che otterrai con la "Split", ti conviene leggere anche il successivo articolo sulla funzione "Replace", nel n.1 del nostro e-zine.
Aspetto di conoscere i chiarimenti che ti ho chiesto all'inizio del presente post. ;)
Ciao.
:ciao:

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Gestire file di testo
« Risposta #6 il: 11 Luglio 2010, 23:53:53 »
Forse lo ripeterò fino alla mia ultima esalazione di vita ma spero possa entrare in testa che prima di aprire un topic bisogna usare la ricerca

Offline doublemm

  • Maestro Gambero
  • ****
  • Post: 445
    • Mostra profilo
Re: Gestire file di testo
« Risposta #7 il: 11 Luglio 2010, 23:58:03 »
Forse lo ripeterò fino alla mia ultima esalazione di vita ma spero possa entrare in testa che prima di aprire un topic bisogna usare la ricerca

concordo. Se cerchi l'avevano già spiegato a me come fare. Capisco anche che molte volte cercare possa essere anche un po noioso però aiuta. Succede spesso che mi blocco su qualcosa, chiedo aiuto e poi trovola soluzione prima della risposta :nonono:
Matteo DoubleMM Mion

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Gestire file di testo
« Risposta #8 il: 12 Luglio 2010, 10:05:27 »
Quello che dice Ceskho é più che giusto, però può capitare benissimo che, nella ricerca, non sempre si riesca a trovare la parolina magica che permette l'intercettazione dell'argomento appropriato all'aiuto desiderato.
In ogni caso, prima di chiedere aiuto, occorre fare sempre qualche tentativo, magari comunicandolo poi nel post d'apertura di una discussione, facendo così capire di avere impiegato anche un pò di buona volontà. La ricerca di una soluzione può dare anche altri spunti per altre difficoltà ed aiutarci nella crescita. Magari alla fine la discussione bisognerà accenderla comunque, ma possono nel frattempo cambiare le impostazioni per la richiesta d'aiuto e la crescita può diventare comune.
 :)
Però, non t'intimidire, se hai bisogno chiedi pure. Che può succedere ..., al massimo non ti risponde nessuno.  :D
Ciao.
:ciao:

Offline doublemm

  • Maestro Gambero
  • ****
  • Post: 445
    • Mostra profilo
Re: Gestire file di testo
« Risposta #9 il: 12 Luglio 2010, 13:20:20 »
Citazione
Però, non t'intimidire, se hai bisogno chiedi pure. Che può succedere ..., al massimo non ti risponde nessuno.  Felice

Concordo (spero di non averti intimidito con  :nonono: voleva solo essere una cosa giocosa)  se hai bisogno sono anch'io a disposizione per quel poco che so.
Matteo DoubleMM Mion

Offline Mefrio

  • Grande Gambero
  • ***
  • Post: 203
    • Mostra profilo
Re: Gestire file di testo
« Risposta #10 il: 12 Luglio 2010, 16:37:57 »
Citazione
Però, non t'intimidire, se hai bisogno chiedi pure. Che può succedere ..., al massimo non ti risponde nessuno.  Felice

Concordo (spero di non averti intimidito con  :nonono: voleva solo essere una cosa giocosa)  se hai bisogno sono anch'io a disposizione per quel poco che so.
no tranquillo Chesko me lo dice sempre di ricercare, anche se io non trovo mai quello che mi serve :D

@Picavbg
non ho capito cosa intendi per Record
per quanto io sia messo male, voglio aiutare chi sta peggio di me :D

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Gestire file di testo
« Risposta #11 il: 13 Luglio 2010, 22:56:43 »
non ho capito cosa intendi per Record

Il termine "record" non é una mia invenzione. Nel linguaggio tecnico dei programmatori, come in tutti i linguaggi settoriali, professionali e non,  si usa una terminologia identificativa che, una volta imparata, permette di esprimersi in quel settore in maniera rapida e concisa. Come certamente saprai, i programmi leggono e scrivono dati in memorie esterne al programma, dette memorie di massa (http://it.wikipedia.org/wiki/Memoria_di_massa). Esse sono costituite principalmente dal disco fisso del pc, ma anche da dischetti, pendrive, CD, DVD, ecc.
Ciascuno dei suddetti supporti é organizzato in segmenti logici dove risiedono i file-dati trattati dai programmi.
Il file-dati, chiamato semplicemente file, é l'insieme di  record, ciascuno costituito da uno o più componenti, chiamati campi.
Per fare un esempio pratico, possiamo paragonare il file ad un treno, i record costituiscono i vagoni al cui interno sono posizionate le poltroncine, cioé i campi dove fare sedere i passeggeri, cioé i dati. In ciascun vagone le poltroncine sono numerate, per Es. da 1 a 10. In ciascun vagone, alla poltroncina n.1 siede sempre un passseggero con le stesse caratteristiche (peso, altezza, magrezza, cioé numerico o alfabetico o alfanumerico o ...). Lo stesso vale per tutte le altre 9 poltroncine.

Nel caso dei file di testo, quelli con estensione .txt,  sono file, dove i dati possono essere formati da uno o più campi a seconda da come é stato pensato dal programmatore che lo ha generato. Nel caso di una file di testo di tipo documento, ciascun record può coincidere con una sola riga del documento, come può coincidere con un'intera pagina del documento stesso; in quest'ultimo caso un record conterrà tanti campi quante sono le righe che lo costituiscono, oppure può contenere un solo campo, ma la fine di ciascuna riga è contrassegnata da un carattere speciale (ritorno a capo) che permette il riconoscimento univoco dell'interruzione di riga.

Spero di avere risposto in maniera comprensibile alla tua domanda e di avere, allo stesso tempo, illustrato meglio il concetto di dettaglio relativamente ai record che costituiscono il tuo file. Perciò ora potresti confidarmi qual'é il numero di righe che compongono ciascun record del tuo file. Ciò é importante per usare o meno la funzione split.   :)

Ciao.

:ciao:

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: Gestire file di testo
« Risposta #12 il: 13 Luglio 2010, 23:03:29 »
io dopo una risposta del genere avrei preso il primo treno per un luogo di mare e al diavolo la programmazione!  :rotfl: :rotfl: :rotfl:

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Gestire file di testo
« Risposta #13 il: 13 Luglio 2010, 23:26:44 »
Invece ha dato un'ottima spiegazione  ;)
Visita il mio sito personale: http://www.leonardomiliani.com

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Gestire file di testo
« Risposta #14 il: 14 Luglio 2010, 09:15:17 »
@fsurfing :
Grazie per il consiglio, ma il mare ce l'ho sotto casa ed oggi l'ho guardato ed é proprio una favola. Lo andrò a visitare non appena avrò finito questo messaggio. Ecco, così ti faccio venire un pò di acquolina salata in bocca.  ;D ;D

@leo72 :
Grazie Leo, il tuo complimento mi rincuora.  8)

Ciao a tutti.
:ciao: