![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Чтение данных из оверлея [D7, WinXP]
Слава-17 © (2007-07-14 13:22:00)При исполнении этого кода:
var
Str: String;
begin
Str := '';
with TFileStream.Create(ParamStr(0), fmOpenRead or fmShareDenyWrite) do try
Seek(Size - 4, soFromBeginning);
SetLength(Str, 4);
ReadBuffer(Str, 4);
finally
Free;
end;
ShowMessage(Str);
Вылетает ошибка Acces Violation. Странно. Ведь файл программы был открыт
с использованием fmShareDenyWrite. Я что-то делаю не так?
Zagaevskiy (2007-07-15 11:38:00) [1]
> Глупость, а завтра он поменяет тип int и все к черту
да это просто из соседней ветки
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1184413664&n=18
Слава-17 (2007-07-15 00:39:00) [2]Все, спасибо... :)))
Anatoly Podgoretsky (2007-07-14 17:00:00) [3]> Zagaevskiy (14.07.2007 16:47:06) [6]
Глупость, а завтра он поменяет тип int и все к черту
{RASkov} (2007-07-14 16:59:00) [4]> [6] Zagaevskiy © (14.07.07 16:47)
Не.... не верно....
так как я могу переменной Int поставить впоследствии вместо типа Integer тип Byte....
И ищи свищи где там еще чего исправить...
;)
Zagaevskiy (2007-07-14 16:47:00) [5]
> ReadBuffer(Int, SizeOf(Int));
const
t = SizeOf(Integer);
....
ReadBuffer(Int, t);
;)
{RASkov} (2007-07-14 16:45:00) [6]> [4] Слава-17 (14.07.07 16:21)
> ReadBuffer(Int, 3);
Нет, не так. Вот так:
ReadBuffer(Int, SizeOf(Int));
Слава-17 (2007-07-14 16:21:00) [7]То есть, если я захочу считать Integer, писать просто:
var
Int: Integer;
begin
Int := 0;
..
ReadBuffer(Int, 3);
..
ShowMessage(IntToStr(Int));
?
Anatoly Podgoretsky (2007-07-14 16:02:00) [8]А нет здесь других типов данных
Но все просто, первый параметр адрес "буфера"
Слава-17 (2007-07-14 16:01:00) [9]Спасибо! Помогло. А как с другими типами данных?..
Anatoly Podgoretsky (2007-07-14 15:00:00) [10]> Слава-17 (14.07.2007 13:22:00) [0]
ReadBuffer(Str[1], 4);