الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

بنية الملف في برنامج Fdm (المفتوح المصدر)

بدأه Mohammed-Saeed في 24 مايو 2009 · 7 رد · 764 مشاهدة · في لغة C و ++C
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته ...

يُعد برنامج Free Download Manager من افضل برامج التحميل، اضافة لكونه مجاني ومفتوح المصدر ...

المهم، انا بحاجة لمعرفة بنية ملف downloads.sav والذي يستخدمه البرنامج لمعرفة اماكن تخزين الملفات المحملة ...

وذلك اني محتاج (بشدة وبسرعة) لإنشاء ملف من هذا النوع، ذلك ان البرنامج المذكور لا يدعم انشاء روابط تحميل احترافية مثل هذه ...

URL/(*)/Page(#).jpg

save to:

c:\(*)\page(#).jpg

واود انشاء ملف يحوي هذه البيانات، باستخدام قاعدة بيانات لدي ...

الملف موجودة في

"C:\Documents and Settings\m\Application Data\Free Download Manager\downloads.sav"

حيث m هو اسم المستخدم لجهاز الكمبيوتر

اما الكود الذي يستخدمه البرنامج لهذا الامر، فهو متعدد، لم استطع معرفة مكان بنية الملف بالضبط ... لاني نسيت لغة ال C (التي تعلمتها فقط، ولم امارسها ابداً)

الكود كاملاً موجود هنا

الموضوع في منتدى البرنامج المذكور اعلاه

https://sourceforge.net/forum/forum.php?thr...forum_id=719350

تحياتي وشكري الجزيل لكم

#2

اعتقد ان الكود المستخدم للحفظ هو التالي:

BOOL fsDownloadsMgr::Save()
{
	EnterCriticalSection (&m_csSave);

	BOOL b = FALSE;

	try {
		b = m_saver.Save (&m_vDownloads, "downloads");
		if (FALSE == m_saver.Save (&m_vDeletedDownloads, "downloads.del"))
			b = FALSE;
		if (FALSE == m_histmgr.SaveHistory ())
			b = FALSE;
		if (FALSE == SaveStateInformation ())
			b = FALSE;
		if (FALSE == _BT.SaveState ())
			b = FALSE;
	}catch (...){}

	LeaveCriticalSection (&m_csSave);
	return b;
}

وهو موجود في الملف: fsDownloadsMgr.cpp

ولكني لم اهتدي لبنية الملف ...

وفي توقيعي عدة مقالات كتبتها حول بنية الملفات، لمن لم يفهم ما اقصد

File Format

file structure

تحياتي

تم تعديل هذه المشاركة بواسطة Mohammed-Saeed في 24 مايو 2009 في 15:43

#5

يحوي الملف downloads.sav على العبارة : FDM Downloads

وقد بحثت عنها في كافة الملفات، ووجدتها في الملف

fsDownloadRegSaver.h

و

fsDownloadsHistoryMgr.h

حيث ان العبارة المذكورة توقيع المف

#define DLFILE_SIG "FDM Downloads  "

ويبدو ان بنية الملف downloads.his.sav هو

struct fsDLHistoryRecord
{
	fsString strFileName;		
	fsString strURL;		
	FILETIME dateAdded;			 
	FILETIME dateDownloaded;	
	UINT64 uFileSize;		
	fsString strSavedTo;		
	FILETIME dateRecordAdded;	
	fsString strComment;		

	fsDLHistoryRecord (fsDLHistoryRecord& r)
	{
		*this = r;
	}

	fsDLHistoryRecord& operator = (fsDLHistoryRecord& r)
	{
		strFileName = r.strFileName;
		strURL = r.strURL;
		strComment = r.strComment;
		dateAdded = r.dateAdded;
		dateDownloaded = r.dateDownloaded;
		uFileSize = r.uFileSize;
		strSavedTo = r.strSavedTo;
		dateRecordAdded = r.dateRecordAdded;

		return *this;
	}

	fsDLHistoryRecord () {}
};

بالرغم من مرور اكثر من عشر سنين من مروري السريع على لغة الـ C، فاني احاوي بما اوتيت، وانتظر مساعدة الزملاء ... بفارغ الصبر، ومن كان ف حاجة اخيه كان الله في حاجته

تحياتي

#6

هل الامر صعب لهذا الدرجة؟

ام ان هو سهل بدرجة من المخجل ان يجيب احد عليها؟

لقد حاولت قدر ما استعطت، وانتظر مشاركتكم ولو بارشاد يهديني لسبيل الحل ...

تحياتي

#7

وعليكــم السـلام ورحمة الله وبركاتـه..

أخي الكريم:

لو بتقرأ موضوعك او بالأحرى صلب الموضوع لا يتعلق بلغة ++C او C. و إن كان البرنامج اياه مكتوب او معمول بلغة ++C. و عـ الأقل مش بطريقة مباشرة

آسفة...

بقترح لو بتنقل موضوعك لقسم دراسة البرامج

هنا

او قسم المجتمع (خدمات و طلبات إضافية)

هنا

بلكي بتلاقي اهتمام اكتر من خبراء المصادر المفتوحة و خبراء البرامج و خبراء قواعد البيانات

بخصوص سؤالك:

بخصوص العلامة & موجودة قبل الـ argument بتأكد بأن البرنامج او هالجزء من البرنامج معمول بلغة ++C مش C. و هي عبارة عن إشارة المرجع. يعني القيمة الممرة لهذه الدالة هي مرجع تتأثر بها قيمة الكائن الممرر الحقيقية خارج الدالة.

آسفة مرة أخرى

موفق

Bye...

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

#8

اختي رغد ...

شكرا جزيلا لك ...

ساعمل بنصيحتكِ،

عندما طرحت الموضوع هنا، كان بودي قراءة الكود ... ولكن تبين اني نسيت الـ C ، وذلك اني مجرد هاوي للبرمجة، ولستُ بمحترف ...

تحياتي

مواضيع مشابهة