![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| WaterProof |
|
|||
|
OverLapped Профиль Группа: Участник Сообщений: 44 Регистрация: 13.10.2006 Где: Москва Репутация: нет Всего: нет |
Delphi пишет, что "Type 'TUsers' needs finalization - not allowed in file type"(подсвечивается строка в разделе var процедуры(f:file of TUsers;). Что это может быть?? Просто никогда не работал с динамическими массивами, да и сообщение вижу такое в первый раз... |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 4 Всего: 260 |
и как ты себе представляешь создание файла? размер динамического массива нефиксированный(а то потому бы он ещё "динамическим" звался?!), оттого программа не сможет получить доступ к 5(например) элементу - она не знает, где заканчивается 4-й, 3-й, 2-й и 1-й элементы. Если используешь структуру "file of" длина одного элемента должна быть фиксированной. и никак иначе. а то(представь) просишь 100 элемент, а программа вынуждена анализировать предыдущие 99, чтоб выяснить, где этот сотый номер в файловой системе начинается. выход:
|
|||
|
||||
| Albinos_x |
|
|||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
вот набросал рабочий пример записи динамического массива на диск:
-------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
Albinos_x,
при загрузке: 1) какой смысл загружать весь файл в память в MemoryStream? 2) Зачем в цикле в каждой итерации перевыделять память? гораздо быстрее сделать это перед началом цикла. и вообще, зачем нужен цикл, если можно считать все одним махом? ) при сохранении: 1) "записываю массив в память"... абсолютно не нужная операция... а до этого массив где? не в памяти? я бы переписал так:
правда нельзя в этом случае сделать визуализацию прогресса загрузки... тогда придется конечно использовать цикл... но не так похабно, как в предыдущем примере. с уважением. Это сообщение отредактировал(а) MetalFan - 19.3.2007, 09:56 -------------------- There are always someone smarter than you... |
|||
|
||||
| WaterProof |
|
||||
|
OverLapped Профиль Группа: Участник Сообщений: 44 Регистрация: 13.10.2006 Где: Москва Репутация: нет Всего: нет |
Пока не получается - вылазит ошибка Access Violation:
1) постоянно выдает ошибку о том, что отсутствуеь файл, у которго тильда ~ в расширении 2)Access violation Массив Users заполняю таким образом:
Это сообщение отредактировал(а) WaterProof - 19.3.2007, 16:08 |
||||
|
|||||
| Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
-------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
| WaterProof |
|
|||
|
OverLapped Профиль Группа: Участник Сообщений: 44 Регистрация: 13.10.2006 Где: Москва Репутация: нет Всего: нет |
Rennigth, одной проблемой меньше
А вот с Access Violation что делать? Ошибка возникает явно не из-за отсутствия файла..... |
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
есть такая функция High(DynArr), что аналогично length(DynArr)-1 ) как описан тип TUser? -------------------- There are always someone smarter than you... |
|||
|
||||
| Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
где? Добавлено @ 16:36 MetalFan, посмотри первый пост -------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
Rennigth, а точно!
2WaterProof, добавь packed перед record в описании TUser -------------------- There are always someone smarter than you... |
|||
|
||||
| Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
MetalFan, врятли из-за этого, там выравнивать нечего... хотя может уже структура другая.
WaterProof, Но все равно добавь -------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
| WaterProof |
|
|||
|
OverLapped Профиль Группа: Участник Сообщений: 44 Регистрация: 13.10.2006 Где: Москва Репутация: нет Всего: нет |
Да в том то и дело, что я сразу добавил....
|
|||
|
||||
| Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
На чем AV вылетает?
Добавлено @ 16:47 И вообще давай весь код относящийся к сохранению. -------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
е-мае!
совсем забыл! тут же дин.массив! передавай во write и read - users[0], а не просто users -------------------- There are always someone smarter than you... |
|||
|
||||
| WaterProof |
|
|||
|
OverLapped Профиль Группа: Участник Сообщений: 44 Регистрация: 13.10.2006 Где: Москва Репутация: нет Всего: нет |
Так чтоли?? Чет под вечер мозга совсем не работает Добавлено @ 17:08 Да, и AV вылетает при применении процедуры WriteUsers.... Добавлено @ 17:09 А где конкретно, не пишет... открывает почему dpr файл... |
|||
|
||||
![]()
|
| Правила форума "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. |