PDA

View Full Version : تفییر در یک فایل Dcu با دلفی



AliReza Vafakhah
دوشنبه 30 دی 1387, 19:18 عصر
سلام دوستان

من می خواهم در یک فایل dcu فقط یک بیت را تغییر بدم

خواستم که از TStringList استفاده کنم اما وقتی فایل dcu باز میشه فقط یه # نشون میده
از TextFile هم استفاده کردم که خطا داد .

لطفا کمک کنید.

mossaferin
دوشنبه 30 دی 1387, 19:42 عصر
سلام
اگر حتما باید خود برنامه نویسی کنی به نظر من دوراه داری
1- باید تغریبا یه هگز ادیتور بنویسی !
2- یا اینکه فایل رو بصورت باینری بازکنی و تغییر مورد نظر رو اعمال کنی

یا با یه نرم افزار هگز ادیتور فایلت رو ادیت کنی

موفق باشی

AliReza Vafakhah
دوشنبه 30 دی 1387, 20:45 عصر
دوست عزیز فایل رو با Hex Wokshop ادیت کردم

اما می خوام نه اینکه برنامه شبیه به hex ... بنویسم فقط می خوام فایل رو با برنامه نویس اون قسمت موردن نظر رو خودم تغییر بدم.

vcldeveloper
سه شنبه 01 بهمن 1387, 02:34 صبح
بجای باز کردن فایل در TStringList، آن را با استفاده از TFlieStream باز کنید، و ویرایش کنید.

AliReza Vafakhah
سه شنبه 01 بهمن 1387, 18:14 عصر
آقای کشاورز ممنون مشکلم حل شد اما با این کد آیا فرقی هم با TFlieStream هم داره (هر چند که از پاسکال است)



procedure TForm1.BitBtn1Click(Sender: TObject);
var
hFile:Integer;
hLength:Integer;
Buffer:PChar;
begin
Select.Execute;
hFile:=FileOpen(Select.FileName,fmOpenReadWrite);

if (hFile<0) then
begin
Log.Lines.Add('File is Opend or Access Denied');
Log.Lines.Add('Try Again');
Exit;
end;

hLength:=FileSeek(hFile,0,2);
FileSeek(hFile,0,0);
Buffer:=Pchar(AllocMem(hLength +1));
FileRead(hFile, Buffer^, 1);l

FileClose(hFile);

end;

vcldeveloper
چهارشنبه 02 بهمن 1387, 01:56 صبح
اما با این کد آیا فرقی هم با TFlieStream هم داره (هر چند که از پاسکال است)
فرقش در این هست که مستقیما از توابع API ویندوز استفاده کرده.