Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 9

Модерирует : KLASS, IFkO

vu1tur (09-01-2011 11:53): лимит страниц, продолжение — http://forum.ru-board.com/topic.cgi?forum=62&topic=22143  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

smirnvlad

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

ini для примера

Код:
 
[section1]
value1=a
value2=b
 
[section2]
value1=c
value2=d  
 
[section123]
value1=e
value2=f  
 
[not_section3]
value1=g
value2=h  
 

 
получаем

Код:
 
x_1_1=a
y_1_1=b
x_2_2=c
y_2_2=d  
x_3_123=e
y_3_123=f  
 

 

Код:
 
@echo off
set n=0
 
REM Читаем файл 1.ini построчно, строку записываем в переменную line, вызываем подпрограмму :lparse
for /f "usebackq delims=" %%a in ("1.ini") do set "line=%%a" && call:lparse
 
REM Чтобы :lparse не выполнился ещё раз переходим в конец файла
goto:eof
 
 
:lparse
 
REM Если первый символ в строке равен [
REM и последний равен ]
if "["=="%line:~0,1%" if "]"=="%line:~-1,1%" (
 
REM сбрасываем тип секции
set section_type=
 
REM Если 7 символов начиная со второго равны section
if /i "section"=="%line:~1,7%" (
 
REM запоминаем имя секции, на случай параметров value1,value2 в других секциях
set section_type=section
 
REM присваиваем section_num всё что после [section и ]  
set section_num=%line:~8,-1%
 
REM Увеличиваем n на 1
set /a n+=1
)
)
REM Если строкаа принадлежит секции section
REM и первые шесть символов в строке равны value1 выводим на экран:
REM y
REM символ _
REM номер секции по порядку (%n%)
REM символ _
REM название секции (%section_num%)
REM символ =
REM Все что в строке после value1=
 
if "%section_type%"=="section" if /i "value1"=="%line:~0,6%" echo x_%n%_%section_num%=%line:~7%
if "%section_type%"=="section" if /i "value2"=="%line:~0,6%" echo y_%n%_%section_num%=%line:~7%
 

 
чтобы получить не x_3_123= и y_3_123=
а x3= и y3= надо в последних двух строчках удалить символ подчеркивания (_) поcле x и полсе y и подчеривание%section_num% (_%section_num%)
или чтобы получить x123= и y123=
надо в последних двух строчках удалить (_%n%_)
 

Всего записей: 417 | Зарегистр. 31-03-2009 | Отправлено: 07:35 09-11-2010 | Исправлено: smirnvlad, 10:27 09-11-2010
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 9
vu1tur (09-01-2011 11:53): лимит страниц, продолжение — http://forum.ru-board.com/topic.cgi?forum=62&topic=22143


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru