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

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

Problema s TFIleStream! [D6, Win95/98]


Delphi 5.01 ©   (2002-08-30 09:07:00) 

Zdravstvuite!
Ia napisal malenkuiu proceduru kotoraia dekodiruet moi faili(sami faili eto obiknovennie BMP-shki). Vot procedura

...
Exist_File:=TFileStream.Create("Swap.bmp",fmOpenReadWrite);
For Index:=0 to 20 do
begin
...
//zdes algoritm dekodirovki faila
...
end;
Exist_File.Free;
...

Posle etogo ia ne mogu zagruzit etot BMP fail, sistema govorit "Access violation at address 0040623D in module "Project1.exe" ... "
U mena ranshe bila taje problema, ia eio reshil no ne pomnu kak. Legche budet ponat esli ia skaju chto eto problema dostupa k failu.
Spasibo


Delphi 5.01   (2002-08-30 13:51:00) [1]

Spasibo tema zakrita!
Ia skopiroval fail metodom TFileStream poluchilos namnogo bistrei, vsa dekodirovka dlitsa 20 mc.


Delphi 5.01   (2002-08-30 10:23:00) [2]

Izvenite, no ia ne takoi profesional, mojet obiasnite kak eto nujno sdelat. Poaluista!
Spasibo!


Delphi 5.01   (2002-08-30 09:41:00) [3]

Esli fail sushestvuet, a znachit ne bil ispolzovana procedura
CopyFile(Name,"Swap",False);
Vso rabotaet OK!
Mne kajetsa chto problema naxoditsa zdes!


Anatoly Podgoretsky   (2002-08-30 09:41:00) [4]

Память для Name будет Пушкин выделять?
Потом превращать в PChar проще так PChar(Name)


Delphi 5.01   (2002-08-30 09:36:00) [5]

Nemnogo ia sam razobralsa, okazivaetsa problema ne v zagruzke a v samom dekodirovanii vot privoju polni primer moei dekodirovki

Procedure Create_Swap_File(File_Name : String);
var Name : PChar;
begin
StrPCopy(Name,File_Name); //Prevrashau string v PChar
CopyFile(Name,"Swap",False); //Kopiruiu fail kotori nado dekodirovat v fail "Swap"
end;

Procedure DeCipher_File(File_Name : String);
var Exist_File : TFileStream;
Index : Integer;
Ch1, Ch2 : Char;
Time : Longint;
begin
Create_Swap_File(File_Name); //zagrujau v fail "Swap" fotku kotoruiu nado dekodirovat
Exist_File:=TFileStream.Create("Swap",fmOpenReadWrite);
//eta chast dekodiruet, menaet mestami pari bait v faile, pervie 40 par
For Index:=0 to 20 do
begin
Exist_File.Read(Ch1,SizeOf(Ch1));
Exist_File.Read(Ch2,SizeOf(Ch2));
Exist_File.Seek(Index*2,soFromBeginning);
Exist_File.Write(Ch2,SizeOf(Ch2));
Exist_File.Write(Ch1,SizeOf(Ch1));
end;
Exist_File.Free; //zakrivau dostup k failu
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
DeCipher_File("pic.bmp"); //vizivau proceduru dekodirovki
end; //!!!!! ohbka voznikaet zdes posle vixoda iz proceduri "TForm1.Button1Click(Sender: TObject)", chto nteresno pochemu do six por ne bilo oshibki s failom?!

Posle avarinogo otkluchenia, v svape naxoditsa udachno razshifrovoni fail?!

Spasibo!


Наверх

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