تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
قرائة سطر معين داخل ملف تكست vb6
#3
السلام عليكم...

* أعتذر من أخي Vb_Coder لأني كنت أجهز الرد قبل أن ألاحظ مشاركته :o و على أية حال "في الإعادة إفادة".

بالطبع يمكن ذلك.
اكتب الدالة التالية في القسم العام:
كود :
Private Function ReadLineOfFile(ByVal AFilePath As String, ByVal ALineIndex As Long) As String
    Dim FNum As Integer
    Dim Idx As Long
    Dim ALine As String
    Dim MsgTxt As String
    
    On Error GoTo ReadLineOfFile_Err
    
    ReadLineOfFile = ""
    If ALineIndex < 0 Then Err.Raise vbObjectError + 1001, "IO.ReadLineOfFile", "Negative line numbers not allowed"
    
    ALine = ""
    Idx = 0
    FNum = FreeFile
    Open AFilePath For Input As #FNum
    Do While Idx <= ALineIndex
        Line Input #FNum, ALine
        Idx = Idx + 1
    Loop
    Close #FNum
    ReadLineOfFile = ALine
    Exit Function
    
ReadLineOfFile_Err:
    Close #FNum
    MsgTxt = "حدث خطأ عند محاولة قراءة سطر من الملف." & vbCrLf & vbCrLf & "رسالة الخطأ:" & vbCrLf & Err.Description
    MsgBox MsgTxt, vbExclamation Or vbMsgBoxRight Or vbMsgBoxRtlReading
End Function

* حيث AFilePath هو مسار الملف، و ALineIndex هو رقم السطر.
* لاحظ أن الدالة تعتبر أن ترقيم الأسطر يبدأ بالصفر، أي أن السطر الأول رقمه 0، و السطر الثاني رقمه 1، و السطر الثالث رقمه 2، ... إلخ.

و لقراءة السطر المطلوب قم باستدعاء الدالة كالتالي مثلاً (السطر الخامس):
كود :
Private Sub Command1_Click()
    Text2.Text = ReadLineOfFile("E:\NameList.txt", 4)
End Sub

*** اقتراح:
إذا كنت ستستخدم الدالة بشكل متكرر لقراءة بعض الأسطر فربما يكون من الأسرع و الأسهل قراءة كامل أسطر الملف في مصفوفة ثم قراءة الأسطر من المصفوفة. لعمل ذلك اكتب الدالة التالية في القسم العام:
كود :
Private Function ReadAllLinesOfFile(ByVal AFilePath As String) As Variant
    Dim FNum As Integer
    Dim MsgTxt As String
    Dim ResultStr As String
    
    On Error GoTo ReadAllLinesOfFile_Err
    
    ReadAllLinesOfFile = Null
    
    FNum = FreeFile
    Open AFilePath For Input As #FNum
    ResultStr = Input(LOF(FNum), #FNum)
    Close #FNum
    ReadAllLinesOfFile = Split(ResultStr, vbCrLf)
    Exit Function
    
ReadAllLinesOfFile_Err:
    Close #FNum
    MsgTxt = "حدث خطأ عند محاولة القراءة من الملف." & vbCrLf & vbCrLf & "رسالة الخطأ:" & vbCrLf & Err.Description
    MsgBox MsgTxt, vbExclamation Or vbMsgBoxRight Or vbMsgBoxRtlReading
End Function

في هذه الحالة فإن الدالة ReadAllLinesOfFile تعيد قيمة من النوع Variant يحتوي على مصفوفة يبدأ ترقيم عناصرها بالصفر (الدالة تعيد Null في حالة حدوث خطأ).
و يتم استعمالها كالتالي:
كود :
Private Sub Command1_Click()
    Dim MyList As Variant
    MyList = ReadAllLinesOfFile("E:\NameList.txt")
    If Not IsNull(MyList) Then
        Text2.Text = MyList(3)
    End If
End Sub

أي نقوم بتعريف متغير لتخزين المصفوفة ثم نستدعي الدالة ثم نتأكد من أن القيمة المعادة ليست Null. لاحظ أننا بعد استدعاء الدالة استعملنا المصفوفة MyList للوصول إلى الأسطر.

نرجو الاستفادة و السلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
الرد }}}


الردود في هذا الموضوع
قرائة سطر معين داخل ملف تكست vb6 - بواسطة ناجي إبراهيم - 09-03-13, 05:07 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  مشكل في الاستعلام عن تاريخ معين في الكريستال ريبور amazonette 0 273 05-11-24, 04:38 PM
آخر رد: amazonette
  هل هنالك امكانية لطباعة النص داخل الداتا ريبورت بشكل عامودي mohammed_atallah 2 971 11-09-22, 06:00 PM
آخر رد: mohammed_atallah
  عرض الصور من قاعدة بيانات اكسس داخل الداتا ريبورت mohammed_atallah 0 737 04-09-22, 09:17 AM
آخر رد: mohammed_atallah
  كيف أجعل تكست في الكريستال ريبورت بصيغة strikeout amazonette 0 1,639 18-01-20, 03:09 PM
آخر رد: amazonette
  تقرير سجل معين في الكريستال ريبورت amazonette 2 2,130 10-12-19, 12:38 PM
آخر رد: amazonette
  كيفية البحث وعمل فلتر للبيانات داخل Mysql ؟ gedo 1 2,375 07-11-18, 05:53 PM
آخر رد: gedo
  الحذف من داخل DATAGRID باستخدام ADO دهشوش1 1 2,352 09-11-17, 04:20 AM
آخر رد: دهشوش1
  [نقاش] نسخ المفات في مجلد معين بالجهاز maher 1 1,969 09-03-17, 09:14 AM
آخر رد: Ashraf Elafify
  [ تم الحل ] : البحث بأوّل حرف داخل الفليكس جريد عبد العزيز البسكري 5 3,565 30-11-16, 01:54 AM
آخر رد: عبد العزيز البسكري
  كود عدد الاحرف المكرره فى تكست الحلوانى 2 2,546 20-10-16, 06:32 PM
آخر رد: الحلوانى

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


يقوم بقرائة الموضوع: