Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
Sliceem
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 14
1

Перемена местами текста в файле

19.06.2017, 13:41. Просмотров 1391. Ответов 26
Метки нет (Все метки)

Привет всем,
Прошу помощи в решении задачи.

Вообщем есть RDS.txt файл в котором есть название песни и исполнитель - Пример :

Gypsy woman - Crystal waters

Нужно поменять их местами, чтоб исполнитель Был первым, а название после.
Разделителем является ПРОБЕЛ ТИРЕ ПРОБЕЛ + должен быть цикл каждую секунду, так как файл обновляется каждую секунду.

Благодарю за любую помощь.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2017, 13:41
Ответы с готовыми решениями:

Выполнение условия в bat файле по наличию текста в определённом файле
Задача: найти опеределённую строчку текста в файле и если она совпадает с искомой, то выполнить...

Поменять местами четные и нечетные строки в файле
Задача проста, но дойти ко мне не может. Есть файл, в котором 4 строки, и нужно поменять местами...

Перемена местами значений в типизированном файле
Опять я выхожу на связь. uses crt; label 1,2; var f1:file of integer;...

Перемена местами слагаемых
#include <iostream> using namespace std; void main () { int a; int...

Def и перемена слов местами
Нарисовалась драматичная проблема. Задание мое состоит в том, что используя Python нужно в...

26
ZoOoO
206 / 193 / 67
Регистрация: 09.02.2016
Сообщений: 995
19.06.2017, 14:02 2
Лучший ответ Сообщение было отмечено Sliceem как решение

Решение

Windows Batch file
1
2
3
4
5
@echo off
:1
for /f "delims=- tokens=1,2" %%a in (RDS.txt) do echo %%b - %%a >>1.txt
timeout /nobreak /t 1
goto 1
1
Sliceem
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 14
19.06.2017, 14:28  [ТС] 3
Благодарю, всё переворачивает ))) Но в файл 1.txt, он вставляет не одну строчку, а каждую секунду, ещё плюсует строчку.

Тоесть, за место одно Перевёрнутой строки, появляется ещё одна, и ещё.... Пример:

Дмитрий Маликов - Танцы
Дмитрий Маликов - Танцы
Дмитрий Маликов - Танцы
Дмитрий Маликов - Танцы
Дмитрий Маликов - Танцы
Дмитрий Маликов - Танцы
Дмитрий Маликов - Танцы

Итд, за место одной строки.

Благодярю !
0
ZoOoO
206 / 193 / 67
Регистрация: 09.02.2016
Сообщений: 995
19.06.2017, 14:45 4
Лучший ответ Сообщение было отмечено Sliceem как решение

Решение

Ну я же не виноват,что
Цитата Сообщение от Sliceem Посмотреть сообщение
должен быть цикл каждую секунду, так как файл обновляется каждую секунду.
,что это не работает.
Он еще будет каждый раз начинать в файле RDS с 1 строки переварачивать,если у вас этот файл обновляется не одной строкой,а просто дописывает к существующей еще одну.ПОэтому хотелось бы выяснить,как происходит обновление файла RDS:одной строкой или каждый раз дописывается еще одна строка?
1
19.06.2017, 14:45
Sliceem
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 14
19.06.2017, 14:51  [ТС] 5
Он, как я понимаю обновляет файл, перезаписывая его.
Я через pscp скачиваю его к себе

ECHO OFF
:top
C:\Putty\pscp.exe -i "C:\pscp\1.ppk" ****@www.mix.lv:/home/audiolive/995/Rds.txt "C:\Rds.txt"

:timeout /1
goto top
0
ZoOoO
206 / 193 / 67
Регистрация: 09.02.2016
Сообщений: 995
19.06.2017, 14:55 6
Он обновляется так:
бум бум
Или так:
бум бум
бам бам
1
Sliceem
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 14
19.06.2017, 15:00  [ТС] 7
Цитата Сообщение от ZoOoO Посмотреть сообщение
Он обновляется так:
бум бум
Или так:
бум бум
бам бам
Бум Бум
Бам Бам

Каждый раз новый файл
0
ZoOoO
206 / 193 / 67
Регистрация: 09.02.2016
Сообщений: 995
19.06.2017, 15:11 8
Не понятно.Там две строчки где одна старая,а другая новая или одна ,но новая?

Вот код под одну новую
Windows Batch file
1
2
3
4
5
6
7
@echo off
setlocal enabledelayedexpansion
:1
timeout /t 1 
for /f "delims=- tokens=1,2" %%a in (RDS.txt) do (
if "%%a%%b"=="!f!" (goto 1) else (set "f=%%a%%b" && echo %%b - %%a >>1.txt && goto 1)
)
1
Sliceem
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 14
19.06.2017, 15:14  [ТС] 9
Файл Rds.txt обновляется каждую секунду, так же и текст в нём, он НЕ добавляется, и оверрайтит его, и то что в нём
0
ZoOoO
206 / 193 / 67
Регистрация: 09.02.2016
Сообщений: 995
19.06.2017, 15:19 10
)
Там одна строчка постоянно?Если всегда одна,то код выше попробуйте.
1
Sliceem
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 14
19.06.2017, 15:37  [ТС] 11
Цитата Сообщение от ZoOoO Посмотреть сообщение
)
Там одна строчка постоянно?Если всегда одна,то код выше попробуйте.
Всё почти хорошо, Но, если меняется текст, то он его добавляет на следующую строчку, то есть, идентичный текст он игнорирует, а уникальный оставляет, перенося его на другую строку.

