تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] تحميل بيانات من ملف نصي الى قائمة نصية او list
#1
السلام عليكم ورحمة الله وبركاته
 كيف لتحميل بيانات من ملف نصي الى قائمة نصية(او مصفوفة) او اداة list.
بارك الله فيكم جميعا

[مشروع] مثال تحويل الرقم الى سورة والعكس
اقصد او هل يمكن لاحد يجهز مشروع مثل الفكرة؟
اكيد يكون هو الجواب الاسرع للسؤال.
الرد }}}
تم الشكر بواسطة: sendbad100 , wared
#2
(26-06-19, 02:15 AM)سعود كتب : السلام عليكم ورحمة الله وبركاته
 كيف لتحميل بيانات من ملف نصي الى قائمة نصية(او مصفوفة) او اداة list.
بارك الله فيكم جميعا

[مشروع] مثال تحويل الرقم الى سورة والعكس
اقصد او هل يمكن لاحد يجهز مشروع مثل الفكرة؟
اكيد يكون هو الجواب الاسرع للسؤال.

(لست مبرمج Delphi)

تحويل مع بعض التصرف في كود (مثال تحويل الرقم الى سورة والعكس)

بعد إضافة TEdit وTButton و إثنان TLabel

تم إدراج أسماء سور القرآن الكريم في مصفوفة نصية داخل الكود

وهذا كود حدث Click الخاص بـ Button1
كود :
var // قسم التعريفات
   sour:   array of string; // مصفوفة نصية
   s:      string;  // متغير نصي
   v:      integer; // متغير رقمي للقيمة
   code:   integer; // متغير لكود الخطأ
   s_int:  integer; // رقم السورة
   s_name: string;  // إسم السورة

begin // قسم كود الحدث
    // تعبئة المصفوفة النصية بالبيانات
    sour := ['الفاتحة', 'البقرة', 'آل عمران', 'النساء', 'المائدة', 'الأنعام',
      'الأعراف', 'الأنفال', 'التوبة', 'يونس', 'هود', 'يوسف', 'الرعد',
      'إِبراهيم', 'الحجر', 'النحل', 'الإِسراء', 'الكهف', 'مريم', 'طه',
      'الأنبياء', 'الحج', 'المؤمنون', 'النور', 'الفرقان', 'الشعراء', 'النمل',
      'القصص', 'العنكبوت', 'الروم', 'لقمان', 'السجدة', 'الأحزاب', 'سبأ', 'فاطر',
      'يس', 'الصافات', 'ص', 'الزمر', 'غافر', 'فصلت', 'الشورى', 'الزخرف',
      'الدخان', 'الجاثية', 'الأحقاف', 'محمد', 'الفتح', 'الحجرات', 'ق',
      'الذاريات', 'الطور', 'النجم', 'القمر', 'الرحمن', 'الواقعة', 'الحديد',
      'المجادلة', 'الحشر', 'الممتحنة', 'الصف', 'الجمعة', 'المنافقون', 'التغابن',
      'الطلاق', 'التحريم', 'الملك', 'القلم', 'الحاقة', 'المعارج', 'نوح', 'الجن',
      'المزمل', 'المدثر', 'القيامة', 'الإِنسان', 'المرسلات', 'النبأ',
      'النازعات', 'عبس', 'التكوير', 'الانفطار', 'المطففين', 'الانشقاق',
      'البروج', 'الطارق', 'الأعلى', 'الغاشية', 'الفجر', 'البلد', 'الشمس',
      'الليل', 'الضحى', 'الشرح', 'التين', 'العلق', 'القدر', 'البينة', 'الزلزلة',
      'العاديات', 'القارعة', 'التكاثر', 'العصر', 'الهمزة', 'الفيل', 'قريش',
      'الماعون', 'الكوثر', 'الكافرون', 'النصر', 'المسد', 'الإِخلاص',
      'الفلق', 'الناس'];

   s := Trim(Edit1.Text); // Edit1 قراءة مربع النص

   // التأكد من وجود مدخلات
   If s.IsEmpty Then ShowMessage('أكتب نصا او رقما لتحويله');

   Val(s, v, code); // code تحويل النص المدخل إلى رقم ووضع كود الخطأ في

   If code = 0 Then begin // إن نجح تحويل النص إلى رقم

       if (v >= 1) and (v <= 114) then
       begin
           s_int := v; // رقم السورة
           s_name := sour[v - 1]; // إسم السورة
       end; // end if

   end
   else
   begin // وإلا كان المدخل نصا

       // المرور على المصفوفة لمطابقة المدخلات مع العناصر
       for v := 1 to 114 do
       begin
           // إذا تطابق العنصر مع المدخل
           if sour[v - 1].Equals(s) then
           begin
               s_name := sour[v - 1]; // إسم السورة
               s_int  := v; // رقم السورة
           end; // end if

       end; // end for
   end; // end else

   // Label1 عرض إسم السورة في
   Label1.Caption := 'إسم السورة: ' + s_name;

   // Label2 عرض رقم السورة في
   Label2.Caption := 'رقـم السورة: ' + s_int.ToString;

