Просмотр полной версии : [DELPHI] Считывание данных из Pointer
s0l_ir0n
07.05.2010, 08:17
Новый вопрос:
var
nulldata:array of byte;
i:integer;
begin
SetLength(nulldata, sizedata);
for i:=1 to sizedata
do nulldata[i]:=$0;
...
WriteFile(hFile,nulldata,sizeOf(nulldata),bytesrea d,nil);
CloseHandle(hFile);
...
При записи, в файл пишутся не данные из динамического массива, а его адрес =((
Как это исправить?
p или pb пусть у тебя будет pchar и работай потом норм с ним как со строкой.
А тут ты говоришь что pb - это указатель на слово (которое 2 байта). Вот он и выводит по 2 байта.
s0l_ir0n
07.05.2010, 13:07
Ап. Вопрос изменил.
можно так
WriteFile(hFile,@nulldata[0],sizeOf(nulldata),bytesread,nil);
или так попробуй
WriteFile(hFile,nulldata^,sizeOf(nulldata),bytesre ad,nil);
Делфи может орать на несоответствие типов, там подбереш нужные
s0l_ir0n
07.05.2010, 13:15
Компилятор орет, пропускает только
WriteFile(hFile,nulldata,sizeOf(nulldata),bytesrea d,nil);
и
WriteFile(hFile,PChar(nulldata)^,sizeOf(nulldata), bytesread,nil);
но в обоих случаях записывается адрес, а не данные((((
попробуй тогда тк
WriteFile(hFile, nulldata[0], sizeOf(nulldata),bytesread,nil);
RDL_Rider
07.05.2010, 15:23
По моему Sizeof в данном случае вернет размер указателя, т.е. 4 байта. Чтобы узнать длину нужно юзать ф-цию Length, не зря ведь память выделяется ф-цией SetLENGTH..
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot