![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Katshooter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 10.6.2007 Репутация: нет Всего: 1 |
Не могу разобраться с чтением из файла...
В файле находится строка - каждые 4 байта нужно записать в разные переменные.... Делаю таким образом, но получаю только пустые строки
ХЕЛП) |
|||
|
||||
| sentry |
|
|||
|
Code Monkey ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 29.1.2007 Где: Москва Репутация: нет Всего: 10 |
А так нельзя данные получить:
Зачем нужен b? |
|||
|
||||
| Katshooter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 10.6.2007 Репутация: нет Всего: 1 |
Потому что так считаеться вся строка сразу, а мне нужно чтоб первые 4 байта ушли в переменную count, вторые 4 байта в переменную min...
В b я записываю по байтам. а потом из нее считываю в переменные.... Но так не работает |
|||
|
||||
| sentry |
|
||||
|
Code Monkey ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 29.1.2007 Где: Москва Репутация: нет Всего: 10 |
Из MSDN:
Добавлено через 3 минуты и 20 секунд А если нужно считать определенное кол-во байт, то и это делается проще:
|
||||
|
|||||
| Katshooter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 10.6.2007 Репутация: нет Всего: 1 |
Если делать так то получаеться ошибка...(Unable to read beyond the end of the stream. )
|
|||
|
||||
| sentry |
|
|||
|
Code Monkey ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 29.1.2007 Где: Москва Репутация: нет Всего: 10 |
У тебя файл был записан с помощью BinaryWriter? Или нет?
|
|||
|
||||
| Katshooter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 10.6.2007 Репутация: нет Всего: 1 |
да, именно с его помощью.
А если делать так:
то при конвертации в int дркгая ошибка:(Unable to cast object of type 'System.Byte[]' to type 'System.IConvertible'.) |
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 7 Всего: 48 |
покажи как записываешь.
-------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| Katshooter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 10.6.2007 Репутация: нет Всего: 1 |
а вообще єто стандарт: byte position C data type description byte 0-3 int number of characters in the font byte 4-7 int value of first character in the font (often 32 for space) byte 8-11 int pixel width of each character byte 12-15 int pixel height of each character byte 16- char array with character data, one byte per pixel in each character, for a total of (nchars*width*height) bytes. Это сообщение отредактировал(а) Katshooter - 29.7.2007, 13:26 |
|||
|
||||
| stab |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 7 Всего: 48 |
хм.. рекомендую вот это:
заменить на:
и читать так:
Добавлено через 1 минуту и 13 секунд .. или такой экозитческий способ записи неприменно нужен? Добавлено через 9 минут и 27 секунд у тебя же в "C data type" все типы указаны, зачем с байтами мучаешся? пиши\читай именно с помощью указанных типов. -------------------- 6, 6, 6 - the number of the beast. |
||||||
|
|||||||
| Katshooter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 10.6.2007 Репутация: нет Всего: 1 |
не имеет значения каким образом я записіваю или читаю, главное чтобы работало,
а если делать так как предложено ниже, то опять же появляеться ошибка "Unable to read beyond the end of the stream." |
|||
|
||||
| stab |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 7 Всего: 48 |
Добавлено @ 14:08 ммм.. у тебя похоже записывается колонками, а в моём коде строками. в общем, идея надеюсь понятна. я бы ещё добавил класс MyChar, чтобы отказаться от страшного трёхмерного массива и работать с List<MyChar>, плюс в MyChar сделал бы обычный массив, а не jagged - для скорости полезно Добавлено @ 14:13
твой код как раз таки не работает -------------------- 6, 6, 6 - the number of the beast. |
||||
|
|||||
| Katshooter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 10.6.2007 Репутация: нет Всего: 1 |
Ага, не работает эт точно....
Хотела сразу делать на основе Листа, но до класса не додумалась... В панике начала делать в обход, а теперь переделывать слишком много.... Словами про "страшный трехмерный массив" представила лицо моего преподавателя, который заставит все-таки переделывать все с корня((( Еще изначально сделала массив int, а с Вашей подсказкой переделала его на char и все заработало))) В очередной раз убедилась что програмистами не становяться, а рождаються!!!(Это о Вас) |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | .NET для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |