![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не свитывается из файла JobInfo2W: Сначала я его записываю в файл
EgorovAlex © (2006-12-20 08:59:00)А после считывании все поля с типом PWideChar равны nil. Это так и должно быть? Точно такие же действия работали в D7, а в Turbo Delphi все стринги об nilяются
Сергей М. (2006-12-20 10:30:00) [21]
> записывается не значение указателя, в D7 это работает и
> на запись и на считывание
Ой ну врешь ведь)
в структуре JobInfo2W сплошные указателина данные, а не сами данные:
_JOB_INFO_2W = record
JobId: DWORD;
pPrinterName: PWideChar;
pMachineName: PWideChar;
pUserName: PWideChar;
pDocument: PWideChar;
.. и т.д. ..
end;
EgorovAlex (2006-12-20 10:17:00) [22]Для считывания такой же тип:
var
JobInfo2W: PJobInfo2W;
GetMem(JobInfo2W, JobInfoSize);
ZeroMemory(JobInfo2W, JobInfoSize);
ReadFile(hFile, JobInfo2W^, JobInfoSize, BytesRead, nil);
JobInfoSize равен размеру JobInfo2W при записи
Anatoly Podgoretsky (2006-12-20 10:13:00) [23]> EgorovAlex (20.12.2006 10:01:04) [4]
Не указываешь объявления переменных.
Говоришь про чтение, а приводишь про запись.
EgorovAlex (2006-12-20 10:01:00) [24]Нет, записывается не значение указателя, в D7 это работает и на запись и на считывание. Записывается и в TurboDelphi нормально (я содержимое файла вижу), вот только считывается странно
MBo (2006-12-20 09:56:00) [25]>WriteFile(hFile, JobInfo2W^, BytesNeed, BytesWrite, nil);
Хм...
Получается, что ты в файл значение указателя (PWideChar) записываешь, а не данные строки
EgorovAlex (2006-12-20 09:37:00) [26]Записивыю в файл: здесь BytesNeed это размер, полученные из GetJob() при получении JobInfo2W
var
JobInfo2W: PJobInfo2W;
WriteFile(hFile, JobInfo2W^, BytesNeed, BytesWrite, nil);
Считываю:
ReadFile(hFile, JobInfo2W^, BytesNeed, BytesRead, nil);
В результате все стринговые поля =nil :(
MBo (2006-12-20 09:10:00) [27]А как ты записываешь и считываешь?