Salut !
Je dois faire une fonction qui lit un fichier CSV et en supprime une ligne données.
Je lis le fichier ligne par ligne et je le recopie (sauf la ligne en question).
Problème: mes caractères accentués disparaissent !
Pourtant j'ai bien spécifié l'encodage (apparemment du
Windows-1252, puisque les "é" sont codés en 0xE9) à la fois dans le streamReader et dans le streamWriter !
Je comprends pas ! Voici le code.
public static bool DeleteLineFromCSV(string file,int iLine)
{
string TEMP_FILE=Environment.CurrentDirectory+"\\csv.tmp";
FileStream fileStream = new FileStream(TEMP_FILE, FileMode.Append);
StreamWriter streamWriter = new StreamWriter(fileStream,System.Text.Encoding.GetEncoding(1252));
int cntLines=0;
StreamReader streamReader = null;
try
{
StreamReader = new StreamReader(file,System.Text.Encoding.GetEncoding(1252));
string stLine;
while ((stLine=streamReader.ReadLine())!= null)
{
cntLines++;
if (cntLines!=iLine)
{
streamWriter.WriteLine(stLine);
}
}
finally
{
streamWriter.Close( );
fileStream.Close();
if(streamReader != null)
streamReader.Close( );
}
return true;
}Vincent