منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : كيف أستورد بيانات ملف نصي إلى قاعدة بيانات أكسس؟
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
عندي ملف نصي به بيانات أريد استيراد بياناته لقاعدة بيانات أكسس
الملف مرتب بهذا الشكل الذي في الصورة
كيف استورده عن طريق الكود إلى قاعدة بيانات الأكسس؟

[صورة مرفقة: 970849953.png]
عن طريق قراءة سطور الملف و تحويلها الي DataTabel ثم حفظها في ملف الداتا بيز
الموضوع هذا به بعض الافكار التي قد تفيدك لكن الموضوع بالفيجوال بيسك دوت نت
الموضوع
بارك الله فيك أخي الكريم
عملت كلاس فيها الحقول التي سأستعملها لتخزين البيانات
وبعد ذلك استعملت هذا الكود الذي يقوم بتحديد الحقول باعتبار الفاصل المسافة الفارغة
كود :
//string [] delimiterChars = { "        " };
               //string[] entris = line.Split(delimiterChars, StringSplitOptions.RemoveEmptyEntries);

ثم ملء الحقول على اساسه

كود :
dataTitle newdatatitle = new dataTitle();
               newdatatitle.MameMedic = entris[0];
               newdatatitle.MameMedicSin = entris[1];
               newdatatitle.dose = entris[2];
               newdatatitle.boitCount = entris[3];
               newdatatitle.code = entris[4];
               newdatatitle.Prix = entris[5];

               pepol.Add(newdatatitle);

لكن المشكل الذي وقع لي ان المسافات في الملف متفاوتة فكان الحقل في كل سطر يأخذ قيمة مختلفة 
فما الحل
ربما تحتاج إلى
Trim();
تم الحل والحمد لله

كود :
newdatatitle.MameMedic = line.Substring(5, 50).Remove(line.Substring(5, 50).IndexOf(" "), 50 - line.Substring(5, 50).IndexOf(" "));




وذلك باسخدام (Substring) والتي تحدد لنا طول النص الذي نريد وتأخذ برامترين الأول رقم البداية والثاني النهاية

واستخدام الدالة  (Remove) والتي نحذف من خلالها الفراغ الموجود في الطول المأخوذ وهي تأخذ رقم بداية الحذف ورقم النهاية وفي المثال المدرج أعلاه نحدد في البرامتر الاول رقم نهاية السلسة المكتوبة بدون الفراغ (line.Substring(5, 50).IndexOf(" ")) وهو مكان بداية الحذف

وفي البرامتر الثاني (50 - line.Substring(5, 50).IndexOf) أخذنا طول السلسلة النصية كاملة (50) وأنقصنا منه الطول المكتوب فقط (line.Substring(5, 50).IndexOf)



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



هذا وأقول عن تجربة صغيرة في عالم البرمجة: أن الجد والبحث وعدم الملل هو السبيل للتقدم فيها فهذا الشيء بحكم كوني مبتدئ لي ثلاثة أيام أبحث فيه وتوصلت اليه بالبربط بين عدة مباحث فتكوين الحقول استفدتها مسبقا و حالا من فيديوا على اليوتيوب وتحديد طول النص والحذف منه استفدته من بحوث أخرى 

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


 

[صورة مرفقة: 113960606.jpg]