07-05-2013, 05:42 PM
متعة البرمجة على الملفات bin با استعمال
Stream
و المصفوفات .
Stream
و المصفوفات .
ما هي الملفات و كيف نتعامل معها ؟؟
|
07-05-2013, 05:42 PM
متعة البرمجة على الملفات bin با استعمال
Stream و المصفوفات .
20-05-2019, 01:17 AM
ما شاء الله موضوع جميل بارك الله فيكم
مع ان الموضوع منذ فترة كبيره إلا أنه الوحيد الذي وجدته بالعربيه بصيغة PDF على جميع مواقع الكتب . اريد تعلم كيفية التعامل مع الملفات خصوصا BinFile واحاول عمل واجهة بسيطه بها عدد 2 Buttons الاول يحمل قيمة محددة عند حدث الضغط يقوم بكتابة تلك القيمة في Adress معين بالملف واقصد بالكتابة اي الاستبدال اعني بذلك ان يبقى حجم الملف كما هو وعدد Adress كما هو .. والمفتاح الثاني عند الضغط عليه يقوم بقص مجموعه عناوين محددة داخل الملف ولتكن من اخره . ولا يهم ان يكون التعديل على نفس الملف او انتاج ملف اخر به التعديل . انا اعلم جيدا ان الطلبات مرفوضه حتى لا يستغل الطالب خبرة الاخرين في برامج يتاجر بها او غيره , لكني والله احب تعلم دلفي واود عمل البرنامج بنفسي واخيرا البرنامج سيساعدني في عملي حيث اني اعمل في صيانة الاجهزة الالكترونيه وساستخدمه في التعديل على ملفات سوفتوير التلفاز حيث اني اقوم بالتعديل كل مرة يدوي ببرنامج HexWorkShop .. انا اعرف القيم التي استخدمها واماكن التعديل على الملفات ولكني اريد تعلم البرمجة بشكل عملي ومفيد . الخطوات التي اتبعتها في محاولة عمل البرنامج ما هي الا القراءة والاطلاع على بعض المواقع والكتب مثل كتاب التعامل مع الملفات بدلفي للاستاذ TF6M وايضا بعض المواقع مثل http://www.delphibasics.co.uk/Article.asp?Name=Files ولكني حديث بالبرمجة ولا اعلم منها الا اساسيات الباسكال فقد ركزت على تعلمها كما اشار الاخوة الكرام لي . ان كان طلبي مرفوض فارجوا ان يتم عمل درس للمبتدئين في التعامل مع الملفات بإستفاضه . اخيرا تفضلوا علي بالنصيحة والتوجيه . شكرا جزيلا والسلام علي من أتبع الهدى .
قل إن صلاتي ونسكي ومحياي ومماتي لله رب العالمين
20-05-2019, 03:40 AM
السلام عليكم
ألق نظرة هنا أيضا إستخدم الصنف TMemoryStream ودوال ReadFile, WriteFile PHP كود : function file_(const FileName: string; Offset: DWORD; NewValue: Byte): Integer;
سبحان الله وبحمده سبحان الله العظيم
20-05-2019, 09:31 AM
(آخر تعديل لهذه المشاركة: 20-05-2019, 10:14 AM بواسطة محمد عبد العزيز.)
(20-05-2019, 03:40 AM)Agmcz كتب : ألق نظرة هناوعليكم السلام ورحمة الله وبركاته بارك الله فيك اخي الحبيب .. رجاءا لا تنسى دائما وضع Comment لاني مبتدأ بارك الله فيك . ما فهمته من الكود هو عبارة عن دالة ترجع integer ومتغير ms تم حجزه وهو خاص بالملف . جملة if للتحقق من وجود الملف وان لم يكن موجود فيتم انشاءه .. هل يتم تعويض ال (FileName) بمسار واسم الملف المراد التعامل معه ؟ MS.LoadFromFile(FileName); لتحميل الملف . MS.Position := Offset; لتحديد الادريس المراد التعامل معه . فهل يتم تغير Offset الى العنوان الخاص به ؟ Result := MS.Write(NewValue, SizeOf(Byte)); حفظ القيم الجديدة على الملف الذي يحتويه المتغير Ms MS.SaveToFile(FileName + '_Patched'); حفظ ما بالمتغير Ms الى القرص الصلب . finally MS.Free; لتحرير المتغير من الذاكرة . انا اريد شرح لاني اريد التعلم وهذا ما فهمته من النظر الى الكود واشعر ان الامور ليست بالوضوح التام امام عيني . شكرا
قل إن صلاتي ونسكي ومحياي ومماتي لله رب العالمين
20-05-2019, 10:29 AM
كود : جملة if للتحقق من وجود الملف وان لم يكن موجود فيتم انشاءه .. إقتباس :هل يتم تعويض ال (FileName) بمسار واسم الملف المراد التعامل معه ؟اسم الملف كامل بما في ذلك المسار إقتباس :MS.Position := Offset; لتحديد الادريس المراد التعامل معه . فهل يتم تغير Offset الى العنوان الخاص به ؟للذهاب لوضع/مكان معين، وما يلي من قراءة/كتابة تكون في ذلك المكان
رَبَّنَا اغْفِرْ لِي وَلِوَالِدَيَّ وَلِلْمُؤْمِنِينَ يَوْمَ يَقُومُ الْحِسَابُ
20-05-2019, 12:58 PM
MS.Position := Offset; .... كيف يتم تحديد عدد 2 Offset لتحديد بداية ونهاية البلوك المراد اعادة كتابته .
اقصد تحديد عنوان (من .. الى )
قل إن صلاتي ونسكي ومحياي ومماتي لله رب العالمين
20-05-2019, 01:20 PM
(20-05-2019, 12:58 PM)ELARAPY كتب : MS.Position := Offset; .... كيف يتم تحديد عدد 2 Offset لتحديد بداية ونهاية البلوك المراد اعادة كتابته . المهم تحديد مكان البداية إذا كان عنوان البداية 2 وحجم الداتا التي سيتم كتابتها 6 بايت عنوان النهاية سيكون 8.
سبحان الله وبحمده سبحان الله العظيم
الشكر لله ثم لكم جميعا على التعاون . ان شاء الله ساجرب واعاود الرد بالموضوع .
ربنا يبارك لكم ويجزيكم الخير ان شاء الله. السلام عليكم . اخر شئ بما يخص الموضوع .. استخدام Result := MS.Write(NewValue, SizeOf(Byte)); هل تفيد كتابة داتا جديدة مكان القديمة ام تشبه insert ؟ كيف يتم تغير ال Value للملف او اضافه Value جديد مما يزيد من حجم الملف ؟
قل إن صلاتي ونسكي ومحياي ومماتي لله رب العالمين
20-05-2019, 08:19 PM
إقتباس :اخر شئ بما يخص الموضوع .. استخدام Result := MS.Write(NewValue, SizeOf(Byte)); هل تفيد كتابة داتا جديدة مكان القديمة ام تشبه insert ؟ الإجراء Write يقوم بالكتابة في مجال الذاكرة التي نعمل عليها أي كتابة قيم جديدة في مكان القديمة. يتم تحديد موضع Read/Write بإستخدام MS.Position أو MS.Seek لنحصل على شيء يشبه Insert سنستعمل Read, Write, SetSize
سبحان الله وبحمده سبحان الله العظيم
21-05-2019, 02:11 AM
(20-05-2019, 12:58 PM)ELARAPY كتب : MS.Position := Offset; .... كيف يتم تحديد عدد 2 Offset لتحديد بداية ونهاية البلوك المراد اعادة كتابته . تفقد السورس هنا http://delphi4arab.net/forum/showthread.php?tid=10011
:: من يملك المعلومة يملك الميدان ::
|
|