powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как узнать количество строк в File.txt
11 сообщений из 11, страница 1 из 1
Как узнать количество строк в File.txt
    #35301490
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем, здравствуйте !!!

Переди обработки текстового файла , нужно узнать его количество
строк, для включения ProgressBar -a

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
MousePointer = vbHourglass
     Open "" & dlg1.FileName & "" For Input As # 1 
     While Not EOF( 1 )
     Line Input # 1 , sTemp 
     .
     .
    Wend
 Close # 1 
 MousePointer = vbDefault

Спасибо
...
Рейтинг: 0 / 0
Как узнать количество строк в File.txt
    #35301521
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если знаете длину строки, то делите размер файла на длину строку.
Если не знаете, можно :
1) посчитать строки точно и выдать значение ( это лишняя операция на чтение файла)
2 если известен примерный размер ( например от 30 до 50 знаков), то размер файла делим на 50.
А последней операцией в обработчике ставим pb1.value=pb1.maxvalue.
...
Рейтинг: 0 / 0
Как узнать количество строк в File.txt
    #35301550
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Считать размер файла в байтах ??
...
Рейтинг: 0 / 0
Как узнать количество строк в File.txt
    #35301556
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, в байтах . И к длине строки не забудьте добавить код для переноса строки.
...
Рейтинг: 0 / 0
Как узнать количество строк в File.txt
    #35301577
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо !
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
  Private Sub Command1_Click()
Dim fsObj, filePointer, myFile, Size
dlg1.ShowOpen

myFile = dlg1.FileName
Set fsObj = CreateObject("Scripting.FileSystemObject")
If fsObj.FileExists(myFile) = True Then
    Set filePointer = fsObj.GetFile(myFile)
     Size = filePointer.Size /  90 
     MsgBox Size
Else
    MsgBox "Файл " & UCase(myFile) & " не найден."
End If
End Sub
...
Рейтинг: 0 / 0
Как узнать количество строк в File.txt
    #35301594
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
Dim fsObj, filePointer, myFile, Size

Это плохо. Надо указывать типы данных.
авторdlg1.ShowOpen
У вас стоит проверка на случай нажатия кнопки ESC ?
авторIf fsObj.FileExists(myFile) = True Then
Это можно заменить на
If fsObj.FileExists(myFile) Then

...
Рейтинг: 0 / 0
Как узнать количество строк в File.txt
    #35301655
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понял.
Еще.
pbr.Max = Size у меня получается невсегда целое число
и тогда получаю ошибочку
Invalid property value
как здесь выходить из ситуации ?
...
Рейтинг: 0 / 0
Как узнать количество строк в File.txt
    #35301669
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeriuПонял.
Еще.

Не, не понял.
Я же написал, что надо ясно указывать тип данных.
Dim Size as long .
Еще слово Size лучше не использовать.
Так как во многих объектах оно уже зарезервировано. И непонятно что за сайз такой.
Напишите
Dim FileByLineSize as Long
...
Рейтинг: 0 / 0
Как узнать количество строк в File.txt
    #35301698
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, что-то действительно не клеется.
Размер файла деленный на количество символов в строке, у меня получается разность
где-то в 5000, и , естественно ошибка ....

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
Private Sub cmdStation_Click()
Dim sTemp As String
Dim MString$
Dim i As Integer
Dim myFile As String
Dim fsObj As Object
Dim FileByLineSize As Long

On Error GoTo Error
    dlg1.ShowOpen

myFile = dlg1.FileName
Set fsObj = CreateObject("Scripting.FileSystemObject")
If fsObj.FileExists(myFile) = True Then
     Set filePointer = fsObj.GetFile(myFile)
     FileByLineSize = filePointer.Size /  90 
   Else
    MsgBox "Fisierul " & UCase(myFile) & " nu exista ..."
End If
        i =  0 
        pbr.Min =  0 
        pbr.Max = FileByLineSize
     
MousePointer = vbHourglass
Open "" & dlg1.FileName & "" For Input As # 1 
While Not EOF( 1 )
Line Input # 1 , sTemp
        i = i +  1 
        pbr.Value = i


Nod = "^TelLocal" & "(" & """" & Piece(sTemp, vbTab,  4 ) & """" & "," & """" & Piece(sTemp, vbTab,  1 ) & """" & "," & """" & Piece(sTemp, vbTab,  2 ) & """" & ")"
Sod = Piece(sTemp, vbTab,  5 ) & "/" & Piece(sTemp, vbTab,  6 ) & "/" & Piece(sTemp, vbTab,  7 ) & "/" & Piece(sTemp, vbTab,  8 ) & "/" & Piece(sTemp, vbTab,  9 ) & "/" & Piece(sTemp, vbTab,  10 ) & "/" & Piece(sTemp, vbTab,  11 )
If sTemp = "" Then
MousePointer = vbDefault
Exit Sub
End If
m.Do "Sav^Desc", Nod, Sod

Wend
 Close # 1 
pbr.Refresh
MousePointer = vbDefault

Exit Sub
Error:
MousePointer = vbDefault
MsgBox ("Error: " & Err.Description)

End Sub 
...
Рейтинг: 0 / 0
Как узнать количество строк в File.txt
    #35301847
Фотография ДмиДми
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Размер - 100%.
По мере считывания суммируем длины строк с учётом кодировки (одно- или двухбайтовая) и длины ограничителей строки (только CR или CRLF) - вот и данные для прогресс-бара.

Зачем размер файла на что-то делить, не понимаю. Может быть, объясните?
...
Рейтинг: 0 / 0
Как узнать количество строк в File.txt
    #35301968
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так для начало нужно указывать

Код: plaintext
1.
2.
        pbr.Min =  0 
        pbr.Max = FileByLineSize
     

т.е. максимально до куда заполнится ProgressBar !

А я и считываю строку потом добавляю к счетчику 1 ...
Код: plaintext
1.
2.
3.
4.
i= 0 
        .
        .
        i = i +  1 
        pbr.Value = i
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как узнать количество строк в File.txt
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]