I/O File testo C#

venerdì 16 marzo 2007 - 18.51

camposeo79 Profilo | Junior Member

Salve a tutti.
Forse è una banalità.
Come faccio a cancellare una linea da un file di testo con C#?

Christian Profilo | Newbie

puoi usare la classe file di system.io e quindi leggere il contenuto del file, metterlo in memoria, cancellare la riga desiderata e quindi salvare il file

http://msdn2.microsoft.com/en-us/library/system.io.file.aspx
--
Christian Paparelli

camposeo79 Profilo | Junior Member

Effettivamente avevo usato quelle librerie. Il mio problema è questo per essere più chiari.
Ho un file testo lungo n linee. Lego questo file linea per linea e le scrivo in ul altro file tramite il seguente codice:
StreamReader sr = new StreamReader(Filename);
using (StreamWriter sw = File.CreateText(FILE_NAME))
{
while ((line = sr.ReadLine()) != null)
{
sw.WriteLine(line);
}
sw.Close();
sr.Close();

}
Come mai l'EOF che nel file che leggo si trova nella linea n, mentre nel file che scrivo me lo ritrovo nella linea vuota n+1?
Cancellare una linea mi serviva apposta per cancellare l'ultima linea del file che scrivo.
Grazie....

Giuseppe.

Christian Profilo | Newbie

non è che il tuo file finisce realmente con una riga vuota ovvero con CRLF??
--
Christian Paparelli

camposeo79 Profilo | Junior Member

No, il file "originale" non finisce con la line vuota. Ho controllato pure mediate un editor testo. Il File finisce con l'ennesima linea.

Christian Profilo | Newbie

scusa ma perchè non usi il metodo system.io.file.copy per copiare un file invece di leggere riga per riga??

http://msdn2.microsoft.com/en-us/library/system.io.file.copy.aspx
--
Christian Paparelli

camposeo79 Profilo | Junior Member

purtroppo non posso usare il metodo file.copy, perchè praticamente quel frammento che ho postato fà parte di un programmino che copia n righe da un testo, e non tutto il file. Facendo la prova con un testo lungo solo n righe ho scoperto questo problema.

camposeo79 Profilo | Junior Member

Problema risolto. Praticamente la writeLine() scrive una linea e va a capo. Ecco perchè mi ritrovavo la linea vuota in più. Ho usato il metodo Write() è ha funzionato tutto.
Grazie a tutti....
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 !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5