Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 12.07.2017
Сообщений: 177

Как сосчитать количество строк в текстовом файле и записать в другой файл?

10.01.2022, 12:54. Показов 6118. Ответов 51
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть в каталоге текстовые файлы.
Надо сосчитать кол-во строк в каждом файле и записать полученное число в другой текстовый файл с тем же именем, но конечно с другим расширением.
Спасибо.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.01.2022, 12:54
Ответы с готовыми решениями:

Определить в текстовом файле количество нечетных чисел и записать их в другой текстовый файл
Очень Простая задача

Посчитать количество строк в текстовом файле, записать в выходной файл самую длинную строку
Надо создать прогу , которая посчитает количество строк в текстовом файле. Запишет в выходной файл самую длинную строку.

Подсчитать количество букв "О" в текстовом файле, и записать это количество в другой текстовый файл
2)Записать программу которая считает количество букв "О" в текстовом файле, и записать это количество в другой текстовый файл.

51
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
14.01.2022, 02:57
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от FlasherX Посмотреть сообщение
Посмотрим
да все нормально, но есть проблема в другом месте и тут вероятно надо делать как предложил volodin661
если в файле одна строка - ссылка, то размер такого файла определяется по другому, но .Length его естественно дублирует, а строка-то в итоге все-таки одна, а в файле будет число, например: 96
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,822
14.01.2022, 09:13
Цитата Сообщение от alpap Посмотреть сообщение
да все нормально
А ты проверял? На UTF-16 .Length явно врёт. К тому же, если в конце есть пустые строки, то и на остальных пишет на одну меньше.
Цитата Сообщение от alpap Посмотреть сообщение
если в файле одна строка
Файл вообще пустым может быть. Это тоже должно быть учтёно как одна строка.
В общем, пока не годится.

Аdd:
Короче, вижу только аналог моего, другого не вижу (OpenRead так не умеет):
PowerShell
1
2
3
4
5
6
7
8
9
10
$FSO = New-Object -ComObject 'Scripting.FileSystemObject'
foreach ($f in (ls $pwd.path '*.txt' -rec)){
  $f = $f.FullName
  $oFile = $FSO.OpenTextFile($f)
  $oFile.Skip((gi $f).Length)
  $oFile.Line>"$($f -replace('...$',''))str"
  $oFile.Close()
}
echo "Скорость выполнения: $((get-date)-(gps -id $pid).StartTime)"
$host.ui.RawUI.ReadKey(6)
0
2807 / 505 / 121
Регистрация: 26.09.2020
Сообщений: 959
Записей в блоге: 5
14.01.2022, 09:38
Подкину для тестов
Program2.cs
C#
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
 
public class LinesCountInFiles
{
    public static IEnumerable<dynamic> FindFiles(string directory, string[] extensions, bool recurse = false, string filter = "*")
    {
        var searchOption = recurse ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly;
        IEnumerator<string> fileEnumerator;
 
        try { fileEnumerator = Directory.EnumerateFiles(directory, filter, searchOption).GetEnumerator(); }
        catch (UnauthorizedAccessException) { yield break; }
 
        while (true)
        {
            try { if (!fileEnumerator.MoveNext()) break; }
            catch (UnauthorizedAccessException) { continue; }
 
            if (extensions.Any(fileEnumerator.Current.ToLower().EndsWith))
            {
                yield return fileEnumerator.Current;
            }
        }
    }
 
    public static uint LinesCount(string fileName, int nextLine = '\n', int bufferSize = 10485760)
    {
        uint linesCount = 1;
 
        try
        {
            using (var streamReader = new StreamReader(new BufferedStream(File.OpenRead(fileName), bufferSize)))
            {
                while (!streamReader.EndOfStream)
                {
                    if (streamReader.Read() == nextLine) linesCount++;
                }
            }
        }
        catch (UnauthorizedAccessException) { }
        catch (IOException) { }
 
        return linesCount;
    }
}
Get-FileLinesCount.ps1
PowerShell
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
param (
    [Parameter(Mandatory)]
    [ValidateScript({Test-Path -LiteralPath $_ -PathType Container})]
    [string] $Directory,
 
    [ValidateNotNullOrEmpty()] [string[]] $Extensions = @(''),
 
    [switch] $Recurse
)
 
$ErrorActionPreference = 'Stop'
 
$CodeFileName = 'Program2.cs'
$CodePath = if ($PSScriptRoot -ne '') { $PSScriptRoot } else { $PWD }
 
try { $CodeFullName = Join-Path -Path $CodePath -ChildPath $CodeFileName }
catch { Write-Warning -Message $_ ; return }
 
try { $Path = Resolve-Path -LiteralPath $CodeFullName }
catch { Write-Warning -Message $_ ; return }
 
try { $Code = [string] (Get-Content -LiteralPath $Path -Raw) }
catch { Write-Warning -Message $_ ; return }
 
if (-not ('LinesCountInFiles' -as [type])) { 
    try { Add-Type -TypeDefinition $Code }
    catch { Write-Warning -Message $_ ; return }
}
 
try {
    [LinesCountInFiles]::FindFiles($Directory, $Extensions, $Recurse) |
        ForEach-Object -Process {
            [PSCustomObject] @{
                File  = [System.IO.FileInfo] $_
                Lines = [LinesCountInFiles]::LinesCount($_)
            }
        }
} catch {
    Write-Warning -Message $_
}
тема batников соблюдаем приличия
Windows Batch file
1
powershell -nologo -noprofile -command "& 'F:\Projects\PowerShell\4Tests\LinesCount\Get-FileLinesCount.ps1' -Directory F:\Source\GitHub -Extensions '.md', '.txt', '.cs', '.ps1' -Recurse"
во истину try, аминь catch
0
0 / 0 / 0
Регистрация: 12.07.2017
Сообщений: 177
16.01.2022, 14:09  [ТС]
Доброго времени суток!
Не думал, что на такие соревнования подтолкну...
Спасибо огромное! Очень помогли!

