Последние несколько строк файла CSV обрезаются - PullRequest
1 голос
/ 15 августа 2011

У меня есть следующая программа, которая запускается на указанных CSV-файлах:

using System;
using System.Collections.Generic;

class Program
{
    static void Main(string[] args)
    {
        string path = @"C:/Documents and Settings/expn261/Desktop/SAPHR_Joiners_20110812.csv";
        string strCharater = File.ReadAllText(path,UTF7Encoding.UTF7);

        strCharater = strCharater.ToString();

        strCharater = Regex.Replace(strCharater, "[èéèëêð]", "e");
        strCharater = Regex.Replace(strCharater, "[ÉÈËÊ]", "E");
        strCharater = Regex.Replace(strCharater, "[àâä]", "a");
        strCharater = Regex.Replace(strCharater, "[ÀÁÂÃÄÅ]", "A");
        strCharater = Regex.Replace(strCharater, "[àáâãäå]", "a");
        strCharater = Regex.Replace(strCharater, "[ÙÚÛÜ]", "U");
        strCharater = Regex.Replace(strCharater, "[ùúûüµ]", "u");
        strCharater = Regex.Replace(strCharater, "[òóôõöø]", "o");
        strCharater = Regex.Replace(strCharater, "[ÒÓÔÕÖØ]", "O");
        strCharater = Regex.Replace(strCharater, "[ìíîï]", "i");
        strCharater = Regex.Replace(strCharater, "[ÌÍÎÏ]", "I");
        strCharater = Regex.Replace(strCharater, "[š]", "s");
        strCharater = Regex.Replace(strCharater, "[Š]", "S");
        strCharater = Regex.Replace(strCharater, "[ñ]", "n");
        strCharater = Regex.Replace(strCharater, "[Ñ]", "N");
        strCharater = Regex.Replace(strCharater, "[ç]", "c");
        strCharater = Regex.Replace(strCharater, "[Ç]", "C");
        strCharater = Regex.Replace(strCharater, "[ÿ]", "y");
        strCharater = Regex.Replace(strCharater, "[Ÿ]", "Y");
        strCharater = Regex.Replace(strCharater, "[ž]", "z");
        strCharater = Regex.Replace(strCharater, "[Ž]", "Z");
        strCharater = Regex.Replace(strCharater, "[Ð]", "D");
        strCharater = Regex.Replace(strCharater, "[œ]", "oe");
        strCharater = Regex.Replace(strCharater, "[Œ]", "Oe");
        //strCharater = Regex.Replace(strCharater, "[«»\u201C\u201D\u201E\u201F\u2033\u2036]", "\"");
        //strCharater = Regex.Replace(strCharater, "[\u2026]", "...");

        string path2 = (@"C:/Documents and Settings/expn261/Desktop/file.csv");
        StreamWriter sw = new StreamWriter(path2);
        sw.WriteLine(strCharater,UTF7Encoding.UTF7);
    }
}

Проблема в том, что независимо от того, какой файл я запускаю на последних 3 или 4 строках, не отображаются.

В чем может быть проблема?

1 Ответ

2 голосов
/ 15 августа 2011

Вы должны использовать IDisposables как StreamWriter при использовании () {}, например:

using(StreamWriter sw = new StreamWriter(path2))
{
    sw.WriteLine(strCharater, UTF7Encoding.UTF7);
}

В этом случае чистое удаление вызовет метод Close() для StreamWriter, который заставит его записать свой буфер в файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...