فتح ثم استيراد عدة ملفات دو الامتداد (.csv) باستعمال OpenDialog
#1
السلام عليكم ورحمة الله و بركاته

استعمل الكود الثالي في فتح ملف واحد دو الامتداد (.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;    
بكاء العين يفضح وبكاء القلب يذبح والبكاء من خشيه الله يربح اللهم اجعلنا ممن يبكى من خشيتك

الرد
#2
في 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; 
الرد
#3
بارك الله فيك يأخي على الاهتمام

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

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

استعمل الدالفي 10.3.3 و شكرا
بكاء العين يفضح وبكاء القلب يذبح والبكاء من خشيه الله يربح اللهم اجعلنا ممن يبكى من خشيتك

الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم