تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] قراءة ملف نصى
#11
(08-05-18, 07:17 PM)عبدالله الدوسري كتب : الفكرة كالتالي :
1 - الملف النصي الذي أرفقتة , المفترض أنك تستطيع تحديد الحقول , متى يبداء الحقل  ومتى ينتهي ، بمعنى أنك تستطيع إستخراج البيانات.
2 - تقوم بعمل برنامج مستقل + قاعدة بيانات بأي نوع ، ( اسم البرنامج مثلاً : Data Converter ) ( البرنامج يعمل بدون توقف ) هذا البرنامج مهمة الوحيدة هو إستخراج البيانات من الملف النصي وإدخالها في قاعدة البيانات ، وبعد كل عملية إستخراج للبيانات يتحقق من حجم الملف النصي كل ما يتغير حجم الملف يعني وجود بيانات جديدة ، دتخل في عملية إستخراج للبيانات من جديد ولكن تقوم بإدخال البيانات الجديدة فقط لقاعدة البيانات ، وهكذا ، ويظل البرنامج في عملية تحقق لحجم الملف النصي ، لنفرض كل 5 ثواني ( يتحقق من حجم الملف عملية لا تستغرق أجزاء أجزاء الثانية ) ولكن عند تغير الحجم تدخل في عملية إستخراج للبيانات ويتوقف التحقق من حجم الملف حتى تنتهي من إستخراج البيانات .
3 - الآن من خلال برنامجك أنت تقوم بالإتصال العادي على قاعدة البيانات بكل سهولة وسرعة ولا يؤثر على أداء البرنامج لديك ، لأن من يقوم بالمهمة هو برنامج ( Data Converter ) .
4 - أي معلومات جديدة على الملف النصي لن تظهر في برنامجك حتى يقوم البرنامج ( Data Converter ) بعملة.
5 - تحتاج أي معلومات جديدة للظهور لديك في البرنامج إلى نفس الوقت الازم لقراءة الملف النصي.
أتمنى وصلت الفكرة .

طريقة إستخراج البيانات تحتاج أن تبين لنا كيفية فصل الحقول لأنني قراة الملف ولم استطع معرفة الحقول ولا السجل , لم افهم شيء

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

بالنسبة للملف أنا أقرأه فعلا  و أضعه فى datatable  ثم أبدأ فى التعامل معه مباشرة و لك بدون برنامج وسيط
و لكن الأمر يتطلب حوالى 7 ثوانى لقراءة البيانات و ملء الجدول

و أعتقد أنه من الممكن أن يكون الوقت أقصر من ذلك
لأنه مع ذيادة السجلات عن ذلك ( و هذا قد يحدث ) سيزيد الوقت

عموما هذا هو الكود الذى أستعمله حاليا
أولا لقراءة الملف 

كود :
Using sr As New StreamReader("Data.txt")
          Dim Record(2228) As Char
          Do While sr.Peek <> -1
              Dim numChars As Integer = sr.Read(Record, 0, Record.Length)
              ' split Record into fields
          Dim F As String() = SplitString(Record_Index, Record, FieldLegnths)
Record_Index += 1
Loop
      End Using


و لقراءة الحقول 

كود :
Public Function SplitString(ByVal Txt As String, Lengths As Integer()) As String()
      Dim L As Integer = Lengths.Length - 1
      Dim Fields(L) As String
      Dim offset As Integer = 0
      For i As Integer = 0 To L
          Fields(i) = Txt.Substring(offset, Lengths(i))
          offset += Lengths(i)
      Next
      Return Fields
  End Function


طول السجل الواحد 2229 حرف و أطوال الحقول هى 

كود :
Dim FieldLegnths As Integer() = New Integer() {100, 100, 100, 100, 100, 100, 5, 95, 10, 1000, 100, 94, 6, 4, 100, 100, 8, 105, 2}


اتمنى أن أجد كود أسرع من هذا
الرد }}}
تم الشكر بواسطة:
#12
الملف له Header باسم كل شركة و بالتالي يجب ان تقرأ السطور شاملة Header 
الملف به تشفيير بسيط وعلي ما أظن لن تستطيع قرائته
السؤال من الشخص الذي صمم الملف؟ واضح ان الملف خاص بشركة ادوية
Retired
الرد }}}
تم الشكر بواسطة:
#13
(09-05-18, 01:35 AM)silverlight كتب : الملف له Header باسم كل شركة و بالتالي يجب ان تقرأ السطور شاملة Header 
الملف به تشفيير بسيط وعلي ما أظن لن تستطيع قرائته
السؤال من الشخص الذي صمم الملف؟ واضح ان الملف خاص بشركة ادوية

لا يوجد Header
وصف الملف صحيح و هو خاص بالادوية
و التشفير لا مشكله به لأننى أريد قراءة الملف كما هو و يمكننى فكه بسهولة لأن الكود لدى
الرد }}}
تم الشكر بواسطة:
#14
(09-05-18, 01:08 AM)mrnooo2000 كتب : رائع جدا 
و لكن كل هذا سيحتاج الى قراءة الملف النصى
و نعود لنفس النقطة أننا نريد طريقة سريعة لقراءة هذه البيانات

بالنسبة للملف أنا أقرأه فعلا  و أضعه فى datatable  ثم أبدأ فى التعامل معه مباشرة و لك بدون برنامج وسيط
و لكن الأمر يتطلب حوالى 7 ثوانى لقراءة البيانات و ملء الجدول

و أعتقد أنه من الممكن أن يكون الوقت أقصر من ذلك
لأنه مع ذيادة السجلات عن ذلك ( و هذا قد يحدث ) سيزيد الوقت


اتمنى أن أجد كود أسرع من هذا


أعتقد أن الفكرة لم تصل 
الفكرة أنك ستجد قاعدة بيانات جاهزة للإستخدام ( أنت لا تقوم بإنشائها في كل مرة ) ( مرة واحدة فقط ) ( البيانات الجديدة يتم إدخالها مرة واحدة فقط )
وليس متغير من نوع DataTable تقوم أنت بإنشائة وتعبئتة بالكامل في كل مرة 


لا يمكن تسريع ( عملية قراءة الملف النصي ) لتصبح نفس سرعة ( قراءة سجلات قاعدة البيانات ) 
ماذا لو أصبح حجم الملف النصي 500MB أو أصبح 1GB سيصبح الأداء سيئ جداً 


في برنامجك أنت لن تتعامل مع الملف النصي نهائياً ، كل ما عليك هو الإتصال بقاعدة البيانات والإستعلام 

حتى لو كان البرنامج الوسيط ( Data Converter ) يتطلب حوالى 7 ثوانى لقراءة الملف النصي 
الـ Data Converter سينقل كامل الملف النصي إلى قاعدة البيانات على شكل سجلات  ( في أول مرة فقط )
العمليات التي تليها ستكون فقط لنقل أي بيانات جديدة غير موجودة في قاعدة البيانات





هل هذا هو شكل البيانات في الملف النصي ؟
   




لاحظ الآن بعد إنشاء ملف نصي يحتوي على 15,000 سجل
النتيجة لدي تختلف كثيراً , لم تكن 7 ثواني بل أقل من نصف ثانية
جرب هذا المشروع لديك وارفق النتيجة
   

المشروع :

.rar   test.rar (الحجم : 206.99 ك ب / التحميلات : 42)
الرد }}}
تم الشكر بواسطة: sendbad100 , mrnooo2000
#15
اشكرك أخى 

هو نفس الكود الذى استخدمه لكن لا أعرف ما السبب فى تأخر التنفيذ لدى 

سأقوم بالمراجعة طالما أنه يعمل عندك بسرعة مناسبة فالمشكلة لدى
الرد }}}
تم الشكر بواسطة:
#16
(12-05-18, 10:08 AM)mrnooo2000 كتب : اشكرك أخى 

هو نفس الكود الذى استخدمه لكن لا أعرف ما السبب فى تأخر التنفيذ لدى 

سأقوم بالمراجعة طالما أنه يعمل عندك بسرعة مناسبة فالمشكلة لدى

يعتمد السرعة على حالة الجهاز وسرعة قراءة مع 01110101

لكن لا يمككنى افادتك فى شي غير فى حاجة واحدة فقط
هو عملية تحويل الملف الى قاعدة بيانات sql 
ومن ثم التعديل على البرنامج ليقوم بالتعامل قاعدة البيانات بدلاً من الملف

لا اعلم عمر الملف لديك لكن مع مرور الوقت اذا كنت تقراء الملف فى 7 ثوانى
مع الوقت قد تصل الى دقائق وده يعتمد عى عدد الاحرف بالملف ومساحته واستجابة الجهاز بين الملف والبرنامج

بالتوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  أستفسار عن قراءة الاسطر altoki939 6 111 أمس, 10:07 AM
آخر رد: altoki939
  مشكله فى جهاز قراءة الباركود خالد كامل1 1 350 03-11-23, 06:42 AM
آخر رد: Taha Okla
  [VB.NET] مشكله في قراءة ملصقات الباركود CoderMM 6 1,807 15-03-23, 06:27 PM
آخر رد: المتألق9
  قراءة البريد الالكتروني باستخدام الفيجوال بازيك صبري زينوبي 0 378 24-08-22, 05:47 PM
آخر رد: صبري زينوبي
  قراءة خلية من الداتا قريد بصيغة نص aftfm 0 681 21-08-22, 05:22 AM
آخر رد: aftfm
  قراءة البيانات من برنامج البصمة strongriseman 2 1,301 29-07-22, 02:23 AM
آخر رد: ابراهيم ايبو
Exclamation قراءة بيانات الصورة من قاعدة بيانات أكسس إلى أداة PictureBox أبو خالد الشكري 15 1,846 20-07-22, 05:40 PM
آخر رد: أبو خالد الشكري
  قراءة ملف txt اون لاين لو تكرمتم crazykinko 3 873 11-07-22, 11:53 AM
آخر رد: crazykinko
Lightbulb *○● قراءة نوع البيانات Data Type من قاعدة البيانات ●○* أبو خالد الشكري 10 1,738 29-06-22, 11:51 PM
آخر رد: أبو خالد الشكري
  [سؤال] طلب مساعدة في كود قراءة النص كلمة كلمة waelalmsry75 3 1,135 07-06-22, 09:00 AM
آخر رد: asmarsou

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


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