end;



قراءة ملف نصي كاملا وإظهاره في أي من الأدوات TLabel أوTEdit وTMemo
كود :
uses // متطلبات
   IOUtils;

var // تعريفات
     s: string; // تعريف متغير نصي
begin // كود

   // قراءة جميع النص من ملف نصي
   s := TFile.ReadAllText('D:\test.txt');

   Label1.Caption := s; // Label عنوان
   Edit1.text := s; // Edit مربع نص لسطر واحد
   Memo1.text := s; // TMemo مربع نص متعدد الأسطر
end;



قراءة جميع أسطر ملف نصي وإضافتها في أداة TListBox
كود :
uses // متطلبات
   Types;

var // تعريفات
   strLines: TStringDynArray; // تعريف مصفوفة نصية
   s: string; // تعريف متغير نصي

begin // كود

   // قراءة جميع الأسطر من ملف نصي ووضعها في مصفوفة نصية
   strLines := TFile.ReadAllLines('D:\test.txt');

   // إفراغ أداة الليست بوكس
   ListBox1.Clear;

   // حلقة المرور على جميع عناصر المصفوفة
   for s in strLines do
   begin
       ListBox1.Items.Add(Trim(s)); // ListBox إضافة العنصر في أداة
   end;

end;



قراءة نص من الأداة TMemo وكتابته في ملف نصي
كود :
var // تعريفات
     s: string;

begin // كود
   s := Memo1.text; // Memo1 قراءة النص من الأداة

   // الكتابة في ملف نصي مع تحديد نوع الترميز
   TFile.WriteAllText('D:\test.txt', s, TEncoding.UTF8);
end;



تم اعتماد أسلوب أحد المبرمجين القدامى في الشرح والترتيب
الرد }}}
تم الشكر بواسطة: sendbad100 , asemshahen5 , viv , حريف برمجة , سعود
#3
اضافة بسيطة اخ سعود ستفيدك على كل ماسبق لتحري السهولة فقط ولفتح المخيلة على امور وطرق اخرى

   

حيث قمنا باظهار اسم السورة من رقمها وحفظنا اسماء السور في اداة بدل من مصفوفة وكل هذا بسطر برمجي واحد

كود :
edit2.Text := ListBox1.Items[UpDown1.Position-1]

تعلم البرمجة السابقة المطروحة مطلوب ولكن معرفتك باسلوب ابسط ايضا مطلوب
هذا اسلوبي انا في البرمجة ، ابحث دائما عن السهولة وعن الراحة ، عندما تقود مرسيدس يفضل عدم معاملتها كلاندروفر 
قلت خليني احلبها  Big Grin

ايضا قراءة ملف نصي ووضعه في اداة List بسطرين برمجيين فقط
كود :
Memo1.Lines.LoadFromFile(ExtractFileDir(Application.ExeName)+ '/str.txt');
ListBox2.Items:=Memo1.Lines



.rar   ReadString.rar (الحجم : 59.31 ك ب / التحميلات : 8)




هناك حسب رايي طريقين للبرمجة
الطريق الطويل والطريق السهل والبسيط
والطرق البسيطة والسهلة بالصحراء تحتاج الى اشخاص جربوا سلك مسالك ودروب مختصرة

هناك من يسلك الطريق الطويل في اخفاء واظهار شئ ووضعه في مؤقت Timer مثال

كود :
Var int:Integer
begin

if int =1 then
begin
self.visbale := true;
int : =0;
end
else
begin
self.visbale := False;
int : =1;
end;


وهناك من يسلك الطريق والمدروب المختصرة بالصحراء

كود :
self.visbale :=not self.visable


العلم والالمام مهم (وقال الذي اوتي علم من الكتاب انا اتيك به قبل ان يرتد اليك طرفك)
الرد }}}
#4
ببساطة استخدم الدالة  loadfromfile  مثلا لتعبئة ليست بوكس من ملف نصي 

في حدث النقر على زر أو حدث انشاء فورم اكتب الكود الأتي :


كود :
procedure TForm1.FormCreate(Sender: TObject);
begin
  listbox1.Items.LoadFromFile('اكتب مسار الملف');
end;  
الرد }}}
تم الشكر بواسطة: sendbad100 , asemshahen5 , asemshahen5 , viv



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


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