Копит уникальный текст
0
ZoOoO
206 / 193 / 67
Регистрация: 09.02.2016
Сообщений: 995
19.06.2017, 16:28 12
Лучший ответ Сообщение было отмечено Sliceem как решение

Решение

Файл RDS всегда имеет одну строку.
Файл RDS обновляется и снова имеет одну строку,но новую
В файл 1.txt записывается к старым перевернутым строкам новая перевернутая строка.
Это код который выше

Этот код делает следующее
Новый файл RDS имеет много строк
При обновлении файл RDS имеет старые строки и одну новую.
В файл 1.txt записывается к старым перевернутым строкам новая перевернутая строка.
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
@echo off
setlocal enabledelayedexpansion
set n=1
:1
timeout /t 1 
for /f "delims=" %%a in ('find /v /n "" RDS.txt') do (
for /f "delims=" %%b in ('echo %%a^|findstr /l /c:"[!n!]"') do (
set "s=%%a"
set "s=!s:*]=!"
if defined s (echo !s!>$ && for /f "delims=- tokens=1,2" %%c in ($) do echo %%d - %%c >>1.txt && set /a n+=1 && goto 1)
)
)
goto 1
1
Sliceem
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 14
19.06.2017, 16:43  [ТС] 13
Мне то и не надо новые.
Я писал в самом первом вопросе.
Просто создать файл, залить в него то что в файле RDS, перевернуть и всё.
Всё в одну строку, бульше других строк не надо.

И так через каждую секунду.

То же самое что в файле РДС но перевёрнуто. В Рдс файле всегда одна строка.


Может что то не так объясняю.
Есть Радио-программа, которая выкладывает название песни и исполнителя в файл Rds.txt, но перевёрнуто, то есть сперва название а потом исполнитель. После я этот файл Заливаю на ФТП.

Потом еду в другой город, и там, где радио-оборудование, скачиваю этот Rds.txt.
И тут то мне нужна помощь, просто перевернуть текст в файле.

Софт который читает файл Rds выкладывает это всё в эфир, и если там будет много текста то он всё в эфир и выплюнет.
А мне надо только то что показывает плеер, а не дополнительные строки, то есть мне нужен ЛАЙВ с программы, но перевёрнутый
0
ZoOoO
206 / 193 / 67
Регистрация: 09.02.2016
Сообщений: 995
19.06.2017, 16:51 14
Windows Batch file
1
2
3
4
5
6
7
@echo off
setlocal enabledelayedexpansion
:1
timeout /t 1 
for /f "delims=- tokens=1,2" %%a in (RDS.txt) do (
if "%%a%%b"=="!f!" (goto 1) else (set "f=%%a%%b" && echo %%b - %%a >1.txt && goto 1)
)
Оно?
1
Sliceem
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 14
19.06.2017, 17:03  [ТС] 15
Оно !!
Я тебе крайне признателен. Всё как нужно.

А можно сделать, чтоб, если в Rds файле пустота, то и в тот файл передовал пустоту, или за место пустоты подставлял нужный текст.
0
ZoOoO
206 / 193 / 67
Регистрация: 09.02.2016
Сообщений: 995
19.06.2017, 17:09 16
так текст или пустоту?
0
Sliceem
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 14
19.06.2017, 17:10  [ТС] 17
Лудше конечно текст
0
ZoOoO
206 / 193 / 67
Регистрация: 09.02.2016
Сообщений: 995
19.06.2017, 17:18 18
сча

Добавлено через 7 минут
Windows Batch file
1
2
3
4
5
6
7
8
9
@echo off
setlocal enabledelayedexpansion
:1
timeout /t 1 
for /f "delims=- tokens=1,2" %%a in (RDS.txt) do (
if "%%a%%b"=="!f!" (goto 1) else (set "f=%%a%%b" && echo %%b - %%a >1.txt && goto 1)
)
echo net stroki>1.txt
goto 1
0
Sliceem
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 14
19.06.2017, 17:34  [ТС] 19
Теперь всё время выводит net stroki
0
ZoOoO
206 / 193 / 67
Регистрация: 09.02.2016
Сообщений: 995
19.06.2017, 17:36 20
потому что файл пустой .Вот и выводит.
0
19.06.2017, 17:36
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2017, 17:36

Перемена слов местами в названии товара
Приветствую! Есть строка: 105BB - Ночник светодиодный с таймером выключения Citilux Медведь, белый...

Перемена строк местами в матрице по особому алгоритму
Задание звучит так: "Дана матрица. Перенести в другую матрицу строки исходной, выстроив их в...

Перемена местами букв в слове и поиск совпадений в словаре
С горем пополам написал код для перестановки букв в введенном слове. Как сделать поиск полученных...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.