FileSeek & FileWrite
#1
سلام اخواني
اتمنى لو تشروحي لي هاتين الدالتين وجميع برامتر لهما ، لاني عندي مشكلة معهما
وشكرا
الرد
#2
السلام عليكم
الشرح متوفر في الـ Help
اطرح مشكلتك بالضبط أين هي؟
الرد
#3
السلام عليكم

يوجد العدد من الطرق للقيام بنفس مهمة الدالتين FileSeek & FileWrite

راجع هذا
الرد
#4
مشكورين اخواني على التفاعل على كل راح اطرح المشكلة
PHP كود :
procedure TForm1.Button1Click(Sender: TObject);

begin
 
if OpenDialog1.Execute then
 FileHandle 
:= FileOpen(OpenDialog1.FileName,fmOpenReadWrite);
 
Buffer := 0;
 for 
i:= 10 to 20 do
 
begin
 Count 
:= FileSeek(FileHandle, i, 0);
 
result := FileWrite(FileHandle,Buffer,Count);
 
end;
end; 
على كل المتغيرات معرفة من قبل وكلها من نوع integer
وكما ترون الغاية تصفير مناطق من الاوفيست 10 الى 20 - in dec -
لاكن النتيجة تظهر هكدا
PHP كود :
offset stare (0) 43 57 53 08 18 24 00 00 78 DA (offset10) 00 00 00 00 00 00 
00 00 00 00 00
(offset20) 00 00 00 FF FF FF FF 00 00 00 00
00 00 00 00 00 00 00 00 18 8A 88 10 7A 91 26 D2 
الكود تعدى المطلوب منه ، ما المشكلة
الرد
#5
إقتباس :الكود تعدى المطلوب منه
الكود لم يتعد المطلوب، الخلل هنا:
إقتباس :على كل المتغيرات معرفة من قبل وكلها من نوع integer
Integer يزن 4 bytes
جرب تغيير نوع Buffer إلى Byte أو Char (إذا استخدمت Char اكتب 0#)
ملاحظة: المتغير result لا محل له من الإعراب.
أيضا حيز begin/end بعد OpenDialog1.Execute ولا تنسى FileClose في النهاية.
أيضا يفضل استخدام TStreamFile
بالتوفيق.
الرد
#6
نعم كما قال اخى kachwahed الكود الذى طرحته ملىء بالاخطاء ...

المهم هده طريقة لتغير اول 10 بايت لملف ما . عن طريق استعمال الكلاس TMemoryStream

PHP كود :
const
  
My10Byte: array[1..10] of Byte = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
var
  
MS: TMemoryStream;
begin
  MS 
:= TMemoryStream.Create;
  try
    if 
dlgOpen1.Execute then
    begin
      MS
.LoadFromFile(dlgOpen1.FileName);
      
MS.Seek(0, 0);
      
MS.Write(My10Byte, SizeOf(My10Byte));
      
MS.SaveToFile(dlgOpen1.FileName + '.Changed');
    
end;
  finally
    
MS.Free;
  
end;
end; 

اطلع على الهالب لكى تفهم اكثر .


الملفات المرفقة
.rar   Change10Byte.rar (الحجم : 1.01 ك ب / التحميلات : 9)
الرد
#7
امممم ساجرب ، مشكورين اخواني ما قصرتوا اما على الاخطاء فهدا اول كود لي هههههه
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم