![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| WERITAS |
|
|||
|
******** ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 2.5.2005 Где: Москва Репутация: нет Всего: 5 |
Работаю с нетипизированными файлами, вот пытаюсь открыть один в обработчике кнопки (файл уже был создан ранее):
Приложение завершается аварийно с сообщением: Access violation at address 00404334 in module 'Project1.exe'. read of address 077BFFF8 Как прочитать нетипизированный файл, если в него записанно какое-то слово? -------------------- Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак" |
|||
|
||||
| Albinos_x |
|
||||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
DRKB (Delphi Russian Knowledge Base)
-------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
||||
|
|||||
| WERITAS |
|
||||
|
******** ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 2.5.2005 Где: Москва Репутация: нет Всего: 5 |
В этом примере условие остановки чтения из файла
А могу я написать?
У меня просто нет аналога NumWritten, т.к. в файл не записываю ничего (в этом обработчике) -------------------- Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак" |
||||
|
|||||
| Albinos_x |
|
|||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
можешь...
-------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
| WERITAS |
|
|||
|
******** ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 2.5.2005 Где: Москва Репутация: нет Всего: 5 |
Уже сделал так:
Все равно вылетает ошибка аварийного закрытия приложения: I/O error 104 Как же все-таки из этого файла прочитать? -------------------- Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак" |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
WERITAS, попросту размер файла не кратен числу w, и когда идет чтение последнего буфера ему уже не откуда читать весь буфер ведь остаток в файле меньше длинны буфера.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| LamerTM |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 11.3.2006 Репутация: нет Всего: 0 |
Может попробуешь через FileRead. Я так всегда делаю, мне это понятнее и проще.
Тут должна быть считана строка длиной 100 элементов:
Таким образом можно считывать файлы с элементами разной длины, например когда есть заголовок файла и массив данных. |
|||
|
||||
| WERITAS |
|
|||
|
******** ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 2.5.2005 Где: Москва Репутация: нет Всего: 5 |
т.е. Дельфи как бы читает кусками из файла? Это однозначно подстава!
-------------------- Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак" |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Просто посчитать сколько там осталось в файле, например из размера файла при каждом чтении вычитать размер буфера, до тех пор пока остаток не станет меньше буфера и уменьшить размер буфера, до размера остатка.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Albinos_x |
|
|||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
у этой функции есть ещё параметр, который возвращает количество прочитанных элементов байт... что есть 1? может всё таки так:
что за tfpr? опечатка? в первый элемент буфера прочитать w элементов... хм... это чего у тебя за буфер такой? ты уверен что в w утебя равно 1? и уверен ли ты что buf у тебя проинициализирован и содержит хоть один элемент? -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Все правильно для нетипизированых файлов нужно указывать размер одного блока. Судя по это скорее всего строка либо динамический массив. Если строка, то все верно, если динамический массив, то нужно считать от нуля. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Albinos_x |
|
|||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
так что строка...
да точно... вылетело.... ошибка по видимому, что в buf[1] он пытается прочитать w, а наверно w при считывании рабна нулю... Это сообщение отредактировал(а) Albinos_x - 11.12.2006, 13:27 -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Ну это вроде как не важно, функция не определяет тип, а только использует адрес первого символа как начало буфера, а вот то, что значение w считываемое из файла неадекватно это вполне может быть, там может оказаться не только ноль но и отрицательное число или слишком большое число и т.д. важно это проконтролировать. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |