Что нового

Как узнать количество строк в документе

lcd1232

Новичок
Сообщения
13
Репутация
0
Как узнать сколько строк в файле .тхт?
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
lcd1232
Вот пример из справки, функция FileReadLine:
Код:
$file = FileOpen("test.txt", 0)

; Check if file opened for reading OK
If $file = -1 Then
    MsgBox(0, "Error", "Unable to open file.")
    Exit
EndIf

; Read in lines of text until the EOF is reached
While 1
    $line = FileReadLine($file)
    If @error = -1 Then ExitLoop
    MsgBox(0, "Line read:", $line)
Wend

FileClose($file)


Этот же пример, который я отредактировал:
Код:
$file = FileOpen("CreateTestFile.txt", 0)

; Check if file opened for reading OK
If $file = -1 Then
    MsgBox(0, "Error", "Unable to open file.")
    Exit
EndIf

Dim $i, $line

; Read in lines of text until the EOF is reached
While 1
    $line &= FileReadLine($file)
    If @error = -1 Then ExitLoop
	$i+=1
Wend

FileClose($file)

MsgBox(0, "Total lines", "Count: " & $i)

Найдите "десять отличий" называется! ;)
 
Автор
L

lcd1232

Новичок
Сообщения
13
Репутация
0
Все нашел
Код:
#include <file.au3>
$file = "1.txt"
MsgBox(0, "", "Строк в файле " & $file & ": " & _FileCountLines($file) & " штук")
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
lcd1232 [?]
Это хорошо! Однако в этой функции есть свой минус.
Её принцип подсчёта строк основан практически на том же прицепе что и приведённый мной пример из справки, только для того чтобы вам можно было воспользоваться ещё и содержимым файла, вам нужно будет его читать повторно.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,486
У меня есть своя версия на эту функцию (точнее две функций):


Код:
;1:
Func _FileCountLinesEx($sFile)
	If Not FileExists($sFile) Or StringInStr(FileGetAttrib($sFile), "D") Then Return SetError(1, 0, 0)
	
	Local $aLines = StringRegExp(FileRead($sFile), "(\n)", 3)
	If Not IsArray($aLines) Then Return SetError(2, 0, 0)
	
	Return UBound($aLines)+1
EndFunc

;2:
Func _FileCountLinesEx($sFilePath, $iCountLastLine=1)
	Local $iCountLines = 0
	Local $sFRead = FileRead($sFilePath)
	
	If @error = -1 Then Return SetError(1, 0, 0) ;The file is empty
	If @error <> 0 Then Return SetError(2, 0, 0) ;File not exists or other "Read" error.
	
	If Not $iCountLastLine Then $sFRead = StringStripWS($sFRead, 2)
	
	$sFRead = StringReplace($sFRead, @CRLF, "")
	$iCountLines += @extended
    
	$sFRead = StringReplace($sFRead, @CR, "")
	$iCountLines += @extended
	
	StringReplace($sFRead, @LF, "")
	$iCountLines += @extended
    
	Return $iCountLines + 1
EndFunc
 
Сообщения
15
Репутация
-1
Подсчитать колличество строк
#include <file.au3>
$file = "1.txt"
MsgBox(0, "", "Строк в файле " & $file & ": " & _FileCountLines($file) & " штук")



Подскажите пожалуйста как взять 2 файла 1.txt & 2.txt
умножить колличество строк друг на друга
и вывести это число в
Sleep(3600000)
 
Верх