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

طريقة خزن الملفات او الجداول

بدأه lion iraq في 6 أغسطس 2011 · 8 رد · 1,010 مشاهدة · في قواعد بيانات Visual FoxPro
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورمضان مبارك

اخواني الاعزاء

هنالك اكثر من طريقه لخزن الجداول او الملفات او اخذ نسخ الاحتياطية وهو لازم العمل به لوجود عمليات التعديل او الحذف في البرامج

والمثال المرفق به اكثر من طريقة ويمكن لكل طريقة اكثر من فكره

والمثال المرفق هو كود او ايعازات غايه في السهوله ولايوجد تعقيدات واتمنى ايصال المعلومة

وانتظر من الاخوة الاعزاء النقاش وذكر الطرق الجديدة والمختلفة والافكار لغرض الافادة منا ولكم

تحياتي وصيام مقبول

save.zip

1
#2

أهلا أخي أسد وعوداً حميداً

جرب الكود التالي

ضعه في برنامج وجرب

SET DEFAULT TO JUSTPATH(SYS(16))
SET TALK OFF
LOCAL lcCurrentDir, lcSourceDir, lcTargetDir

STORE [] TO lcCurrentDir, lcSourceDir, lcTargetDir
lcCurrentDir =JUSTPATH(SYS(16))
*!* =================================================================
*1* اختيار المجلدات المصدر والهدف
WAIT WINDOW "حدد المجلد المصدر" NOWAIT NOCLEAR
lcSourceDir=SelectDirectory()
SET DEFAULT TO ( lcCurrentDir )
IF EMPTY(lcSourceDir) OR NOT DIRECTORY(lcSourceDir)
	WAIT CLEAR
	MESSAGEBOX("لم يتم اختيار ملفات المصدر",0+16+512,[..])
	RETURN .F.
ENDIF

WAIT WINDOW "حدد المجلد الهدف" NOWAIT NOCLEAR
lcTargetDir=SelectDirectory()
SET DEFAULT TO ( lcCurrentDir )
IF EMPTY(lcSourceDir) OR NOT DIRECTORY(lcSourceDir)
	WAIT CLEAR
	MESSAGEBOX("لم يتم اختيار المجلد الهدف",0+16+512,[..])
	RETURN .F.
ENDIF

WAIT CLEAR
IF BackUpNow(lcSourceDir, lcTargetDir)
	MESSAGEBOX("تمت عملية النسخ",0+64+512,[..])
ELSE
	MESSAGEBOX("خطأ أثناء عملية النسخ",0+16+512,[..])
ENDIF

*!* =================================================================

FUNCTION BackUpNow( tcSourceDir, tcTargetDir )
	IF VARTYPE(tcSourceDir)<>"C" OR EMPTY(tcSourceDir) OR VARTYPE(tcTargetDir)<>"C" OR EMPTY(tcTargetDir) ;
			OR NOT DIRECTORY(tcSourceDir) OR NOT DIRECTORY(tcTargetDir)
		RETURN .F.
	ENDIF

	LOCAL lcSource, lcTarget
	lcSource=tcSourceDir
	lcTarget=tcTargetDir+"BUP"+CHRTRAN(ALLTRIM(TTOC(DATETIME())), " /:","")
	MD &lcTarget

	IF NOT DIRECTORY( lcTarget )
		RETURN .F.
	ENDIF

	SET DEFAULT TO ( tcSourceDir )

	nFiles = ADIR(arFiles,"*.DBF")
	IF nFiles < 1
		RETURN .F.
	ENDIF

	FOR i = 1 TO nFiles
		cFile=JUSTSTEM(arFiles(i,1))
		IF NOT USED ( cFile )
			USE ( cFile ) SHARED IN 0
		ENDIF
		IF USED( cFile )
			SELECT ( cFile )
			COPY TO ADDBS(lcTarget)+cFile+".dbf"
			USE IN ( cFile )
		ENDIF
	NEXT
ENDFUNC

*!* =================================================================
FUNCTION SelectDirectory()
	RETURN ADDBS(GETDIR())
ENDFUNC
*!* =================================================================

طبعا هذا مجرد فكرة، ولكن يمكن تعديله واستخدامه في طرق أخرى

كنسخ نفس الملفات أو أو أو

مع التحية

أستغفر الله العظيم و أتوب إليه

#3

الاخوة اسد العراق و shadowz رمضان كريم يسلمو ايديكم جاري التجربة وإن شاء الله اذا في سؤال ما بتقصروا تحياتي :)

الحمد لله الذي هدانا

#4
Shadowz كتب:

أهلا أخي أسد وعوداً حميداً

جرب الكود التالي

ضعه في برنامج وجرب

SET DEFAULT TO JUSTPATH(SYS(16))
SET TALK OFF
LOCAL lcCurrentDir, lcSourceDir, lcTargetDir

