![]() |
Маленькая прога для автонумерации
Срочно требуется маленькая програмка/скриптик для перенумерации строк в текстовом файле по винду. Желательно досовский батчик или ВБ-скриптик.
Должна делать следующее: Читать входной текстовой файл и перенумеровывать по порядку все незакомментированные строчки. Пустых строк нет. Пример входного файла: Код:
# Коммент Код:
# Коммент |
Файл myren.cmd:
Код:
@echo off Код:
@cmd /v:on /c myren.cmd readme.txt |
Не совсем правильно отрабатывает, т.к. заменяет первое слово на порядкой номер строки и из
Цитата:
Цитата:
|
_Lynx_
В задаче сказано перенумеровать, т.е. изменить номер. Другими словами, строка всегда начинается либо с символа комментария, либо с номера, отделенных от остальной части строки пробелом. В твоем примере это не так - строка не содержит номера. В таком случае задача не может быть решена, поскольку никакая программа не сможет определить, является ли часть строки до первого пробела номером или значащим словом предложения - ведь таким словом может быть и число! Получается нечто из области искусственного интеллекта... :) Единственное, что можно сделать, это вставить проверку, что часть строки до первого пробела является числом - реализовать это достаточно сложно, но, думаю, можно. |
Так наверное будет правильнее
Цитата:
ну да ладно, главное работает |
Твои изменения в батнике не приведут к желаемому результату, поскольку условие
Код:
if %%i GEQ 0 ( Код:
@echo off Лучше проверку сделать вот тоак: Код:
@echo off |
Согласен.
Или брать первый символ Хотя этого всё равно будет маловато. Например Цитата:
|
Строк в файлe действително больше 100. А то бы я ручками все делал. Первое поле- можно стирать, там всегда будет цифра. Гораздо менее приятной неожиданностью оказалось что некоторые пишут комменты не отделяя от # - типа
Цитата:
Код:
for /f "tokens=1* delims= " %%i in (%1) do ( кстати, комманда Код:
setlocal ENABLEDELAYEDEXPANSION |
Часовой пояс GMT +4, время: 15:26. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.