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

Вставить строку между другими строками

08.04.2014, 13:06. Показов 2455. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Есть текстовый документ "test.txt". Нужно вставить новую строку "str_new" между двух строк "str_1" и "str_2". "str_1" может принимать разные значения, а "str_2" не изменяется. Количество строк в файле всегда одинаково.
Подскажите, как создать bat-файл, решение искал, не нашел. Заранее спасибо.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.04.2014, 13:06
Ответы с готовыми решениями:

Добавить строку в файл между другими строками
Есть файл в нём 2 строки: Кот Собака Как добавить в файл между этими строками что-нибудь?...

Вставить в двумерный массив новую строку, чтобы она была между другими
Помогите пожалуйста, как вставить в двумерный массив новую строку, чтобы она была между другими?

Как вставить строку между строками?
День добрый! INSERT добавляет запись после последней записи, снизу. Как можно прописать INSERT ,...

Вставить между средними строками матрицы первую строку
Дан двухмерный массив NxM.Вставить между средними строками 1-ю строку. 4х5 числа с клавиатуры:...

3
3460 / 1998 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
08.04.2014, 14:13 2
Лучший ответ Сообщение было отмечено Exilim как решение

Решение

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@echo off
setlocal enabledelayedexpansion
set "test_file=test.txt"
set "marker_string=str_2"
set "insert_string=str_new"
for /f "usebackq delims=" %%i in ("%test_file%") do (
  set /a n+=1
  if "%%i"=="%marker_string%" (
   set "!n!=%insert_string%"
   set /a n=n+1
   set "!n!=%marker_string%"
) else (
   set "!n!=%%i"
  )
)
(
for /l %%i in (1 1 %n%) do (
 echo.!%%i!
)
)>"%test_file%"
endlocal
exit /b
2
0 / 0 / 0
Регистрация: 08.04.2014
Сообщений: 2
08.04.2014, 15:44  [ТС] 3
Спасибо большое, вы мне очень помогли.
0
Эксперт WindowsАвтор FAQ
17996 / 7697 / 892
Регистрация: 25.12.2011
Сообщений: 11,470
Записей в блоге: 16
09.04.2014, 00:27 4
КРЧ

Bash
1
2
3
4
5
6
7
8
9
@echo off
setlocal enabledelayedexpansion enableextensions
set "test_file=test.txt"
set "marker_string=str_2"
set "insert_string=str_new"
for /f "delims=" %%i in ('type "%test_file%"^& del /f /a "%test_file%"') do (
  if not defined inserted if "%%i"=="%marker_string%" (echo !insert_string!>> "%test_file%"& set inserted=true)
  echo %%i>> "%test_file%"
)
2
09.04.2014, 00:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.04.2014, 00:27
Помогаю со студенческими работами здесь

Вставить между средними строками первую строку в массив
дан двуменый массив 8на7 заполненный случайным образом. -вставить между средними строками первую...

Вставить между средними строками матрицы первую строку
Дан двумерный массив размером 8*7, заполненный случайным образом : 1). Вставить между средними...

Вставить первую строку между средними строками матрицы, если число строк четное, в противном случае удалить среднюю
Использовать подпрограммы (ввода, вывода, обрабатывающей части). Дан массив целых чисел А, где...

Вставить динамически созданный TableRow между двумя другими
Динамически создаю TableRow. Но мне нужно не добавлять эту строку к TableLayout, а вставить между...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru