C # Text Reader и Writer - PullRequest
       15

C # Text Reader и Writer

1 голос
/ 22 февраля 2011

У меня есть текстовый файл, текст упорядочен по столбцам.Что мне нужно сделать, это прочитать текстовый файл, отформатируйте его так, чтобы каждый столбец начинался с новой строки.После того, как файл был прочитан и отформатирован, его нужно записать в новый файл .... Как бы я поступил так:

Файл, который нужно вставить, выглядит следующим образом:

Идентификатор оператора = BTA020

Имя = АЗИЯ ЧАМБЕГА
Активный профиль = User_Disabled
Статус включения = Отключено
Дата повторного включения = 31/12/36 00: 00: 00
Статус одобрения = Утверждено
Последнее изменение = 21/07/10 07: 34: 30
Последний вход = 13/06/08 14: 09: 37
Расчетный вес = BD
Одинвременный пароль = Нет
Назначенное устройство = Нет

Идентификатор оператора = BTAC002

Имя = A KALATA (NBC)
Активный профиль = User_Disabled
Активировать статус = отключен
Дата повторного включения = 31/12/36 00: 00: 00
Статус одобрения = Утверждено
Последнее изменение = 31/05/10 14: 04: 41
Последний вход = n /a Расчетный pwd = B9
Одноразовый пароль = Нет
Назначенное устройство = Нет

Выходной файл должен выглядеть следующим образом:

Идентификатор оператора BTA020, Имя ASIA CHAMBEGA, Активный профиль User_Disabled, Активировать статус отключен, Дата повторного включения 31/12 / Идентификатор оператора BTAC002, Имя A Kalata (NBC), Активный профиль User_Disabled, Активировать статус отключен

// и т. Д. Для 149 записей

Как бы получить вывод, чтобы это выглядело так?

Спасибо, Трен

Ответы [ 4 ]

1 голос
/ 22 февраля 2011

Вам нужен простой конвертер.Просто прочитайте файл целиком (в вашем случае он не большой, поэтому его можно прочитать в память).И когда заменить '=' на '' и '\ n' на ','.Трансформация завершена!После этого полученный текст должен быть записан в новый файл.вот и все!

код должен быть таким:

        string t = File.ReadAllText(path);

        t = t.Replace('=', ' ');
        t = t.Replace("\r\n\r\n", ",");
        t = t.Replace("\r\n", ",");
        t = t.Replace("\n", ",");
        t = t.Replace("  ", " ");
1 голос
/ 22 февраля 2011

Что-то вроде этого должно сделать это:

using (TextReader textReader = ...)
using (TextWriter textWriter = ...)
{
    string line;

    while ((line = textReader.ReadLine()) != null)
    {
        // split into columns here
        string[] columns = ...;

        foreach (string column in columns)
        {
            textWriter.WriteLine(column);
        }
    }
}

Обратите внимание, что вы, вероятно, можете немного сжать этот код с помощью LINQ.

0 голосов
/ 22 февраля 2011

Что по этому поводу:

string data = File.ReadAllText( path );
string[] lines = data.Split('\t'); //I assume that "columns" mean tab seperated
File.WriteAllLines( path2, lines );

Или вы можете выбрать вариант с одним вкладышем, но я предпочитаю первый для удобства чтения:

File.WriteAllLines( destinationPath, File.ReadAllText( sourcePath ).Split('\t') );
0 голосов
/ 22 февраля 2011

Для получения основной информации о том, как писать и читать, следуйте статье

http://www.c -sharpcorner.com / UploadFile / ggaganesh / CSAndTypes11092005011259AM / CSAndTypes.aspx

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