/
n-dimens
/
pascalabcnet
Обзор
Документация
Войти
/
n-dimens
/
pascalabcnet
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
3.0
TestSamples/CompilationSamples/LinesCount.pas
55 строк
2 KB
Бондарев Иван
initial commit
14 май 2015, 22:35
14 май 2015, 22:35
e6e67c1
Код
Авторство
О чём код?
uses CRT, System.IO; var FilesCount,LinesCount:integer; Size: longint; function GetLinesCount(FileName: string):integer; var sr: StreamReader; begin sr := new StreamReader(FileName, System.Text.Encoding.GetEncoding(1251)); while not sr.EndOfStream do begin //if sr.ReadLine<>'' then sr.ReadLine; result := result + 1; end; sr.Close; end; function GetSize(FileName: string):longint; var sr: StreamReader; begin sr := new StreamReader(FileName, System.Text.Encoding.GetEncoding(1251)); result := sr.BaseStream.Length; sr.Close; end; procedure ScanDirectory(directory,mask: string); var Files: array of FileInfo; Dirs: array of DirectoryInfo; DI: DirectoryInfo; i: integer; begin DI := new DirectoryInfo(directory); Files := DI.GetFiles(mask); for i:=0 to Files.Length-1 do begin LinesCount := LinesCount + GetLinesCount(Files[i].FullName); FilesCount := FilesCount + 1; Size := Size + GetSize(Files[i].FullName); System.Console.CursorLeft := 0; Write(string.Format('Files: {0}, lines: {1}, size {2}kb, lineSize {3}', FilesCount, LinesCount, (Size/1024):2:3, Size/LinesCount:3:1),' '); end; Dirs := DI.GetDirectories; for i:=0 to Dirs.Length-1 do if directory.ToLower <> Dirs[i].FullName.ToLower then ScanDirectory(Dirs[i].FullName, mask); end; begin if CommandLineArgs.Length=0 then begin Writeln('linescount mask'); Exit; end; ScanDirectory(System.Environment.CurrentDirectory, CommandLineArgs[0]); Writeln; end.