Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
1 / 1 / 0
Регистрация: 31.03.2014
Сообщений: 32

Выделить из текстового файла n-ую строку (использовать find /n и for)

08.04.2014, 21:54. Показов 2645. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создать скрипт: Выделить из текстового файла n-ую строку (использовать find /n и for)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.04.2014, 21:54
Ответы с готовыми решениями:

Выделить из текстового файла n-ую строку (использовать find /n и for)
Выделить из текстового файла n-ую строку (использовать find /n и for)

Выделить из текстового файла n-ную строку (использовать FIND /N и FOR)
в универе дали задание создать файл бат "Выделить из текстового файла n-ую строку (использовать find /n и for)". вывод строки,...

Выделить из текстового файла n-ую строку. Написать на JavaScript
Выделить из текстового файла n-ую строку. Написать на JavaScript.

10
 Аватар для ComSpec
3463 / 2001 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
09.04.2014, 04:59
Лучший ответ Сообщение было отмечено Dragokas как решение

Решение

Если учитывать, что строка:
1) с заданным номером может не существовать;
2) может быть пустой;
3) может начинаться с символов "]";
4) может содержать специальные символы;
5) может состоять из пробелов,
-- то тогда так:

Bash
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
@echo off
set text_file=example.txt
echo Enter the number.
echo.
set /p n=
cls
for /f "delims=" %%i in ('
 ^<"%text_file%" find /n /v ""
') do (
 for /f "delims=]" %%j in ("%%i") do (
  if %%j==[%n% (
   set "string=%%i"
  )
 )
)
if defined string (
 set "string=%string:*]=%"
) else (
 echo Absent string.
 pause>nul
 goto:eof
)
if defined string (
 for /f "delims=" %%i in ("%string%") do (
  echo.%%i
 )
) else (
 echo Empty string.
)
pause>nul
exit /b
.
0
1781 / 763 / 130
Регистрация: 09.04.2011
Сообщений: 1,325
09.04.2014, 11:40
Лучший ответ Сообщение было отмечено Dragokas как решение

Решение

Вариант попроще
Bash
1
2
3
4
5
6
7
8
@echo off
 
set /p n="введите номер строки: "
for /f "tokens=1* delims=[]" %%a in ('find /v /n "" ^<"read.txt"') do (
if "%%a"=="%n%" (set flg=1& echo %%a - %%b)
)
if not defined flg (echo Такой строки нет в файле)
pause
Добавлено через 28 минут
теперь определяет, пустая ли строка
Bash
1
2
3
4
5
6
7
8
9
@echo off
 
set /p n="введите номер строки: "
for /f "tokens=1* delims=[]" %%a in ('find /v /n "" ^<"read.txt"') do (
if "%%a"=="%n%" (
if not "%%b"=="" (set flg=1& echo %%a - %%b) else (set ln=1)
))
if "%ln%"=="1" (echo Строка %n% пустая) else (if not defined flg (echo Такой строки нет в файле))
pause
0
 Аватар для ComSpec
3463 / 2001 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
09.04.2014, 13:20
sov44, а как с этим:
Цитата Сообщение от ComSpec Посмотреть сообщение
3) может начинаться с символов "]"
?

Например, такая строка:
Code
1
]]]]]
.

A в Вашем случае ещё и символ "[", с которого начинаются многие строки в конфигурационных файлах.
0
1781 / 763 / 130
Регистрация: 09.04.2011
Сообщений: 1,325
09.04.2014, 13:35
ComSpec, так и это лечится. Но нужно-ли....?
0
 Аватар для ComSpec
3463 / 2001 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
09.04.2014, 13:58
sov44, так я уже и "вылечил", оттого и скрипт длиннее.
0
1781 / 763 / 130
Регистрация: 09.04.2011
Сообщений: 1,325
09.04.2014, 14:03
для чтения inf и прочих конфигурационных файлов
Bash
1
2
3
4
5
6
7
8
9
@echo off
 
set /p n="введите номер строки: "
for /f "tokens=1* delims=]" %%a in ('find /v /n "" ^<"FSIV.inf"') do (
if "%%a"=="[%n%" (
if not "%%b"=="" (set flg=1& echo %n% - %%b) else (set ln=1)
))
if "%ln%"=="1" (echo Строка %n% пустая) else (if not defined flg (echo Такой строки нет в файле))
pause
0
 Аватар для ComSpec
3463 / 2001 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
09.04.2014, 14:25
Дык, и у меня так же. Только проблему строки
Code
1
]]]]]
мой скрипт решает, а Ваш -- нет.
0
09.04.2014, 14:36

Не по теме:

ComSpec, у меня нет цели противопоставить свой скрипт Вашему.

0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
09.04.2014, 16:27
Лучший ответ Сообщение было отмечено Dragokas как решение

Решение

Цитата Сообщение от sov44 Посмотреть сообщение
ComSpec, у меня нет цели противопоставить свой скрипт Вашему.
и у меня тоже
Вариант 1)
Bash
1
2
3
4
5
@echo off
set n=2
set file=1.txt
find /n /v "" < "%file%" | findstr /R "\[%n%\].*"
rem FOR &:: где-то здесь использовал for :)
Вариант 2)
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
@echo off
setlocal enabledelayedexpansion enableextensions
set file=1.txt
set n=2
 
set tN=%n%
:DC
set /a DC+=1
set /a tN/=10
if %tN% neq 0 goto DC
set /a trim=DC+2
For /F "delims=" %%a in ('find /n /v "" ^< "%file%"') do set /a c+=1& if !c!==%n% set "str=%%a"& echo !str:~%trim%!
pause
1
 Аватар для ComSpec
3463 / 2001 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
09.04.2014, 16:44
Цитата Сообщение от Dragokas Посмотреть сообщение
Bash
1
2
3
4
5
@echo off
set n=2
set file=1.txt
find /n /v "" < "%file%" | findstr /R "\[%n%\].*"
rem FOR &:: где-то здесь использовал for :)

Dragokas, не поверите, у меня был "заготовлен" подобный вариант:

Bash
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
@echo off
set text_file=example.txt
echo Enter the number.
echo.
set /p n=
cls
for /f "delims=" %%i in ('
 ^<"%text_file%" find /n /v ""^| findstr /bl [%n%]
') do (
 set "string=%%i"
)
if defined string (
 set "string=%string:*]=%"
) else (
 echo Absent string.
 pause>nul
 goto:eof
)
if defined string (
 for /f "delims=" %%i in ("%string%") do (
  echo.%%i
 )
) else (
 echo Empty string.
)
pause>nul
exit /b
.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.04.2014, 16:44
Помогаю со студенческими работами здесь

Выделить из текстового файла все строки, начиная с заданной
Выделить из текстового файла все строки, начиная с заданной

Как выделить поля текстового файла, формируя вывод по условию?
Добрый день. Делаю программу-скрипт для парсинга некоторого конфигур.файла и составления из опредленных строк другого файла. Есть...

Напечатать первую строку, пятую строку текстового файла
имеется текстовый файл , напечатать а) его первую строку б) его пятую строку

Выделить из текстового файла предложения и вывести на екран те, которые имеют скобки
Выделить из текстового файла предложения и вывести на екран те, которые имеют скобки. С файлами не сильно дружу...

Считать текст из текстового файла, вставить в Word, выделить цветом слова по критерию
помогите пожалуйста сделать((очень надо Задание. С помощью программных средств VBA разработать программу считывающую из заранее...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru