помогите реализовать такую операцию автоматом

olsh

скриптами не владею, поэтому спрашиваю у наших "отцов":
есть большая база вида "xxxAxxxxxxxBxxxBxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxZ" (без кавык; это одна типовая строка, х - переменные данные, общее количество символов в строке фиксировано
необходимо сделать так, чтобы сначала проверялось А, если А=скажем, true, то проверялось В1 или В2 (в идеале, оба, но там значения не обязательно совпадут и если уже В попадает в диапазон значений, то Z меняется, иначе - переход на следующую строку.
В принципе, все просто, но можно ли это реализовать какими-либо стандартными редакторами, типа notepad или word ? или, может это умеет TC/far ?
помогите, плз - неохота руками лопатить +)

AlexV769

ты не написал, что со всем этим делать в итоге надо.
ну проверили, допустим, всё удовлетворилось. дальше что?

olsh

как не написал ? нужно чтобы определенные таким образом Z изменились, остальное не изменилось. вот
т.е. А => B1 => B2 => Z

AlexV769

предлагаю написать простую программу на доступном тебе языке программирования.
до сих пор не понял, что такое A,B1,B2,Z
если A - это символ, то как A=true?

olsh

ты как-то слишком буквально понимаешь
у меня нет установленной оболочки, да и воспоминание паскакала займет неоправданно много времени, ибо давно это было...
А, В1, В2, Z -это символы, отмеченные в примере строчки (В1 и В2 - соответственно в порядке появления просто, так как они несут одинаковую информацию). А=true - это не буквально, это значит, в данном конкретном случае, что А - это символ "O", любой другой символ на этом месте игнорируется. В1 и В2 -целые цисла, Z - пробел по дефолту, либо меняется на символ "a", если соблюдаются условия.

AlexV769

В1 и В2 -целые цисла
число - это набор цифр. одна цифра занимает 1 символ.
сколько ещё мне тебя пинать, пока ты ТЗ нормально поставишь?
если это всё же цифры, то проще поставить vim или какой-нить другой текстовый редактор, воспринимающий в Find and relpace регулярные выражения.

olsh

ну, да, сорри я не привык к мат. строгости да, там цифра!
тем не менее, мы подошли к главному - что за регулярные выражения ? как это описать ?

Fragaria

напиши пример строки, понятнее будут, какие значения твои эти xxxxxxxxxxxx принимать могут

AlexV769

x тут как раз неинтересны.
интересны значения A,B1,B2, влекущие за собой изменение Z.
Всё остальное заменится .{...}

olsh

   3O 0 0  21  41  00  00  00  00  564  -66    0--....a 

тут пробелы не отображаютя, но они считаются за символ

olsh

да, точно!
если А="О", В1="1" и В2="1", то Z из пробела превращается в "a". вот

AlexV769

%s/^(.{3}O.{7}1.{3}1.{37}) $/\1a/

эта команда, набранная в vim, в открытом файле произведет нужную тебе замену.
тоже самое можно сделать с помощью sed:
sed -E -i .bak 's/^(.{3}O.{7}1.{3}1.{37}) $/\1a/' <имя файла>

его, например, можно поставить в составе cygwin.

olsh

ок, спасибо!
я так понимаю, что это под линукс, да ? но вим, по идее, это дефолтный редактор, т.е. если я грузанусь с лайвсиди и там все это сделаю, то должно получиться ?мм, это мысли вслух
спасибо!
Оставить комментарий
Имя или ник:
Комментарий: