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

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

Чтение данных из оверлея [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);


Наверх

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