STORE [] TO lcCurrentDir, lcSourceDir, lcTargetDir
lcCurrentDir =JUSTPATH(SYS(16))
*!* =================================================================
*1* اختيار المجلدات المصدر والهدف
WAIT WINDOW "حدد المجلد المصدر" NOWAIT NOCLEAR
lcSourceDir=SelectDirectory()
SET DEFAULT TO ( lcCurrentDir )
IF EMPTY(lcSourceDir) OR NOT DIRECTORY(lcSourceDir)
	WAIT CLEAR
	MESSAGEBOX("لم يتم اختيار ملفات المصدر",0+16+512,[..])
	RETURN .F.
ENDIF

WAIT WINDOW "حدد المجلد الهدف" NOWAIT NOCLEAR
lcTargetDir=SelectDirectory()
SET DEFAULT TO ( lcCurrentDir )
IF EMPTY(lcSourceDir) OR NOT DIRECTORY(lcSourceDir)
	WAIT CLEAR
	MESSAGEBOX("لم يتم اختيار المجلد الهدف",0+16+512,[..])
	RETURN .F.
ENDIF

WAIT CLEAR
IF BackUpNow(lcSourceDir, lcTargetDir)
	MESSAGEBOX("تمت عملية النسخ",0+64+512,[..])
ELSE
	MESSAGEBOX("خطأ أثناء عملية النسخ",0+16+512,[..])
ENDIF

*!* =================================================================

FUNCTION BackUpNow( tcSourceDir, tcTargetDir )
	IF VARTYPE(tcSourceDir)<>"C" OR EMPTY(tcSourceDir) OR VARTYPE(tcTargetDir)<>"C" OR EMPTY(tcTargetDir) ;
			OR NOT DIRECTORY(tcSourceDir) OR NOT DIRECTORY(tcTargetDir)
		RETURN .F.
	ENDIF

	LOCAL lcSource, lcTarget
	lcSource=tcSourceDir
	lcTarget=tcTargetDir+"BUP"+CHRTRAN(ALLTRIM(TTOC(DATETIME())), " /:","")
	MD &lcTarget

	IF NOT DIRECTORY( lcTarget )
		RETURN .F.
	ENDIF

	SET DEFAULT TO ( tcSourceDir )

	nFiles = ADIR(arFiles,"*.DBF")
	IF nFiles < 1
		RETURN .F.
	ENDIF

	FOR i = 1 TO nFiles
		cFile=JUSTSTEM(arFiles(i,1))
		IF NOT USED ( cFile )
			USE ( cFile ) SHARED IN 0
		ENDIF
		IF USED( cFile )
			SELECT ( cFile )
			COPY TO ADDBS(lcTarget)+cFile+".dbf"
			USE IN ( cFile )
		ENDIF
	NEXT
ENDFUNC

*!* =================================================================
FUNCTION SelectDirectory()
	RETURN ADDBS(GETDIR())
ENDFUNC
*!* =================================================================

طبعا هذا مجرد فكرة، ولكن يمكن تعديله واستخدامه في طرق أخرى

كنسخ نفس الملفات أو أو أو

مع التحية

شكرا اخي عبد الله ورمضان مبارك وعمل جميل ورائع

العصفور الصغير كتب:

الاخوة اسد العراق و shadowz رمضان كريم يسلمو ايديكم جاري التجربة وإن شاء الله اذا في سؤال ما بتقصروا تحياتي :)

رمضان كريم اخي العزيز شكرا لك وان شاء الله احنه بالخدمه

اخوتي الاعزاء الكود التالي هو لعمل نسخة احتياطية لملف معين بالتاريخ ومرة باليوم والافضل ان يوضع ضمن كوموند والطريقة الثانية من طريقة الاخ عبد الله المبدع وبالامكان تغيير او التعديل عليه لصالح المستخدم

 O=GETfile()
N=PUTFILE('الاسم',o)
****************************************
IF EMPTY(N)
MESSAGEBOX("لم يتم اختيار مكان الخزن",64,"NOTE",1000)
RETURN .F.
ELSE
SET DEFAULT TO JUSTPATH(N)
MD DTOS(DATE())
COPY FILE (O) TO DTOS(DATETIME())
CLOSE ALL
ENDIF

تحياتي للجميع ورمضان مبارك

backup new.zip

تم تعديل هذه المشاركة بواسطة lion iraq في 7 أغسطس 2011 في 10:52

2
#5

السلام عليكم

اخواني الاعزاء

lion iraq & shadowz

فكرة رائعة في تنفيذ عدة انماط من الخزن او استنساخ للملف

ادامكم الله من ابداع لـ ابداع

يسلمووووووو

766237957.gif
632675481.jpg
#6
moonlight10 كتب:

السلام عليكم

اخواني الاعزاء

lion iraq & shadowz

فكرة رائعة في تنفيذ عدة انماط من الخزن او استنساخ للملف

ادامكم الله من ابداع لـ ابداع

يسلمووووووو

766237957.gif

#8

اعذرني اسد عن اجابة سوالك

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