Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / c# запись в конец txt файла / 16 сообщений из 16, страница 1 из 1
09.04.2013, 20:06
    #38219426
gfan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
c# запись в конец txt файла
Как модифицировать этот код так, чтобы запись происходила с кодировкой 1251?
Код: c#
1.
2.
3.
4.
5.
6.
7.
            //Запись в файл
            FileStream fileStream = new FileStream("source2.txt", FileMode.Open);
            StreamWriter streamWriter = new StreamWriter(fileStream);
            streamWriter.BaseStream.Seek(fileStream.Length, SeekOrigin.End);//запись в конец файла
            streamWriter.Write("\r\n"+addString);
            streamWriter.Close();
            fileStream.Close();
...
Рейтинг: 0 / 0
09.04.2013, 20:11
    #38219438
Lelouch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
c# запись в конец txt файла
gfan,

Что помешало использовать File.AppendAllText / File.AppendAllLines?
...
Рейтинг: 0 / 0
09.04.2013, 20:18
    #38219445
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
c# запись в конец txt файла
gfan, передай конструктору StreamWriter второй аргумент Encoding.GetEncoding("windows-1251").

Lelouch дал дельный совет. Использование File.AppendAllText упростит твой код. Кодировку ему тоже можно указать.

P.S. Не забывай использовать using когда работаешь с потоками.
...
Рейтинг: 0 / 0
09.04.2013, 21:51
    #38219523
gfan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
c# запись в конец txt файла
File.AppendAllText где используется? Мне нужно записать в конец файла, как мне сделать это с File.AppendAllText?
...
Рейтинг: 0 / 0
09.04.2013, 22:28
    #38219544
Lelouch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
c# запись в конец txt файла
gfan,

MSDN читать не ваш выбор:
...
Рейтинг: 0 / 0
09.04.2013, 22:28
    #38219545
Lelouch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
c# запись в конец txt файла
?*
...
Рейтинг: 0 / 0
09.04.2013, 22:28
    #38219546
Lelouch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
c# запись в конец txt файла
Получив строку и путь к файлу, этот метод открывает указанный файл, добавляет строку в конец файла и затем закрывает файл.

http://msdn.microsoft.com/ru-ru/library/vstudio/ms143356(v=vs.90).aspx
...
Рейтинг: 0 / 0
09.04.2013, 23:11
    #38219571
gfan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
c# запись в конец txt файла
Всем спасибо за качественные советы.
...
Рейтинг: 0 / 0
10.04.2013, 18:29
    #38220902
gfan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
c# запись в конец txt файла
Не буду создавать тему, но у меня есть еще проблема
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
string[] readText = System.IO.File.ReadAllLines("source.txt");
            using (System.IO.StreamWriter file = new System.IO.StreamWriter("source.txt", Encoding.GetEncoding(1251)))
            {
                for (int i = 0; i < readText.Length; i++)
                {
                    if (i != 1) file.WriteLine(readText[i]);
                }
            }



Вот в этом коде, ругается на кодировку Encoding.GetEncoding(1251). Мол я не правильный параметр передал. Но когда я ставлю запятую после "source.txt", появляется строка с подсказкой второго параметра - Encoding encoding. Что я не так делаю?
...
Рейтинг: 0 / 0
10.04.2013, 18:41
    #38220913
carrotik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
c# запись в конец txt файла
gfan,

..может быть, System.Text.Encoding.GetEncoding(1251) ....
или Encoding.GetEncoding("windows-1251")
...
Рейтинг: 0 / 0
10.04.2013, 18:43
    #38220914
Lelouch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
c# запись в конец txt файла
gfan,

Я не могу понять, вы пытаетесь написать самый сложны и запутанный код записи в файл? Вместо одной строчки лепить ReadAllLines, StreamWriter, цикл?

У StreamWriter нет конструктора с параметрами ( string , Encoding), есть StreamWriter( Stream , Encoding)

http://msdn.microsoft.com/ru-ru/library/system.io.streamwriter.aspx
...
Рейтинг: 0 / 0
10.04.2013, 18:44
    #38220918
Lelouch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
c# запись в конец txt файла
Посмотрите список конструкторов хотя бы. Или в MSDN забанили?
...
Рейтинг: 0 / 0
11.04.2013, 16:13
    #38222145
gfan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
c# запись в конец txt файла
И как мне собственно создать new System.IO.StreamWriter с кодировкой 1251?
Я без понятия, что это за stream
...
Рейтинг: 0 / 0
11.04.2013, 16:14
    #38222148
Lelouch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
c# запись в конец txt файла
gfan,

читайте MSDN, там все написано
...
Рейтинг: 0 / 0
11.04.2013, 16:59
    #38222300
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
c# запись в конец txt файла
gfanИ как мне собственно создать new System.IO.StreamWriter с кодировкой 1251?
Для того чтобы это сделать нужно найти список конструкторов для класса StreamWriter и выбрать наиболее подходящий. Ссылку на документацию Lelouch тебе уже привёл.

Разберем по шагам. У StreamWriter есть конструкторы со следующими сигнатурами:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
StreamWriter(Stream)
StreamWriter(String)
StreamWriter(Stream, Encoding)
StreamWriter(String, Boolean)
StreamWriter(Stream, Encoding, Int32)
StreamWriter(String, Boolean, Encoding)
StreamWriter(Stream, Encoding, Int32, Boolean)
StreamWriter(String, Boolean, Encoding, Int32)


Нас интересуют только те где можно передавать Encoding поэтому отсекаем лишние:
Код: c#
1.
2.
3.
4.
5.
StreamWriter(Stream, Encoding)
StreamWriter(Stream, Encoding, Int32)
StreamWriter(String, Boolean, Encoding)
StreamWriter(Stream, Encoding, Int32, Boolean)
StreamWriter(String, Boolean, Encoding, Int32)


Идем дальше. Мы хотим указать имя файла, а не поток. Отсекаем конструкторы принимающие Stream и получаем:
Код: c#
1.
2.
StreamWriter(String, Boolean, Encoding)
StreamWriter(String, Boolean, Encoding, Int32)


Из двух вариантов ты, я надеюсь, сможешь сделать выбор самостоятельно.

Подобный подход применим к любым данных.

gfanЯ без понятия, что это за stream
Рим не сразу строился. Если ты что-то не знаешь, то читай книги и документацию.

gfanВот в этом коде, ругается на кодировку Encoding.GetEncoding(1251). Мол я не правильный параметр передал.
Ты вызываешь конструктор с сигнатурой StreamWriter(string, Encoding). Такого конструктора у класса нет, отсюда и ошибка компиляции.

gfanНо когда я ставлю запятую после "source.txt", появляется строка с подсказкой второго параметра - Encoding encoding. Что я не так делаю?
IntelliSense помогает только писать код. Думать за тебя она не умеет.
...
Рейтинг: 0 / 0
11.04.2013, 20:50
    #38222687
gfan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
c# запись в конец txt файла
Мерси
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / c# запись в конец txt файла / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]