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

عدد الاسطر في ملف نصي ؟

مغلق
بدأه VB.Net في 6 يونيو 2002 · 1 رد · 488 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كيف يمكن لي الحصول على عدد الاسطر في ملف نصي ؟

وبالتالي الاشارة لسطر محدد وعرضة في مربع نص بواسطة VB ؟

شكراً لكم

#2

ابحث عن دلالة السطر الجديد في الملف النصي وهي كما تعرف Chr(13)

وهذه احدى الطرق الجاهزة اتمنى ان تفيدك

Function lineCount(myInFile As String) As Long
    Dim lFileSize As Long, lChunk As Long
    Dim bFile() As Byte
    Dim lSize As Long
    Dim strText As String

    'the size of the chunk to read in. You can experiment
    'with this to see what works fastest.
    lSize = CLng(1024) * 10

    'size the array to the chunk size
    ReDim bFile(lSize - 1) As Byte

    Open myInFile For Binary As #1
    'get the file size
    lFileSize = LOF(1)

    'set the chunk number to 1
    lChunk = 1


    Do While (lSize * lChunk) < lFileSize
        'get the data from the in file
        Get #1, , bFile
        strText = StrConv(bFile, vbUnicode)
        'get the line count for this chunk
        lineCount = lineCount + searchText(strText)
        'increment the chunk count
        lChunk = lChunk + 1
    Loop

    'redim the array to the remaining size
    ReDim bFile((lFileSize - (lSize * (lChunk - 1))) - 1) As Byte
    'get the remaining data
    Get #1, , bFile
    strText = StrConv(bFile, vbUnicode)
    'get line count for this chunk
    lineCount = lineCount + searchText(strText)

    'close the file
    Close #1

    lineCount = lineCount + 1
End Function

Private Function searchText(strText As String) As Long
    Static blPossible As Boolean
    Dim lp1 As Long

    'if we have a possible line count


    If blPossible = True Then
        'if the fist charcter is chr(10) then we
        '     have a new line


        If Left$(strText, 1) = Chr(10) Then
            searchText = searchText + 1
        End If
    End If

    blPossible = False

    'loop through counting vbCrLf's
    lp1 = 1


    Do
        lp1 = InStr(lp1, strText, vbCrLf)


        If lp1 <> 0 Then
            searchText = searchText + 1
            lp1 = lp1 + 2
        End If
    Loop Until lp1 = 0

    'if the last character is a chr(13) then
    '     we may have a
    'new line, so we mark it as possible


    If Right$(strText, 1) = Chr(13) Then
        blPossible = True
    End If

End Function

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

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