Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

после BlockRead динамические массивы теряют ссылку на память. [D6, Win2k]


Страницы:   1 2 3

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, очень удобно.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо