![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
после BlockRead динамические массивы теряют ссылку на память. [D6, Win2k]
Losik © (2004-06-18 15:51:00)Ситуёвина следующая. Из переменной типа file читаю данные командой BlockRead. Смотрю в трассировщике. Все динамические массивы залиты чем-то полезным. Всё ок. Выполняю BlockRead. Как будто бы память и не выделялась под них. Весь день я с этим ... мучаюсь. Помогите. Очень охота до выходных всё сделать.
Кстати, если использовать менее рациональный метод и писать/читать в TextFile, то всё пролезает. Но мне надо именно переменная file.
Anatoly Podgoretsky (2004-06-18 17:07:00) [21]PVOzerski © (18.06.04 16:47) [21]
Ну как мои телепатические способности :-)
Losik (2004-06-18 16:58:00) [22]TmpDouble : double
F : array of file;
процесс: открыл файл, записал, закрыл, открыл, прочитал - правильно прочитал, но динамика обнулилась...
мимо памяти в F я не мажу!
AssignFile(F[i-1], FileName);
Reset(F[i-1], 8);
...
BlockRead(F[i-1], TmpDouble, 1);
Anatoly Podgoretsky (2004-06-18 16:56:00) [23]А может у него массив F
PVOzerski (2004-06-18 16:47:00) [24]BlockRead(F[i-1], TmpDouble[0], 1); не помогает? Кстати, какие параметры у Reset?
Sandman25 (2004-06-18 16:47:00) [25][19] Losik (18.06.04 16:40)
Классный код. Вы бы еще написали BlockRead(A, B, C)... Описания у переменных есть?
Losik (2004-06-18 16:40:00) [26]Код? Какой код. Вот пожалуйста, на этой ботве обезпамячивает.
BlockRead(F[i-1], TmpDouble, 1);
default (2004-06-18 16:39:00) [27]код!!!
Losik (2004-06-18 16:38:00) [28]Да всё нормально со вторым параметров. Я специально вместо массива туда темповую переменную подставил. Та же фигня.
panov (2004-06-18 16:32:00) [29]ну тогда просто read
Anatoly Podgoretsky (2004-06-18 16:18:00) [30]Тимохов © (18.06.04 16:15) [11]
А по большому счету и второй нафиг
Тимохов (2004-06-18 16:16:00) [31]да можно и в buf, только к pointer надо преобразовать и с крышечкой типа pointer(buf)^
PVOzerski (2004-06-18 16:16:00) [32]>если buf - динамический массив, то читай не в buf, а в buf[1]
Точнее, от нулевого и дальше.
Sandman25 (2004-06-18 16:15:00) [33][10] Sam Stone © (18.06.04 16:14)
Buf[Low(Buf)]
Тимохов (2004-06-18 16:15:00) [34]
> Sam Stone © (18.06.04 16:14) [10]
точно, на фиг нам первый элемент.
Sam Stone (2004-06-18 16:14:00) [35]если buf - динамический массив, то читай не в buf, а в buf[1]
Плохиш (2004-06-18 16:14:00) [36]
> Тимохов © (18.06.04 16:11) [6]
> о, телепаты подтягиваются ...
Лишь бы мозги у автора вопроса не изжарили своими способностями, а то будет как всегда :-)
PVOzerski (2004-06-18 16:12:00) [37]А blockread-то 2-м параметром что получает?
TUser (2004-06-18 16:12:00) [38]Опс. Уже все написали *)
Тимохов (2004-06-18 16:11:00) [39]о, телепаты подтягиваются ...
щас советами завалят
:))
TUser (2004-06-18 16:11:00) [40]Надо написать код.
Есть на Королевтсве статьи А.Подгорецкого и еще чего-нибудь наыверняка есть.
Есть TFileStream, очень удобно.