delphi4arab منتديات دلفي للعرب
فتح ثم استيراد عدة ملفات دو الامتداد (.csv) باستعمال OpenDialog - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : فتح ثم استيراد عدة ملفات دو الامتداد (.csv) باستعمال OpenDialog (/showthread.php?tid=11044)



فتح ثم استيراد عدة ملفات دو الامتداد (.csv) باستعمال OpenDialog - AbdouProg - 17-09-2020

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

استعمل الكود الثالي في فتح ملف واحد دو الامتداد (.csv) و استعمل TFDBacheMove في استيراد الملف مع العلم ان الكود يعمل مع ملف واحد
 كل ما أريده و اثمناه من الزملاء هو مساعدتي في كيفية تغير الكود من اجل فتح العديد من الملفات بإستعمال OpenDialog1 واحد و من ثما استيراد الملفات
هل نقوم باستبدال edit1 ب mémo  او هل هناك طريقة اخرى  

جزاكم الله ألف خير 

الكود المستعمل في فتح الملف

كود :
var   F: TextFile;   Nom: string;   begin   Edit1.Clear;   OpenDialog1.FileName := '';   OpenDialog1.Title := 'Ouvrir le Fichier adresse.csv';   OpenDialog1.InitialDir := 'D:\';   OpenDialog1.Filter := 'Fichier CSV (*.csv)|*.csv|Tous les fichiers (*.*)|*.*';   if OpenDialog1.Execute() then     if OpenDialog1.FileName <> Null then     begin       if OpenDialog1.FileName <> 'D:\adresse.csv' then         ShowMessage('nom du fichier erroné')       else       Nom := OpenDialog1.FileName;       AssignFile(F, Nom);       Edit1.Text := Nom;     end;


الكود المستعمل في إستيراد الملف

كود :
  Edit1.Clear;     DM.TextReader1.FileName := Nom;     DM.TextReader1.DataDef.WithFieldNames := True;     DM.ImportCSV.Execute;    



RE: فتح ثم استيراد عدة ملفات دو الامتداد (.csv) باستعمال OpenDialog - sofiane201 - 17-09-2020

في options التابعة لTOpenDialog, يوجد خيار multiselect, حدّده حتى تتمكن من اختيار عدة ملفات, بعدها عندما تختار ستجد اسماءهم في OpenDialog.Files والتي هي من نوع TStrings, بعدها مررهم واحدا تلو الاخر الى TFDBatchMoveTextReader عبر حلقة مثل:
PHP كود :
procedure ...
var
fileName: string;
begin
  
if OpenDialog.Execute then
  begin
    
for fileName in OpenDialog.Files do
    begin
      DM
.TextReader1.FileName:= fileName;
      //...
      //...
    end;
  end;
end; 
 اذا كنت تستعمل اصدار دلفي حديث, يمكن استخدام inline variable:
PHP كود :
  if OpenDialog.Execute then
  begin
    
for var fileName in OpenDialog.Files do
    begin
      DM
.TextReader1.FileName:= fileName;
      //...
      //...
    end;
  end; 



RE: فتح ثم استيراد عدة ملفات دو الامتداد (.csv) باستعمال OpenDialog - AbdouProg - 17-09-2020

بارك الله فيك يأخي على الاهتمام

لم افهم الكود جيدا  اما فيما يخص Multiselect كانت في السابق true

إضافة الى ما سبق دكره في الطرح الاول اعلمك اخي انني استعمل 2 button  الاول لفتح الملف و الثاني للاستيراد

استعمل الدالفي 10.3.3 و شكرا