 |
|
Find пределы поиска
Помогите пожалуйста :).
Такая вот задача.
У нас есть текст
Код:
[start_text] Клавиату́ра — устройство, представляющее собой набор кнопок (клавиш), предназначенных для управления каким-либо устройством или для ввода информации.
Как правило, кнопки нажимаются пальцами рук.
Радиосвязь между мышью и приёмным устройством, подключённым к компьютеру, позволила избавиться от недостатков инфракрасной связи, но породила не менее курьезную проблему: поскольку радиус действия этих мышей составлял несколько метров, а организации, как правило, закупали однотипную технику партиями, бывали случаи когда курсором на экране компьютера управляла мышь, расположенная даже на соседнем этаже.
var=qwerty
var=hard
var=factory
Такие мыши как правило, имеют переключатель, позволяющий выбрать один из двух радиочастотных каналов, в большинстве случаев переход на другой канал снимал проблемы.[end_text]
Изначально для мыши каждый производитель разрабатывал свой собственный метод передачи сигнала. Однако впоследствии для связи стало всё более широко применяться Bluetooth-соединение, это позволило ввести единый стандарт, а также позволило избавиться от приёмного устройства, так как некоторые компьютеры (особенно ноутбуки) уже оснащены Bluetooth-адаптером, и решить проблему идентификации мыши.
var=vector
var=mesh
var=default
На данный момент (середина 2009 года) Bluetooth-мыши продаются сравнительно недорого (от 30$).
Необходимо вывести в exit.txt все строки в которых содержится var, но только от [start_text] и до [end_text] и больше не выводить.
Заранее спасибо! :)
|
Код:
@(SETLOCAL EnableDelayedExpansion
set "TYPE=N"& for /f "usebackq delims=" %%a in ("file.txt") do @(set "$a=%%a"
if not "!$a!"=="!$a:[start_text]=!" set "TYPE=Y"
if not "!$a!"=="!$a:[end_text]=!" set "TYPE=N"
if not "!$a!"=="!$a:var=!" if "!TYPE!"=="Y" echo !$a!
))>"exit.txt"
|
Цитата:
Цитата Starter1
Спасибо за прогу :) работает чётко, но столкнулся с проблемой: вместо [start_text] и [end_txt] не могу вставить переменную вот что-то вроде этого
@(SETLOCAL EnableDelayedExpansion
set sp=[start_text]
set sv=[end_text]
set "TYPE=N"& for /f "usebackq delims=" %%a in ("file.txt") do @(set "$a=%%a"
if not "!$a!"=="!$a:!sp!=!" set "TYPE=Y"
if not "!$a!"=="!$a:!sv!=!" set "TYPE=N"
if not "!$a!"=="!$a:var=!" if "!TYPE!"=="Y" echo !$a!
))>"exit.txt"
pause
В общем в выходном файле пусто.
Что делать?
|
Код:
@echo off
set sp=[start_text]
set sv=[end_text]
(
SETLOCAL EnableDelayedExpansion
set "TYPE=N"& for /f "usebackq delims=" %%a in ("file.txt") do (set "$a=%%a"
if not "!$a!"=="!$a:%sp%=!" set "TYPE=Y"
if not "!$a!"=="!$a:%sv%=!" set "TYPE=N"
if not "!$a!"=="!$a:var=!" if "!TYPE!"=="Y" echo !$a!
))>"exit.txt"
P.S. см. 2-ю строку подписи:
|
Спасибо большое ещё раз всё робит удачи вам :)!
|
Время: 08:23.
© OSzone.net 2001-