![]() |
|
كيف اضافة ملف hex دخل اداة memo - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : كيف اضافة ملف hex دخل اداة memo (/showthread.php?tid=12144) الصفحات:
1
2
|
RE: كيف اضافة ملف hex دخل اداة memo - ELARAPY - 11-12-2022 (09-12-2022, 02:11 PM)Ndagor كتب : تمت اضافة دالة ReplaceHex لعمليات تغيير المحتوى سواء يدويا باستعمال زر Replace او اليا يمكن كتابة الكود العملية استبدال عدة قيم على الشكل التالي: بارك الله فيك اخي , ماشاء الله مجهود واهتمام كبير جزاك الله خيرا, هل يمكن عمل درس كامل تفصيلي (صوت وصورة) يخص التعامل مع الهيكس ويتم طرحه في قسم دروس دلفي للعرب ليشمل المبتدئ ويكون مرجعا للجميع ؟ RE: كيف اضافة ملف hex دخل اداة memo - Ndagor - 13-12-2022 يا اخي لا توجد ألغاز و شيء .. hex هو نص(بالنظام السداسي عشر) يظهر قيم محتوى binary .. و الدالة BinToHex تقوم بذلك لا اكثر ولا اقل.. يمكنك تحويل الملف الى مصفوفة array و لاجراء عمليات الأساسية: Delete لحذف جزء.. Insert لإضافة قيم جديدة و Move لاستبدال قيم باخرى و Copy لنسخ جزء من المصفوفة في اخرى جديدة. بالنسبة لعملية البحث و الاستبدال هناك حلين اما تحويل مصفوفة الى نص Hex ثم اجراء عملية البحث باستعمال Pos و StringReplace للاستبدال... الحل الثانى هو كتابة دوال تقوم بالعمليتن مباشرة على المصفوفة و تعتبر هذه من تمارين البديهيات في الخوارزميات.. لكي تفهم جيدا عليك بالتجربة و عندما تواجه مشكل يمكنك الاستفسار عليه . RE: كيف اضافة ملف hex دخل اداة memo - Team dz - 21-12-2022 الف شكرا وعرفان لك اخي الكريم Ndagor علا المجهود الذي تبذله بقيا لي في سورس عند اختيار الملف اريد ان يضهر في label حجم الملف مع العلم ان برنامجي لايقوم بملف واحد له عددة احجام مثلا الحجم اريده ان يضهر هكذا :2,00 Mo او 1,46 او Mo 1,46 Mo واريد اضافة programme bar1 اريده يعمل مع TDRAWGRID يعني عند منادة ملف يعمل PROGRAMME عند ملى TDRAWGRID يكون PROGRAMME BAR 100%100 RE: كيف اضافة ملف hex دخل اداة memo - Ndagor - 21-12-2022 بالنسبة لاظهار حجم الملف يمكنك استعمال كود الذي و جدته في النت كود : function FormatByteSize(const bytes: int64): string;
const
B = 1; //byte
KB = 1024 * B; //kilobyte
MB = 1024 * KB; //megabyte
GB = 1024 * MB; //gigabyte
begin
if bytes > GB then
result := FormatFloat('#.## GB', bytes / GB)
else if bytes > MB then
result := FormatFloat('#.## MB', bytes / MB)
else if bytes > KB then
result := FormatFloat('#.## KB', bytes / KB)
else
result := FormatFloat('#.## bytes', bytes);
end;اضف في اخر سطر في الدالة Button1Click فتح الملف كود : Label3.Caption := FormatByteSize(MStream.Size);بالنسبة ل ProgressBar اضافته لا تغير شيء لان فتح الملف سريع جدا يمكنه فتح ملف 10 ميغا في ثانية وهذه ليست مدة انتظار طويلة اظهار قيم bin في Édit3 غير عملي و هناك احتمالية ان تظهر بقيم خاطئة و هذا هو الهدف من استعمال نص hex هناك حالات الحرف يحتوي على Byte واحد و اخرى على اثنين..و هناك قيملابجب استعمالهامثل 0 على كل حال راجع الامثلة السابقة المتعلقة ب Mémo يمكنك استعمال الكود التالي و لكن عليك تحديد الطول الذي تريد اختياره في المثال Len تقوم باظهار 10 حروف كود : procedure TForm1.DrawGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
var
Pz,R,Len :integer;
S:Ansistring;
begin
Pz := (ARow-1) * 16 + (ACol-1);//cellule
if (Pz >= 0) and(Pz < MStream.Size) then
begin
OffsetEdit.Text := IntToHex(Pz,6);
Len :=10;
MStream.Position := Pz;
SetLength(S,Len);
R:= MStream.Read(Pointer(S)^,Len);
if R<>Len then
SetLength(S,R);
Edit3.Text := S;
end;
end;RE: كيف اضافة ملف hex دخل اداة memo - Team dz - 21-12-2022 هذا الكود خاطى كود : ; Label3.Caption := FormatByteSize(MStream.Size)RE: كيف اضافة ملف hex دخل اداة memo - Ndagor - 21-12-2022 الكود ليس خاطئ عليك اضافة الكود تعريف للدالة FormatByteSize هذا هو الكود كامل حاول ان تفهمه RE: كيف اضافة ملف hex دخل اداة memo - Team dz - 26-12-2022 الف شكر وعرفان مني اليك اخي الكريم Ndagor لي المساعدة التى تقدمها لنا وفقك اللله بما يرضاه لك اخي الكريم عندى سوال بسيط في السورس المرفق في خاصية ReplaceHex تعمل بشكل جيد في برنامجي عند استبدال القيم وصلت الى منطقة في الملف كلها اصفار واريد وضع قيم في العنوان 1FA340 اريد استبدال 3 اسطر تحتوى علا اصفار الى قيم عندما استعمل الدلة ReplaceHex لاتذهب الى السطر الذي اريده ارفقت لك صورة ممكن كود لو سمحت |