الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكله في القراءه من ملف نصي

مغلق
بدأه hazzoom في 30 أغسطس 2005 · 5 رد · 675 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

أنشأت FileStream و StreamReader للقراءة من ملف نصي وأريد التعامل مع جزء من النص أو سطر معين كالتالي :

        Dim hfs As IO.FileStream
        Dim hfsr As IO.StreamReader
        hfs = New FileStream(Application.StartupPath & "/filename", FileMode.Open)
        hfsr = New StreamReader(hfs)
        
            'read line and compare it with textbox
           While hfsr.Read
                If hfsr.ReadLine = TextBox1.Text Then MsgBox("found")
            End While

ولكن البرنامج يتوقف ولا يستجيب فرجاء ما هي المشكله وما حلها ؟؟؟

#2

ممكن توضح يعنى إيه يتوقف؟؟؟؟؟؟

يعنى بيطلع خطأ و يتوقف

وللا مفيش أخطاء بس مفيش نتيجة بتطلع

وللا بيهنج و يقف من غير لا خطأ وللا حاجة؟؟؟؟؟؟؟؟

أحمد صلاح

#3

عند التعامل مع الملفات النصية خاصة يستحسن أن تقوم بقراءة الملف كله (أو جزء كبير منه إذا كان الملف ضخماً) في string ثم التعامل معه من داخل الstring و هكذا يكون البرنامج أسرع بكثير

و الآن نحاول سوياً

Dim hfs As IO.FileStream
       Dim hfsr As IO.StreamReader
       hfs = New FileStream(Application.StartupPath & "/filename", FileMode.Open)
       hfsr = New StreamReader(hfs)
Dim fileData as String = hfsr.ReadToEnd()
int foundIndex = fileData.IndexOf(textBox1.Text)
if foundIndex > 0 Then MessageBox.Show("Found"); End IF

تم تعديل هذه المشاركة بواسطة bashmohandes في 30 أغسطس 2005 في 16:34

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#4

تمام يا محمد لكن بعد أن وجدت الجزء من النص الذي أبحث عنه أريد أن أتعامل معه سواء بالحذف أو الاستبدال ؟؟؟

وبالنسبه للجزء ده :

Dim filetxt As String, foundindex As Integer
filetxt = hfsr.ReadToEnd
foundindex = filetxt.IndexOf(TextBox1.Text)
If foundindex > 0 Then
MsgBox("found")
End If

فهو يعمل تماما ولكن عايز أفهم كيف يعمل :أنا استنتجت أنه يقوم باعطاء Index لكل حرف في النص ولكن كيف يبحث عن النص مقارنة بما في الـ textbox ???

تم تعديل هذه المشاركة بواسطة hazzoom في 31 أغسطس 2005 في 08:09

#5

أنا مش عارف انت متضايق ليه :lol: فالIndoxOf بحثت لك عن النص في الstring و أعطت لك الحرف الذي بدأت عنده الكلمة التي تبحث عنها

و إذا كنت تريد عمل أستبدال أو حذف

يمكنك استخدام Replace مكان IndexOf و اعطاءها كل من الكلمة التي تريد استبدالها و بماذا ستستبدلها.. و عند الحذف استبدلها بالString.Empty ثم أعد كتابة الملف

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#6

أنا مش متضايق ولا حاجه بس كنت عايز أفهم والحمد لله فهمت وشكرا لمتابعتك يا بشمهندس ,,,

هذا الموضوع مغلق.

مواضيع مشابهة