Показать полную графическую версию : Подсчитать количество целых чисел в текстовом файле
vadmilionikus73
29-11-2015, 17:31
нужно создать командный файл. Подсчитать количество целых чисел в текстовом файле. Считать, что слова в файле записаны в формате ОДНО СЛОВО В СТРОКЕ. Слово – это целое число (состоящее из десятичных цифр) или последовательность букв латинского алфавита (начинающаяся с буквы). Имя файла задается первым параметром командного файла.
greg zakharov
01-12-2015, 10:06
Очевидно, далеко не все условия описаны, ибо число может быть знаковым - это раз; во-вторых, можно только догадываться относительно вещественных чисел:<# :
@echo off
for %%i in (powershell.exe) do if not exist "%%~$PATH:i" (
echo:PowerShell has not been found.&exit /b
)
powershell /nop /ex bypass^
"&{[ScriptBlock]::Create((gc '%~f0') -join [Char]10).Invoke(@(&{$args}%*))}"
exit /b
#>
if ($args.Length -ne 1) {
Write-Warning "only one file can be processed at a time."
break
}
([Regex]'[+-]?(?<!\.)\b\d+\b(?!\.\d+)').Matches((gc (cvpa $args[0]))).CountА теперь нарисуем какой-нибудь абра-кадабра файл:The first string. It contains 10.11, the float number.
The second string contains -13, it's the signed integer number.
The third string contains unsigned integer number - 10000.
PI number is 3,14159265358979 (separated with comma).
And last number is 13.Результатом работы командного файла выше будет 5. Почему? Все просто, знаки числа ПИ разделены запятой, регулярное выражение будет считать его за два целых числа.
Foreigner
01-12-2015, 11:29
greg zakharov, По правилам грамматики после знака препинания должен быть пробел.
vadmilionikus73, Смахивает на домашнее задание
@echo off
setlocal
for /f "tokens=*" %%i in ('findstr "^[0-9]$ ^[1-9][0-9]*$" %1') do set /a cnt+=1
echo %cnt%
greg zakharov
01-12-2015, 12:22
По правилам грамматики после знака препинания должен быть пробел.Исходя из правил и логики много чего должно быть, например, не должно быть платы за капремонт и надбавок за горячую воду при наличии установленных счетчиков на нее, в противном случае это - коммунизм. Ко всему прочему нельзя исключать человеческий фактор - очепятка и дыр и пыр, так что поиск целых чисел в текстовике без множественного уточнения не есть хорошо.
Foreigner
01-12-2015, 14:11
greg zakharov,
слова в файле записаны в формате ОДНО СЛОВО В СТРОКЕ
Слово – это целое число (состоящее из десятичных цифр) или последовательность букв латинского алфавита (начинающаяся с буквы)
И где здесь вообще запятые, точки и т.д.?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.