![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| 4epT |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: нет Всего: 3 |
Добрый вечер!
Вот таким образом записываю в файл информацию:
Вот так считываю:
Все нормально работает ... но если записывать русские символы в файл, то оно записывает черт знает что ... ((( следовательно считует тоже непонятно что ((( насколько я понял то проблема с кодировкой ... как это исправить ?? Заранее спасибо! |
||||
|
|||||
| QryStaL |
|
|||
![]() Intellectual feast ![]() ![]() Профиль Группа: Участник Сообщений: 914 Регистрация: 30.11.2005 Репутация: 14 Всего: 32 |
Считывать аналогично с помощью класса StreamReader -------------------- I don't need a reason being who I am... |
|||
|
||||
| 4epT |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: нет Всего: 3 |
ну мне не совсем это нужно ((( мне нужно использовать именно WriteByte для побайтовой записи ... потому что для каждого файла информация хранится в одном файле ... и считую только конкретные байты для текущего файла ...
Ну или подскажите пожалуйста как с помощью класса StreamReader считать конкретные байты ? У меня хранится значение start (с какого байта начинается) и count (колличество байт с заданной позиции) Это сообщение отредактировал(а) 4epT - 9.10.2008, 22:58 |
|||
|
||||
| QryStaL |
|
|||
![]() Intellectual feast ![]() ![]() Профиль Группа: Участник Сообщений: 914 Регистрация: 30.11.2005 Репутация: 14 Всего: 32 |
Не совсем понял, ну да ладно
Типа такого? -------------------- I don't need a reason being who I am... |
|||
|
||||
| 4epT |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: нет Всего: 3 |
ну вот этот код не работает (( а вот этот:
работает хорошо ... только что - то не пойму как мне потом считать информацию с файла (считать нужно конкретные байты) ... как - то можно считать с помощью класса StreamWriter например - 10 байт начиная с 5 байта ? Это сообщение отредактировал(а) 4epT - 9.10.2008, 23:14 |
||||||
|
|||||||
| mihryak |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 19 Всего: 36 |
один символ вовсе не обязательно представляется одним байтом!
байты для записи получай с помощью нужной тебе кодировки через метод GetBytes не видел поста QryStaL проблема явно в кодировке, StreamReader умеет её определять по BOM, тебе же придётся её явно задавать Это сообщение отредактировал(а) mihryak - 9.10.2008, 23:20 |
|||
|
||||
| QryStaL |
|
|||
![]() Intellectual feast ![]() ![]() Профиль Группа: Участник Сообщений: 914 Регистрация: 30.11.2005 Репутация: 14 Всего: 32 |
этот код как пример, я использовал юникодную кодировку по-умолчанию, тебе же нужно использовать свою byte[] b = Encoding.[кодировка].GetBytes(info); -------------------- I don't need a reason being who I am... |
|||
|
||||
| mihryak |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 19 Всего: 36 |
запутался с reader'ами-writer'ами в предыдущем сообщении
автору рекомендую ещё раз задуматься о нефиксированном размере одного символа читать и писать посимвольно позволяют классы StreamReader/StreamWriter, чтение/запись также могут осуществляться блоками Это сообщение отредактировал(а) mihryak - 9.10.2008, 23:34 |
|||
|
||||
| 4epT |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: нет Всего: 3 |
Спасибо всем за помощь! Пока что еще не разобрался с поблемой ... но уже что-то начинает прояснятся )
Юзаю классы StreamReader/StreamWriter ... Добавлено через 14 минут и 34 секунды Проблема практически решена ... Мой файл:
Как из этого файла считать только вот эти символы с помощью класса StreamReader - "123123123123123 Русский English" ? Пытаюсь считать вот так :
astart - индекс с какого символа начать считывать acount - кол-во символов Если я что то не понимаю, то просьба объяснить номральным языком ) |
||||
|
|||||
| MasterOfCode |
|
|||
|
elwin ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 24.4.2008 Где: World.Russia.Tyum en Репутация: 4 Всего: 27 |
Можно например без потоков работать. -------------------- ![]() |
|||
|
||||
| mihryak |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 19 Всего: 36 |
ты неправильно используешь ReadBlock, второй параметр - index - отвечает не за стартовую позицию в потоке, а за индекс в массиве символов, с которого надо заполнять его прочитанными символами так что сначала необходимо вычитать все предыдущие символы из потока, чтобы добраться до нужных |
|||
|
||||
| 4epT |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: нет Всего: 3 |
mihryak, проблема в том что я заранее не знаю что у меня в файле находится .... я знаю только индекс с какого элемента мне нужно начать считывать и сколько символов ....
|
|||
|
||||
| mihryak |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 19 Всего: 36 |
4epT, если индекс - это номер символа, то проблемы нет
выделяй "мусорный" буфер длиной в это кол-во, считывай его, забывай про него, читай нужный блок если он предположительно приличного размера, то перед прочтением нужного блока в цикле вызывай reader.Read() нужное кол-во раз |
|||
|
||||
| 4epT |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: нет Всего: 3 |
Спасибо! Так и сделал ) |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |