![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TFileStream [D6, Win95/98]
chips © (2002-06-20 13:27:00)Уважаемые мастера ,может кто подскажет что не так?
Все файлы присутствуют,новый создается ,а в конце
Дельфи ругается ,когда начинает программу выполнять.
procedure TForm1.Button1Click(Sender: TObject);
var
f: TFileStream;
l: integer;
put : string; // имя и путь к файлу
begin
l:=1 ;
if OpenDialog1.Execute then
begin
put:=ExpandFileName(OpenDialog1.FileName); // присваивает полный путь+ имя файла
f:=TFileStream.Create(put, fmOpenRead);//открываем файл
f.Position:=f.Size-260;//устанавливаем позицию в файле для считывания l
f.Read(l, 260);//считываем l
f.free;//закрываем файл
f:=TFileStream.Create("temp1.tmp",fmCreate );// создаем или пишем в файл
f.Write(l,260);
f.Free;
end
else
l:=0;
end ;
chips (2002-06-20 13:57:00) [1]огромное спасибо ,все работает ...:-))
Skier (2002-06-20 13:52:00) [2]> chips
Попробуй это :
procedure TForm1.Button1Click(Sender: TObject);
var
f: TFileStream;
l: integer;
put : string;
begin
l:=1 ;
if OpenDialog1.Execute then
begin
put:=ExpandFileName(OpenDialog1.FileName);
f:=TFileStream.Create(put, fmOpenRead);
try
f.Position:=f.Size-260;
f.Read(l, SizeOf(l));
finally
f.free;
end; //try
f:=TFileStream.Create("temp1.tmp",fmCreate );
try
f.Write(l,SizeOf(l));
finally
f.Free;
end; //try
end
else
l:=0;
end ;
MBo (2002-06-20 13:43:00) [3]f.Read(l, 260);
эта строка читает 260 БАЙТ
и пишет их по адресу, начиная с адреса l
c Write та же ошибка
SizeOf(Integer) используй
chips (2002-06-20 13:36:00) [4]после того как все выполнит, на последнем end
пишет: ассеss violation at adress 696c6165.read of adress 696c6165.
может у меня что с "железом" не так ?
Skier (2002-06-20 13:31:00) [5]> chips
В каком месте ругается ?