Modificare file di testo costituito da record delimitati da virgola

di il
2 risposte

Modificare file di testo costituito da record delimitati da virgola

Avrei necessità di modificare un file di testo costituito da un serie di record delimitati da virgola. In particolare vorrei modificare solo alcuni record. Il file è stato creato con il seguente codice:

Using file As StreamWriter = My.Computer.FileSystem.OpenTextFileWriter(Path & "\Prova.txt", False)
            file.WriteLine(String.Join(",", {CF, CodiceRTextBox.Text, NumS, NomeApp, IndMailTextBox.Text, hashedPw, nominativo, versione, durata, TxBDataD.Text, TxBDataAtt.Text}))
            file.Close()
        End Using

E' possibile  modificare un solo record, lasciando invariati tutti gli altri? se è possibile potete suggerirmi  o indirizzarmi  su un possibile codice?

Grazie

2 Risposte

  • Re: Modificare file di testo costituito da record delimitati da virgola

    Non puoi modificare direttamente il contenuto del file. Occorre leggerlo per intero, modificare le righe “in memoria” e riscriverlo per intero.

  • Re: Modificare file di testo costituito da record delimitati da virgola

    Ricorda che in un file di testo i caratteri sono memorizzati uno di seguito all'altro. 

    In TEORIA potresti farlo MA SOLO SE sostituisci il testo  che vuoi sostituire con uno avente ESATTAMENTE la stessa lunghezza, NON UN CARATTERE DI PIU, NON UN CARATTERE DI MENO.

    Ma NON BASTA che tu sia convinto che il numero di caratteri sia lo stesso, perche' per motivi di ‘encoding’ (se non sai cosa è, meglio ;-)) quello che per te e' un carattere, per il sistema potrebbe essere 2 o piu' caratteri. 

    Se ci sono PIU, O MENO caratteri, TUTTI i caratteri che seguono VANNO SPOSTATI. 

    Tu penserai: ma e' una cosa cosi' banale che non ha senso che non ci sia un modo per farlo gia' disponibile. 

    Il problema e' che e' un'operazione che, ‘professionalmente parlando’, nessun professionista farebbe ;-) 

    Per TUTTI QUESTI Motivi, ed un milione di altri, vale quanto detto precedentemente: fondamentalmente, NON SI PUO' FARE

Devi accedere o registrarti per scrivere nel forum
2 risposte