помогите реализовать такую операцию автоматом
ну проверили, допустим, всё удовлетворилось. дальше что?
т.е. А => B1 => B2 => Z
до сих пор не понял, что такое A,B1,B2,Z
если A - это символ, то как A=true?
у меня нет установленной оболочки, да и воспоминание паскакала займет неоправданно много времени, ибо давно это было...
А, В1, В2, Z -это символы, отмеченные в примере строчки (В1 и В2 - соответственно в порядке появления просто, так как они несут одинаковую информацию). А=true - это не буквально, это значит, в данном конкретном случае, что А - это символ "O", любой другой символ на этом месте игнорируется. В1 и В2 -целые цисла, Z - пробел по дефолту, либо меняется на символ "a", если соблюдаются условия.
В1 и В2 -целые цислачисло - это набор цифр. одна цифра занимает 1 символ.
сколько ещё мне тебя пинать, пока ты ТЗ нормально поставишь?
если это всё же цифры, то проще поставить vim или какой-нить другой текстовый редактор, воспринимающий в Find and relpace регулярные выражения.
тем не менее, мы подошли к главному - что за регулярные выражения ? как это описать ?
напиши пример строки, понятнее будут, какие значения твои эти xxxxxxxxxxxx принимать могут
интересны значения A,B1,B2, влекущие за собой изменение Z.
Всё остальное заменится .{...}
3O 0 0 21 41 00 00 00 00 564 -66 0--....a
тут пробелы не отображаютя, но они считаются за символ
если А="О", В1="1" и В2="1", то Z из пробела превращается в "a". вот
%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
скриптами не владею, поэтому спрашиваю у наших "отцов":есть большая база вида "xxxAxxxxxxxBxxxBxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxZ" (без кавык; это одна типовая строка, х - переменные данные, общее количество символов в строке фиксировано
необходимо сделать так, чтобы сначала проверялось А, если А=скажем, true, то проверялось В1 или В2 (в идеале, оба, но там значения не обязательно совпадут и если уже В попадает в диапазон значений, то Z меняется, иначе - переход на следующую строку.
В принципе, все просто, но можно ли это реализовать какими-либо стандартными редакторами, типа notepad или word ? или, может это умеет TC/far ?
помогите, плз - неохота руками лопатить +)