المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : ماهي طريقة تفلايغ ملف ini


محمد بن أحمد أبو حذيفة
29-12-2017, 01:06 PM
أنا عندي مجموعة من المجلدات داخل التجمعية تظهر في ليست بوكس



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

إلى الجهاز مع ظهرو حوار يخبر بجود الملف أن كان موجود من قبل



يوجد عندي كود من طرف الأخ عبود حفظه الله لكنه يعتمد على ملف




INI


مشكلته انه يبقى دائما يتذكر اسم المجلد

مثلا أنا نسخ مجلد من التجمعية إلى الجهاز

ثم حذفته واعدت العملية يظهر حوار أن الملف موجود مسبقا

لكنه في الأصل غير موجود إنما بقي مخز في ملفINI

الكود بلغة .lua في المرفق


function addfile(Source,Destination,Copied,Total,FileCopied ,FileTotal)
Progress.SetText("Progress1", String.SplitPath(Source).Filename..String.SplitPat h(Source).Extension.." : ÌÇÑì äÓÎ ÇáãáÝ");
Progress.SetCurrentPos("Progress1", last_pos + 1 + (Copied*100/total_size));
end
MediaPlayer.Pause("Plugin1");
_Selection = ComboBox.GetSelected("ComboBox1");
if _Selection~= -1 then
total_size = 0;
Progress.SetVisible("Progress1", true);
Progress.SetText("Progress1", "åá ÊÑíÏ ÚãáíÉ äÓÎ ÌÏíÏÉ¿");
Progress.SetCurrentPos("Progress1", 0);
list_data = ComboBox.GetItemData("ComboBox1", _Selection);
if list_data~="" then
ddt = File.Find(list_data.."\\", "*.*", true, true, nil, nil);
if ddt~=nil then
for i=1, #ddt do
get_s = File.GetSize(ddt[i]);
total_size = total_size + get_s;
end
end
target_folder = Dialog.FolderBrowse("ÍÏÏ ÇáãÌáÏ ÇáãÑÇÏ ÇáÍÝÙ ÝíÉ", _DesktopFolder);
if target_folder ~= "" and target_folder ~= "CANCEL" then
ts = INIFile.GetValueNames(_SourceFolder.."\\Downloads.ini", "Folders");
if ts~=nil then
for i, s in pairs(ts)do
if s==String.SplitPath(list_data).Filename then
exist = Dialog.Message("ÅäÊÈå", "åÐÇ ÇáãÌáÏ ÇáãÍÏÏ Êã ÊÍãíáÉ ãÓÈÞÇ æíæÌÏ Ýì ÇáãÓÇÑ åá ÊÑíÏ ÊÍãíáÉ ãÑÉ ÃÎÑì ãÚ ÇáÅÓÊÈÏÇá ¿", MB_YESNO, MB_ICONINFORMATION, MB_DEFBUTTON1);
if exist==IDYES then
--DialogEx.Show("ALL", true, nil, nil);
if list_data~="" then
dxt = Folder.DoesExist(target_folder.."\\"..String.SplitPath(list_data).Filename);
if not dxt then
Folder.Create(target_folder.."\\"..String.SplitPath(list_data).Filename);
end
end
last_pos = Progress.GetCurrentPos("Progress1");
File.Copy(list_data.."\\*.*", target_folder.."\\"..String.SplitPath(list_data).Filename, true, true, false, true, addfile);
Dialog.TimedMessage("ãÚáæãÜÜÜÜÜÜÜÜÉ", "ÊãÊ ÚãáíÉ ÇáäÓÎ ÈäÌÇÍ", 2000, MB_ICONINFORMATION);
INIFile.SetValue(_SourceFolder.."\\Downloads.ini", "Folders", String.SplitPath(list_data).Filename, target_folder.."\\"..String.SplitPath(list_data).Filename);
Audio.Load(CHANNEL_BACKGROUND, "AutoPlay\\Audio\\Scuba.ogg", true, false);
end
break
elseif s~=String.SplitPath(list_data).Filename and i==#ts then
--DialogEx.Show("ALL", true, nil, nil);
if list_data~="" then
dxt = Folder.DoesExist(target_folder.."\\"..String.SplitPath(list_data).Filename);
if not dxt then
Folder.Create(target_folder.."\\"..String.SplitPath(list_data).Filename);
end
end
last_pos = Progress.GetCurrentPos("Progress1");
File.Copy(list_data.."\\*.*", target_folder.."\\"..String.SplitPath(list_data).Filename, true, true, false, true, addfile);
Dialog.TimedMessage("ãÚáæãÜÜÜÜÜÜÜÜÉ", "ÊãÊ ÚãáíÉ ÇáäÓÎ ÈäÌÇÍ", 2000, MB_ICONINFORMATION);
INIFile.SetValue(_SourceFolder.."\\Downloads.ini", "Folders", String.SplitPath(list_data).Filename, target_folder.."\\"..String.SplitPath(list_data).Filename);
Audio.Load(CHANNEL_BACKGROUND, "AutoPlay\\Audio\\Scuba.ogg", true, false);
end
end
else
--DialogEx.Show("ALL", true, nil, nil);
if list_data~="" then
dxt = Folder.DoesExist(target_folder.."\\"..String.SplitPath(list_data).Filename);
if not dxt then
Folder.Create(target_folder.."\\"..String.SplitPath(list_data).Filename);
end
end
last_pos = Progress.GetCurrentPos("Progress1");
File.Copy(list_data.."\\*.*", target_folder.."\\"..String.SplitPath(list_data).Filename, true, true, false, true, addfile);
Dialog.TimedMessage("ãÚáæãÜÜÜÜÜÜÜÜÉ", "ÊãÊ ÚãáíÉ ÇáäÓÎ ÈäÌÇÍ", 2000, MB_ICONINFORMATION);
INIFile.SetValue(_SourceFolder.."\\Downloads.ini", "Folders", String.SplitPath(list_data).Filename, target_folder.."\\"..String.SplitPath(list_data).Filename);
Audio.Load(CHANNEL_BACKGROUND, "AutoPlay\\Audio\\Scuba.ogg", true, false);
end
end
end
Progress.SetVisible("Progress1", false);
else
Dialog.Message("ÇäÊÈÉ", "íÌÈ ÊÍÏíÏ ÇáãÌáÏ ÇáãÑÇÏ ÍÝÙÉ ÃæáÇ", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
end

عبد الهادي بهاب
30-12-2017, 08:49 PM
اذن اذا كان الحدف عبر كود ايضا استعمل ini!file.delelet
اما اذا كان الحدف يدويا فيجب ان تضع كود في on show يضع ملفات المجلدات في ملف ini

عبود عبود
30-12-2017, 09:01 PM
ضع هذا الكود بعد التعديل فقد تم حذف الأسطر المسؤلة عن التسجيل بوضع علامة -- قبل السطر


--
function addfile(Source,Destination,Copied,Total,FileCopied ,FileTotal)
Progress.SetText("Progress1", String.SplitPath(Source).Filename..String.SplitPat h(Source).Extension.." : ÌÇÑì äÓÎ ÇáãáÝ");
Progress.SetCurrentPos("Progress1", last_pos + 1 + (Copied*100/total_size));
end
MediaPlayer.Pause("Plugin1");
_Selection = ComboBox.GetSelected("ComboBox1");
if _Selection~= -1 then
total_size = 0;
Progress.SetVisible("Progress1", true);
Progress.SetText("Progress1", "åá ÊÑíÏ ÚãáíÉ äÓÎ ÌÏíÏÉ¿");
Progress.SetCurrentPos("Progress1", 0);
list_data = ComboBox.GetItemData("ComboBox1", _Selection);
if list_data~="" then
ddt = File.Find(list_data.."\\", "*.*", true, true, nil, nil);
if ddt~=nil then
for i=1, #ddt do
get_s = File.GetSize(ddt[i]);
total_size = total_size + get_s;
end
end
target_folder = Dialog.FolderBrowse("ÍÏÏ ÇáãÌáÏ ÇáãÑÇÏ ÇáÍÝÙ ÝíÉ", _DesktopFolder);
if target_folder ~= "" and target_folder ~= "CANCEL" then
ts = INIFile.GetValueNames(_SourceFolder.."\\Downloads.ini", "Folders");
if ts~=nil then
for i, s in pairs(ts)do
if s==String.SplitPath(list_data).Filename then
exist = Dialog.Message("ÅäÊÈå", "åÐÇ ÇáãÌáÏ ÇáãÍÏÏ Êã ÊÍãíáÉ ãÓÈÞÇ æíæÌÏ Ýì ÇáãÓÇÑ åá ÊÑíÏ ÊÍãíáÉ ãÑÉ ÃÎÑì ãÚ ÇáÅÓÊÈÏÇá ¿", MB_YESNO, MB_ICONINFORMATION, MB_DEFBUTTON1);
if exist==IDYES then
--DialogEx.Show("ALL", true, nil, nil);
if list_data~="" then
dxt = Folder.DoesExist(target_folder.."\\"..String.SplitPath(list_data).Filename);
if not dxt then
Folder.Create(target_folder.."\\"..String.SplitPath(list_data).Filename);
end
end
last_pos = Progress.GetCurrentPos("Progress1");
File.Copy(list_data.."\\*.*", target_folder.."\\"..String.SplitPath(list_data).Filename, true, true, false, true, addfile);
Dialog.TimedMessage("ãÚáæãÜÜÜÜÜÜÜÜÉ", "ÊãÊ ÚãáíÉ ÇáäÓÎ ÈäÌÇÍ", 2000, MB_ICONINFORMATION);
--INIFile.SetValue(_SourceFolder.."\\Downloads.ini", "Folders", String.SplitPath(list_data).Filename, target_folder.."\\"..String.SplitPath(list_data).Filename);
Audio.Load(CHANNEL_BACKGROUND, "AutoPlay\\Audio\\Scuba.ogg", true, false);
end
break
elseif s~=String.SplitPath(list_data).Filename and i==#ts then
--DialogEx.Show("ALL", true, nil, nil);
if list_data~="" then
dxt = Folder.DoesExist(target_folder.."\\"..String.SplitPath(list_data).Filename);
if not dxt then
Folder.Create(target_folder.."\\"..String.SplitPath(list_data).Filename);
end
end
last_pos = Progress.GetCurrentPos("Progress1");
File.Copy(list_data.."\\*.*", target_folder.."\\"..String.SplitPath(list_data).Filename, true, true, false, true, addfile);
Dialog.TimedMessage("ãÚáæãÜÜÜÜÜÜÜÜÉ", "ÊãÊ ÚãáíÉ ÇáäÓÎ ÈäÌÇÍ", 2000, MB_ICONINFORMATION);
--INIFile.SetValue(_SourceFolder.."\\Downloads.ini", "Folders", String.SplitPath(list_data).Filename, target_folder.."\\"..String.SplitPath(list_data).Filename);
Audio.Load(CHANNEL_BACKGROUND, "AutoPlay\\Audio\\Scuba.ogg", true, false);
end
end
else
--DialogEx.Show("ALL", true, nil, nil);
if list_data~="" then
dxt = Folder.DoesExist(target_folder.."\\"..String.SplitPath(list_data).Filename);
if not dxt then
Folder.Create(target_folder.."\\"..String.SplitPath(list_data).Filename);
end
end
last_pos = Progress.GetCurrentPos("Progress1");
File.Copy(list_data.."\\*.*", target_folder.."\\"..String.SplitPath(list_data).Filename, true, true, false, true, addfile);
Dialog.TimedMessage("ãÚáæãÜÜÜÜÜÜÜÜÉ", "ÊãÊ ÚãáíÉ ÇáäÓÎ ÈäÌÇÍ", 2000, MB_ICONINFORMATION);
--INIFile.SetValue(_SourceFolder.."\\Downloads.ini", "Folders", String.SplitPath(list_data).Filename, target_folder.."\\"..String.SplitPath(list_data).Filename);
Audio.Load(CHANNEL_BACKGROUND, "AutoPlay\\Audio\\Scuba.ogg", true, false);
end
end
end
Progress.SetVisible("Progress1", false);
else
Dialog.Message("ÇäÊÈÉ", "íÌÈ ÊÍÏíÏ ÇáãÌáÏ ÇáãÑÇÏ ÍÝÙÉ ÃæáÇ", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
end


وإحذف ملف Downloads.ini هتلاقية بجوار الملف التنفيذى بتاع المشروع ...... ويكفى بدون تعديل فى باقى الأكواد علشان متتلخبطشى :abc_065:

بعد وضع الكود وحذف ملف الأي إن أى جرب هتلاقى المشكلة إتحلت :abc_138:

محمد بن أحمد أبو حذيفة
30-12-2017, 10:05 PM
اذن اذا كان الحدف عبر كود ايضا استعمل ini!file.delelet
اما اذا كان الحدف يدويا فيجب ان تضع كود في on show يضع ملفات المجلدات في ملف ini

بارك الله فيك
لكن لم افهم ما تريد قوله

محمد بن أحمد أبو حذيفة
30-12-2017, 10:07 PM
ضع هذا الكود بعد التعديل فقد تم حذف الأسطر المسؤلة عن التسجيل بوضع علامة -- قبل السطر


--
function addfile(source,destination,copied,total,filecopied ,filetotal)
progress.settext("progress1", string.splitpath(source).filename..string.splitpat h(source).extension.." : ÌÇÑì äÓÎ ÇáãáÝ");
progress.setcurrentpos("progress1", last_pos + 1 + (copied*100/total_size));
end
mediaplayer.pause("plugin1");
_selection = combobox.getselected("combobox1");
if _selection~= -1 then
total_size = 0;
progress.setvisible("progress1", true);
progress.settext("progress1", "åá ÊÑíÏ ÚãáíÉ äÓÎ ÌÏíÏÉ¿");
progress.setcurrentpos("progress1", 0);
list_data = combobox.getitemdata("combobox1", _selection);
if list_data~="" then
ddt = file.find(list_data.."\\", "*.*", true, true, nil, nil);
if ddt~=nil then
for i=1, #ddt do
get_s = file.getsize(ddt[i]);
total_size = total_size + get_s;
end
end
target_folder = dialog.folderbrowse("ÍÏÏ ÇáãÌáÏ ÇáãÑÇÏ ÇáÍÝÙ ÝíÉ", _desktopfolder);
if target_folder ~= "" and target_folder ~= "cancel" then
ts = inifile.getvaluenames(_sourcefolder.."\\downloads.ini", "folders");
if ts~=nil then
for i, s in pairs(ts)do
if s==string.splitpath(list_data).filename then
exist = dialog.message("ÅäÊÈå", "åÐÇ ÇáãÌáÏ ÇáãÍÏÏ Êã ÊÍãíáÉ ãÓÈÞÇ æíæÌÏ Ýì ÇáãÓÇÑ åá ÊÑíÏ ÊÍãíáÉ ãÑÉ ÃÎÑì ãÚ ÇáÅÓÊÈÏÇá ¿", mb_yesno, mb_iconinformation, mb_defbutton1);
if exist==idyes then
--dialogex.show("all", true, nil, nil);
if list_data~="" then
dxt = folder.doesexist(target_folder.."\\"..string.splitpath(list_data).filename);
if not dxt then
folder.create(target_folder.."\\"..string.splitpath(list_data).filename);
end
end
last_pos = progress.getcurrentpos("progress1");
file.copy(list_data.."\\*.*", target_folder.."\\"..string.splitpath(list_data).filename, true, true, false, true, addfile);
dialog.timedmessage("ãÚáæãÜÜÜÜÜÜÜÜÉ", "ÊãÊ ÚãáíÉ ÇáäÓÎ ÈäÌÇÍ", 2000, mb_iconinformation);
--inifile.setvalue(_sourcefolder.."\\downloads.ini", "folders", string.splitpath(list_data).filename, target_folder.."\\"..string.splitpath(list_data).filename);
audio.load(channel_background, "autoplay\\audio\\scuba.ogg", true, false);
end
break
elseif s~=string.splitpath(list_data).filename and i==#ts then
--dialogex.show("all", true, nil, nil);
if list_data~="" then
dxt = folder.doesexist(target_folder.."\\"..string.splitpath(list_data).filename);
if not dxt then
folder.create(target_folder.."\\"..string.splitpath(list_data).filename);
end
end
last_pos = progress.getcurrentpos("progress1");
file.copy(list_data.."\\*.*", target_folder.."\\"..string.splitpath(list_data).filename, true, true, false, true, addfile);
dialog.timedmessage("ãÚáæãÜÜÜÜÜÜÜÜÉ", "ÊãÊ ÚãáíÉ ÇáäÓÎ ÈäÌÇÍ", 2000, mb_iconinformation);
--inifile.setvalue(_sourcefolder.."\\downloads.ini", "folders", string.splitpath(list_data).filename, target_folder.."\\"..string.splitpath(list_data).filename);
audio.load(channel_background, "autoplay\\audio\\scuba.ogg", true, false);
end
end
else
--dialogex.show("all", true, nil, nil);
if list_data~="" then
dxt = folder.doesexist(target_folder.."\\"..string.splitpath(list_data).filename);
if not dxt then
folder.create(target_folder.."\\"..string.splitpath(list_data).filename);
end
end
last_pos = progress.getcurrentpos("progress1");
file.copy(list_data.."\\*.*", target_folder.."\\"..string.splitpath(list_data).filename, true, true, false, true, addfile);
dialog.timedmessage("ãÚáæãÜÜÜÜÜÜÜÜÉ", "ÊãÊ ÚãáíÉ ÇáäÓÎ ÈäÌÇÍ", 2000, mb_iconinformation);
--inifile.setvalue(_sourcefolder.."\\downloads.ini", "folders", string.splitpath(list_data).filename, target_folder.."\\"..string.splitpath(list_data).filename);
audio.load(channel_background, "autoplay\\audio\\scuba.ogg", true, false);
end
end
end
progress.setvisible("progress1", false);
else
dialog.message("ÇäÊÈÉ", "íÌÈ ÊÍÏíÏ ÇáãÌáÏ ÇáãÑÇÏ ÍÝÙÉ ÃæáÇ", mb_ok, mb_iconinformation, mb_defbutton1);
end
وإحذف ملف downloads.ini هتلاقية بجوار الملف التنفيذى بتاع المشروع ...... ويكفى بدون تعديل فى باقى الأكواد علشان متتلخبطشى :abc_065:

بعد وضع الكود وحذف ملف الأي إن أى جرب هتلاقى المشكلة إتحلت :abc_138:

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

عبود عبود
30-12-2017, 10:22 PM
مش فاهم قصدك
يعنى قبل التعديل لم يكن يعمل ؟

هتقولى أنا بعد ما حملت الملف نقلتة مكان تانى أو حذفتة :abc_065: هقولك يا عم أنا إستخدمت عملية التحقق من إجراء عملية التحميل التى تمت سابقا وحفظتها بملف ini
وكان من الممكن عدم إستعمل هذه الطريقة والتعويض عنها بدالة تحقق من وجود الملف أو المجلد المحمل سابقا وهى الدالة File.DoesExist للتحقق من وجود الملفات بالمسار أو الدالة Folder.DoesExist :abc_012: هذه إشارة لمن يريد مساعدتك يقوم بإستعمالها بدلا من الإستعانة بملف الــ ini أو دمجها بعدها على سبيل التحقق معها

أتمنى لك التوفيق إن شاء الله

محمد بن أحمد أبو حذيفة
30-12-2017, 11:03 PM
مش فاهم قصدك
يعنى قبل التعديل لم يكن يعمل ؟

هتقولى أنا بعد ما حملت الملف نقلتة مكان تانى أو حذفتة :abc_065: هقولك يا عم أنا إستخدمت عملية التحقق من إجراء عملية التحميل التى تمت سابقا وحفظتها بملف ini
وكان من الممكن عدم إستعمل هذه الطريقة والتعويض عنها بدالة تحقق من وجود الملف أو المجلد المحمل سابقا وهى الدالة File.DoesExist للتحقق من وجود الملفات بالمسار أو الدالة Folder.DoesExist :abc_012: هذه إشارة لمن يريد مساعدتك يقوم بإستعمالها بدلا من الإستعانة بملف الــ ini أو دمجها بعدها على سبيل التحقق معها

أتمنى لك التوفيق إن شاء الله


بارك الله فيك
قبل التعديل
https://d.top4top.net/p_729d65401.gif

المهم قبل التعديل يعمل بشكل جيد لكن
عندما اضغط على تحميل مجلد رئيسي لاحفظه على سطح المكتب ثم احذفه واعيد العملية مع نفس الملف يقول ان موجود

بعد التعديل لا يتذكر وجود الملف وانما ينسخ فوقه ان كان موجود

بالنسبة Folder.DoesExist

فيه موجد في الكود

sd = Folder.DoesExist(destination.."\\"..String.SplitPath(dt).Filename);

منار بربرة
04-12-2018, 01:44 PM
مشكووور كتير

بيانكى
23-12-2020, 11:16 PM
مشكوووووووووووووووووووووو ووووووووووووووووووووووور