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

Редактирование содержимого текстового файла

22.11.2013, 00:16. Показов 9619. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброе время суток, Уважаемые знатоки!
Такая ситуация есть txt файл (допустим files.txt) с таким содержимым:
APPOFSTR;95108017951101611241;46236.88;
APPOFSTR;95101020020300121213;15778.07;
APPOFSTR;95101040020400121213;37113.84;
APPOFSTR;95103095210600540251;6100.00;
и т.д., неопределенное количество строк
Нужно файл перезаписать следующим образом
APPOFSTR;951;0801;7951101;611;241;46236,88;
APPOFSTR;951;0102;0020300;121;213;15778,07;
APPOFSTR;951;0104;0020400;121;213;37113,84;
и т.д. изминения отмечены красным
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.11.2013, 00:16
Ответы с готовыми решениями:

Редактирование содержимого текстового файла
Есть текстовый файлик типа: первая строка вторая строка третья строка четвертая строка пятая...

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

Запись содержимого текстового файла в переменную
Здравствуйте, подскажите пожалуйста как мне считать все данные из txt файла в переменную? главное...

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

9
188 / 145 / 32
Регистрация: 04.10.2013
Сообщений: 149
22.11.2013, 10:46 2
Bash
1
2
3
4
5
6
7
8
:: расположение входного файа
set input=c:\program\test.txt
:: расположение выходного файа
set output=test1.txt
setlocal enabledelayedexpansion
for /f "tokens=1-3 delims=;" %%a in (!input!) do (
    set tok1=%%b
    echo %%a;!tok1:~0,3!;!tok1:~3,4!;!tok1:~7,7!;!tok1:~14,3!;!tok1:~17,3!;%%c;>>!output!)
1
0 / 0 / 0
Регистрация: 14.04.2012
Сообщений: 13
22.11.2013, 12:30  [ТС] 3
YupiRex Спасибо огромное!
Все работает как надо, за исключением того, что в сумме надо точку сменить на запятую, может кто знает как?
0
188 / 145 / 32
Регистрация: 04.10.2013
Сообщений: 149
22.11.2013, 13:45 4
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

сори "красные" запятые не заметил
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
:: расположение входного файа
set input=test.txt
:: расположение выходного файа
set output=test1.txt
echo off
setlocal enabledelayedexpansion
for /f "tokens=1-3 delims=;" %%a in (!input!) do (
    set tok1=%%b
    set token=%%a;!tok1:~0,3!;!tok1:~3,4!;!tok1:~7,7!;!tok1:~14,3!;!tok1:~17,3!;%%c;
    for /f "tokens=1,2 delims=." %%a in ("!token!") do (
        echo %%a,%%b>>!output!
    )
)
1
0 / 0 / 0
Регистрация: 14.04.2012
Сообщений: 13
22.11.2013, 14:07  [ТС] 5
Спасибо!
Возник еще один вопрос:
как заменить символ | на ;
символ может быть в любом месте текста

Спасибо за понимание!!!
0
Эксперт WindowsАвтор FAQ
18014 / 7715 / 892
Регистрация: 25.12.2011
Сообщений: 11,496
Записей в блоге: 16
23.11.2013, 16:59 6
Цитата Сообщение от YupiRex Посмотреть сообщение
echo %%a,%%b>>!output!
Вместо 11-й строки напишите эти 2:

Bash
1
2
set "t=%%a,%%b"
echo !t:|=;!>>"!output!"
1
Модератор
Эксперт JS
5237 / 2110 / 416
Регистрация: 06.01.2013
Сообщений: 4,842
23.11.2013, 17:02 7
А сэкранировать? Или оно так пойдет?
0
Эксперт WindowsАвтор FAQ
18014 / 7715 / 892
Регистрация: 25.12.2011
Сообщений: 11,496
Записей в блоге: 16
23.11.2013, 17:13 8
Синтаксический разбор !переменная! происходит позже чем разбор всей строки в целом.
Если бы там были %, я бы подумал, и написал бы как-нибудь вот так:
Bash
>>"!output!" echo.%t:|=;%
Хотя FOR и так не пропустит пустую строку, но циферку с потоком может успешно присоединить и выбить ERROR:
Bash
set x=1
echo %x%> ...
1
Модератор
Эксперт JS
5237 / 2110 / 416
Регистрация: 06.01.2013
Сообщений: 4,842
23.11.2013, 17:17 9
Я про символ конвейера
1
Эксперт WindowsАвтор FAQ
18014 / 7715 / 892
Регистрация: 25.12.2011
Сообщений: 11,496
Записей в блоге: 16
23.11.2013, 17:22 10
А... хм, точно. У себя тестировал под кавычками. lol
Вот исправленный вариант:
Bash
set "t=%%a,%%b"
echo !t:^|=;!>>"!output!"
1
23.11.2013, 17:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.11.2013, 17:22
Помогаю со студенческими работами здесь

Преобразование содержимого текстового файла в HTML-таблицу
Приветствую всех, подскажите пожалуйста через какие команды можно преобразовать текстовик в...

Как удалить все двойные кавычки из содержимого текстового файла?
и ещё вопрос как удалить " во всём файле txt файле?

На основе содержимого одного текстового файла создать два других
Граждане, прошу помощи. Есть текстовик с таким содержанием: Нужно сделать из него два...

Перекодировка содержимого текстового файла в Win-1251 и запись результата в новый файл с именем компьютера
Добрый день, подскажите пожалуйста... стоит задача написать bat, который будет собирать информацию...


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

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