А если немного поменять задачу?
Не создавать файлы с теми же именами, а просто вести лог по некоторым типам файлов в текущем каталоге и подкаталогам. И записать в CSV-файл с заголовком, например:
папка;имя;тип;дата;кол-во записей;;;=СУММ(E:E);=СЧЁТЗ(E:E)-1
-=ДляЖурнала\ ;файл1 ;txt ;16.01.2022 13:44 ;1
-=ДляЖурнала\TEST\ ;фай2 ;csv ;16.01.2022 13:50 ;154
-=ДляЖурнала\TEST\ ;фай2 ;att ;16.01.2022 13:50 ;1
-=ДляЖурнала\TEST2\ ;фай3 ;csv ;16.01.2022 14:05 ;15400
-=ДляЖурнала\TEST2\ ;фай3 ;att ;16.01.2022 14:05 ;1
Спасибо.
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,822
16.01.2022, 14:55
ZorKon71, а где, собственно, результаты и выполнение моей просьбы?
0
0 / 0 / 0
Регистрация: 12.07.2017
Сообщений: 177
16.01.2022, 15:39  [ТС]
FlasherX, я же сразу в личку отправил...
Повторю сюда...
Вложения
Тип файла: rar Work_TXT_count3.rar (568 байт, 4 просмотров)
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,822
16.01.2022, 15:48
ZorKon71, мне в ЛС ничего от вас не поступало, зуб даю.
Собственно, вы не только в этом слукавили.
Цитата Сообщение от FlasherX Посмотреть сообщение
ZorKon71, очевидно, что сверху кода что-то лишнее добавили.
Цитата Сообщение от ZorKon71 Посмотреть сообщение
FlasherX, нет. Как указано, скопипастил.
Строки @Echo ON у меня в коде нет, она и есть лишняя, от неё и ошибка.
И батники в UTF-8 без ВОМ сохраняют только при определённой нужде. Тут логична классическая ANSI.
0
0 / 0 / 0
Регистрация: 12.07.2017
Сообщений: 177
16.01.2022, 16:09  [ТС]
FlasherX, да. Спасибо.
Сработало.
Только количество врёт...
По скорости, не сказал бы что быстрее чем вариант Garic73...
Но всё равно спасибо. Буду разбираться, как это работает... Интересно.

Ещё бы решение к изменённой задачи найти...
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,822
16.01.2022, 16:39
Цитата Сообщение от ZorKon71 Посмотреть сообщение
Только количество врёт...
Пример файла, с которым якобы врёт?
Цитата Сообщение от ZorKon71 Посмотреть сообщение
По скорости, не сказал бы что быстрее чем вариант Garic73.
Это тестировать надо, а не на глаз определять. Тут тоже написали про "одинаково", а оказалось разница почти в 14 раз. Сколько у вас файлов? И сколько времени мой показал?
И тот пример так точно по кол-ву врёт. Не говоря уже про кодировки.
0
0 / 0 / 0
Регистрация: 12.07.2017
Сообщений: 177
16.01.2022, 17:32  [ТС]
Цитата Сообщение от FlasherX Посмотреть сообщение
Пример файла, с которым якобы врёт?
В конце - пустая строка.
Цитата Сообщение от FlasherX Посмотреть сообщение
Это тестировать надо
Спасибо. Не надо...
И так помогли. Мне хватает.
Вот бы решить создание журнала без PowerShell, и было бы классно!

Добавлено через 1 минуту
Файлов разное кол-во, каждый день.
Всё равно получается быстрее и точнее, ем собирать вручную.
Спасибо.
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,822
16.01.2022, 17:54
Цитата Сообщение от ZorKon71 Посмотреть сообщение
В конце - пустая строка.
И что? Выше упоминался этот момент с любым числом пустых строк. В моих кодах всё подсчитывается без проблем в соответствии с номером последней строки в разных текстовых редакторах. Либо вы что-то путаете в постановке задачи, либо у вас неверные данные.

Цитата Сообщение от ZorKon71 Посмотреть сообщение
Вот бы решить создание журнала
Читайте пп. 5.16 правил.
0
0 / 0 / 0
Регистрация: 12.07.2017
Сообщений: 177
16.01.2022, 22:14  [ТС]
Цитата Сообщение от FlasherX Посмотреть сообщение
Читайте пп. 5.16 правил.
Извиняюсь исправился:
Как сосчитать количество строк в текстовом файле и записать в файл-журнал?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.01.2022, 22:14

Узнать количество строк в текстовом файле и записать количество в Label
Здравствуйте! Как знать количество строк в текстовом файле(.txt) и записать это количество в Label? Только не просто отобразить...

Найти в текстовом файле все отрицательные числа и записать их в другой файл
Всем добрый день!) нужна помощь в решении одной задачки...плиззз:) В текстовом файле FileIn записано несколько строк, содержащие...

В текстовом файле удалить последнюю строку результат записать в другой файл
#define _CRT_SECURE_NO_WARNINGS #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; #include &lt;windows.h&gt; #include...

Поиск одинаковых строк в текстовом файле и вывод дубликатов в другой текстовый файл
Добрый вечер. Нужна помощь знатоков Есть текстовый файл по пути D:\arxiv\rezult.txt с содержимым: Air robot MPEG-4-5min...

Удалить в текстовом файле все слова в скобках вместе со скобками, а результат записать в другой файл
Нужно написать процедуру: Удалить в текстовом файле все слова в скобках всесте со скобками , а результат записать в другой файл...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
52
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru