Newsgroup: it.comp.lang.visual-basic
Titolo: Modifica file TXT

Salve,
volevo sapere se c'erano suggerimenti per modificare un File .TXT, 
praticamente devo cercare un Carattere ed eliminarlo... Senza 
necessariamente creare un Altro FIle, sarebbe troppo facile...;o)
Grazie e ciao a tutti... 

 necessariamente creare un Altro FIle
se vuoi proprio eliminare un carattere, non vedo grandi alternative a
crearne uno nuovo, cancellare il vecchio e rinominare il nuovo.
se ti limiti a sostituirlo forse puoi farcela.
-- 
Salutoni
Sergio
Per rispondere... togli il group dall'indirizzo
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 necessariamente creare un Altro FIle, sarebbe troppo facile...;o)
1) leggi file in una variabile a gruppi di qualche KB
per ogni gruppo, inizio ciclo
 2) usi la replace nella variabile
 3) put binario della variabile nel file stesso (nella posizione giusta!)
fine ciclo
4) tronca il file alla lunghezza nuova (di cui devi tenere traccia man
mano che elimini byte) usando SetEndOfFile che non ricrea il file da zero.
termoPilucco
-- 


 ha scritto nel messaggio 
news:cvfcgn$9r9$1...@news.newsland.it...


 Wow, bella soluzione.. ma in pratica, a codice che comandi devo usare?
comandi?


 comandi?
una birra, grazie :P


 ha scritto nel messaggio 
news:cvffs9$rbp$1...@news.newsland.it...



[CUT]
Supponendo che il file non sia cosě ingombrante da doverlo leggere a blocchi
(fino a qualche decina di MB puoi stare tranquillo):
1) Leggi il file tutto in una volta memorizzando il contenuto in un byte array
opportunamente dimensionato. Usi Open <filename> For Binary, LOF per sapere la
dimensione del file, Get per leggere un blocco e Close alla fine per chiudere il
file.
2) Converti il byte array in stringa con StrConv
3) Sostituisci il carattere da eliminare con "" utilizzando Replace
4) Riapri il file con Open For Output (cosě sovrascrive), riscrivi la stringa
usando Print# e richiudi il file.
Oppure usi un RichTextBox come appoggio:
    rtb.LoadFile "c:\temp\prova.txt", rtfText
    rtb.Text = Replace(rtb.Text, "$", "")
    rtb.SaveFile "c:\temp\prova.txt", rtfText
HTH
Raf

Grazie Raf.. Impagabile...
A buon Rendere...
"Rafunk" <rafun...@NOTHANKSlibero.it> ha scritto nel messaggio 
news:cvfknn$pqr$1...@alix.livenet.it...



Per curiosità, quale delle due soluzioni?
Bye
Raf
P.S. Occhio al quoting nelle tue risposte...

Guarda, Secondo Me la prima mi pare la più funzionale (Forse...), il bello 
delle 2 soluzioni è che c'è l'alternativa...Non funge una, fail l'altra...ti 
faccio sapere..
"Rafunk" <rafun...@NOTHANKSlibero.it> ha scritto nel messaggio 
news:cvfl7l$pvo$1...@alix.livenet.it...


E poi il file in questione è da circa 250 Kb prima che arriva ad essere 
qualche mega c'è tempo...
RiGrazie
"Rafunk" <rafun...@NOTHANKSlibero.it> ha scritto nel messaggio 
news:cvfl7l$pvo$1...@alix.livenet.it...


La seconda funge....
La prima mi da degli errori scassa palle...
Quindi, Buona a Seconda!!!
"Rafunk" <rafun...@NOTHANKSlibero.it> ha scritto nel messaggio 
news:cvfl7l$pvo$1...@alix.livenet.it...


 Uffa
gia', hai ragione. scusa se ci siamo permessi di cazzeggiare su una domanda
postata e risposta solo alcuni miliardi di volte, e che evidentemente era
complesso cercare via google, scoprendo magari che uno dei cazzeggianti
aveva gia' risposto (subdolamente, sotto altro nick) un po' di mesi fa
( 
http://tinyurl.com/3lf6m
 (ci sono arrivato da 
http://tinyurl.com/6kuud
 ))
e scusa se rafunk, buona risposta la sua, alla tua richiesta -- " Senza
necessariamente creare un Altro FIle, sarebbe troppo facile...;o)" -- ti ha
detto "chiudi il primo e sovrascrivilo", che e' la *stessa identica* cosa.
ma forse non te ne sei accorto. un freefile devi pur chiederlo al sistema, e
a quel punto che lo chiami a, b, o c non cambia proprio *nulla*. cioe', solo
una cosa: che se come file2 scrivi un file nuovo, file1 ancora ce l'hai. se
con file2 sovrascrivi file1 e fai un errore, file1 poi lo recuperi ?
che poi tu preferisca l'opzione (2) di rafunk, il ruotino di scorta col rtb,
se va a te, va bene a tutti.
scusa ancora e buon lavoro, j.

 scusa ancora e buon lavoro, j.
clap clap clap!
-- 
ciao, hal

 ha scritto nel messaggio 
news:381hudF...@individual.net...


 Il NG dovrebbe aiutare che è in difficoltà,
Mi permetto di dire con franchezza che no, non e' questa la sua finalita'.
Se dal ng e' possibile ricavare degli aiuti su situazioni contingenti
e' tutto grasso che cola, un di piu'.
Il newsgroup *non e' un helpdesk* gratuito.
--
ciao, hal
 
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 ha scritto nel messaggio 
news:83Z103Z67Z126Y...@usenet.libero.it...


 (.. Su google di legge...) ne sanno ben piů di me e di altri messi
insieme,
Perche' no... a parte che le mie richieste di aiuto, quante saranno in
rapporto alle risposte date? Visto che parli di google... bene ti lascio
come esercizio il conteggio ;-)
A proposito, e' netiquette rispondere *sotto* al testo originario e
non sopra. Grazie :-)



Ciao, Max


Ulisse wrote:
[cut]
Nel primo post di Termopilucco, oltre 24 ore fa, c'era già l'elenco dei 
'comandi' da utilizzare.
In queste 24 ore hai guardato nella guida cosa fanno questi comandi?
Esistono solo due risposte:
- SI. Allora evidentemente qualcosa non ti è chiara. Devi dire cosa, e 
qualcuno proseguirà ad aiutarti, altrimenti sembra che tu non abbia voglia 
di imparare ma solo di succhiare dagli altri.
- NO. Allora non hai voglia di imparare ma solo di succhiare dagli altri.
Ciao
Alberto
-- 
E tutto mi sembrava andasse bene... 

 propria esperienza, Saggezza e come dir si voglia. La cosa è diversa,
credo.
Ho visto piu' spesso boria da parte di chi chiede che non di chi
risponde. Se ti si invita a cercare su google, ad esempio, e' perche'
l'argomento e' stato trattato piu' e piu' volte che con relativamente
poco sforzo si puo' evitare di produrre inutile "rumore" sul gruppo
e trovare le risposte gia' date.
La netiquette raccomanda il seguente comportamento prima di
chiedere ai gruppi:
1. RTFM
leggere *bene* la documentazione, spesso la risposta e' gia' li';
2. GOOGLE
cercare prima in rete e sui gruppi attinenti l'argomento se il
proprio problema e' gia' stato trattato e/o risolto;
3. NO HELPDESK
chiedere sul gruppo senza pretendere *nulla*; a volte nascono
battute e cazzeggi, che, pero', possono essere ben piu' istruttivi
di quello che sembra.
In ogni caso i newsroups non sono degli helpdesk.
Detto questo, ti cedo il diritto di replica e non proseguo piu'
nel thread perche' siamo grandemente sfociati in off topic.
--
ciao, hal



Allora,
- SI, IO non voglio succhiare niente da nessuno
- SI. Allora evidentemente qualcosa non ti è chiara
Nel mio primo post c'era una domanda precisa, come fare ad aprire un File 
TXT, cercare ed eliminare un Carattere...
Io conosco REPLACE per fare questo su di una stringa, e fino a quà era 
chiaro... ma quello che mi mancava è utilizzare un comando simile su tutto 
un file TXT.
Oltre ad Aprirlo, leggere la riga, fare il replace e riscriverla...su File.
Termopilucco mi ha si risposto ma con abbraviazioni che possono dire molte 
cose:
1) leggi file in una variabile a gruppi di qualche KB
Comando OPEN, ok, ho cercato su Google e su MSDN l'utilizzo di Open con 
variabile, ma non ho ricavato un ragno dal buco... Solo errori di 
compilazione ecc.ecc.
per ogni gruppo, inizio ciclo
 2) usi la replace nella variabile
e qua ci arrivo pure io, credo, a farlo...
 3) put binario della variabile nel file stesso (nella posizione giusta!)
fine ciclo
4) tronca il file alla lunghezza nuova (di cui devi tenere traccia man
mano che elimini byte) usando SetEndOfFile che non ricrea il file
Quà, mi ha messo in crisi VERA.. e ho chiesto più spiegazioni...
Che cosa volevo chiedere era ben chiaro, infatti, il Buon e bravo Rafunk, 
senza tante polemiche e con pura professionalità, ha capito e mi ha risposto 
in modo garbato e comprensivo...
Quindi, qual'è il problema? Sarò ignorante, ma il quesito era chiaro, non 
per tutti forse, ho sbagliato nella forma io, o qualcun'altro, o nessuno?



Belle parole...
Ecco, la replica... ma non era più semplice scrivere, Non ti rispondo più, 
perchè stiamo perdendo troppo tempo e siamo fuori tema NG?
Va beh, no problem, grazie per l'aiuto e per il tempo perso a rispondere.
Ciao, max
