Would you like to update a specific line of the CSV file? I have the information of which line I want to add information, I currently have the code that runs through the file and when it arrives on the line I want it updates the line and continues writing the rest of the lines, but this is causing me a loss of performance, because my file is too large, if someone knows how to edit using some parameter to go straight in the line like an array?
public string EscreveCSV(string caminho, int linha, string mensagem)
{
//Só continua se o arquivo informado existir
if (File.Exists(caminho))
{
//lista que irá armazenar cada linha do arquivo
List<string> linhas = new List<string>();
using (TextReader tr = new StreamReader(caminho, Encoding.Default))
{
string sLinha = null;
while ((sLinha = tr.ReadLine()) != null)
{
linhas.Add(sLinha); //adiciona cada linha do arquivo à lista
}
tr.Close();
tr.Dispose();
}
//Só continua se o arquivo ter um número maior de linhas informadas
if (linhas.Count > linha)
{
linhas[linha] += ";" + mensagem; //adiciona a mensagem informada ao final da linha
using (TextWriter tw = new StreamWriter(caminho, false, Encoding.Default))
{
foreach (string l in linhas)
{
tw.WriteLine(l); //escreve no arquivo novamente
}
tw.Close();
}
return "Arquivo Escrito com sucesso"; //mensagem de retorno
}
else
{
return "Arquivo Não possui a linha informada";
}
}
else
{
return "Arquivo não existe";
}
}