Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Cancellare singola stringa da file di testo
venerdì 02 luglio 2004 - 13.13
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
hipernik
Profilo
| Newbie
1
messaggi | Data Invio:
ven 2 lug 2004 - 13:13
Buongiorno, ho un file di testo con n stringhe, carico questo file di testo in una Listbox, fin qui tutto bene. L'utente modifica la Listbox togliendo elementi (l'utente puo' solo togliere elementi dalla Listbox e puo' togliere solo quello piu' in alto), a questo punto l'utente decide di salvare il contenuto della Listbox nel file, quindi devo, semplicemente togliere dal file gli elementi che non sono più presenti nella Listbox.
Non riesco a capire come togliere stringhe da un file di testo!
Ho aggirato l'ostacolo in questo modo: Cancello completamente il file di testo, creo un nuovo file di testo con il nome di quello vecchio e carico tutto il contenuto della Listbox nel file appena creato. E' una soluzione poco elegante perchè se ho 1000 stringhe e ne cancello una il mio programma le cancella tutte e 1000 e ne riscrive 999
ecco alcuni pezzi di codice che ho scritto:
System.IO.File.Delete("Lista_prodotti.txt") 'cancello tutto
Dim Lista_prodotti As FileStream = System.IO.File.Create("Lista_prodotti.txt", 1024) ' ricreo
Lista_prodotti.Close()
Dim Lista_password As TextWriter = System.IO.File.AppendText("Lista_prodotti.txt")
Do
Lista_prodotti.WriteLine(List2.GetItemText(0)) 'prendo gli elementi della lista e li metto nel file
List2.Items.RemoveAt(0)
Loop While (VB6.GetItemString(List2, 0) <> Nothing)
Lista_prodotti.Close()
Grazie ancora dell'aiuto
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
dom 4 lug 2004 - 19:17
Avevo appena letto metà del tuo post quando già mi stavo accingendo a risponderti che forse era meglio sovrascrivere il file vecchio.
Il file .txt ha una struttura sequenziale quindi comunque se vuoi arrivare a una certa linea, non puoi dire vai alla linea 540 cancellala e riampiazzala con questa. Devi chiamare n volte il metodo ReadLine() oppure una volta il metodo ReadToEnd() e comunque devi leggerti tutto il file un'altra volta. Poi dovresti comunque operare rimpiazzando o eliminando caratteri o intere righe e a livello di performance non è una scelta molto valida.
Questa è la natura del file .txt che non è un Database dove puoi cancellare record più semplicemente.
Se il numero di righe è 1000 o giù di lì ti consiglio di procedere ricostruendo il file da zero.
ciao
david
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !