Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2012, 21:23   #1
sagitarius84
Новичок
Джуниор
 
Регистрация: 08.05.2012
Сообщений: 2
По умолчанию Множественная замена

Уважаемые господа, подскажите, пожалуйста!
Есть файл exel с ячейками вида:

~P6-026-2 GFB _12x200~~^~pv-15~^~Обувь~^~pv-15~^~12 пар по 200 р. 26-31 разм.~^

Значение _12x200 - это 12 пар стоимостью 200 р.
200 - стоимость кратная 5, то есть, грубо говоря может принимать значение от 55-60-65-70-75 до 1000

Вторая строка например будет такая

~P10-06-2 GB _6x250~~^~pv-10~^~Обувь~^~pv-10~^~6 пар по 250 р. 26-31 разм.~^

Вопрос
Как автоматически заменить стоимость (200р, 250р, 285р. и т.д.) на это же значение +10%. Эта стоимость упоминается в строке 2 раза по разному....
sagitarius84 вне форума Ответить с цитированием
Старый 08.05.2012, 22:05   #2
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

sagitarius84, макрос написать (программный код под Ваши нужды). Вопрос в том, сколько Вы готовы за это заплатить?
Тишина – самый громкий звук
nerv вне форума Ответить с цитированием
Старый 09.05.2012, 12:14   #3
sagitarius84
Новичок
Джуниор
 
Регистрация: 08.05.2012
Сообщений: 2
По умолчанию

Цитата:
Сообщение от nerv Посмотреть сообщение
sagitarius84, макрос написать (программный код под Ваши нужды). Вопрос в том, сколько Вы готовы за это заплатить?
ни цента, если захотеть - все можно напарсить в гугле.
А вам совет на будущее - предложение своих услуг таким образом лучше не делать Научитесь корректно обращаться к потенциальному клиенту.
sagitarius84 вне форума Ответить с цитированием
Старый 09.05.2012, 13:30   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Если ни цента - то Вы не клиент
Так, прохожий, человек, чей вопрос мы читаем на форуме - и без всяких обязательств...

Если вопрос простой, не требует много работы - то кто-то Вам его решит.
Если вопрос интересный - то скорее всего кто-то Вам его решит.
Если вопрос интересный, но требует много работы - то может быть возможно кто-то Вам его решит.
Если вопрос не интересный, нудный, требует много работы - то может быть Вам повезёт, и возможно кто-то Вам его решит.
Если вопрос не интересный, нудный, требует много работы, явно из разряда рабочих/учебных, нет никаких Ваших наработок - то Вам должно крупно повезти, чтоб кто-то Вам его бесплатно решил.


Для меня - я бы не сказал, что интересный, а надёжное решение требует работы. Не стану делать, даже за деньги (Вы не заплатите столько, чтоб меня соблазнить, к тому же я думаю, что на неосвоенных пока мной регулярных выражениях оно было бы лучше)...
А nerv думаю смог бы сделать. Надёжно, на регулярных выражениях.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 09.05.2012, 15:07   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Уважаемые форумчане! Зря Вы так. Задача простая. Сделать можно и "за так".
sagitarius84, пишите в личку.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 09.05.2012, 15:14   #6
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Ну сделал Поиск на регулярных, замену обычным replace (регулярными не получается оптимально).
Но уважаемые мною люди говорят, что бесплатно - не годится. Что же, я сам себя меньше уважаю?! Вот, кошельки завел Хочу 200 р. Файл с паролем, сообщу когда получу.
Вложения
Тип файла: rar p199506.rar (7.2 Кб, 10 просмотров)
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 09.05.2012, 16:40   #7
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

Цитата:
Сообщение от sagitarius84 Посмотреть сообщение
ни цента, если захотеть - все можно напарсить в гугле.
и что Вам мешало это сделать? А еще, если захотеть, можно прочитать эту книгу, на что уйдет примерно месяц в ленивом темпе; закрепить все это на практике (time - ???).
Цитата:
Сообщение от sagitarius84 Посмотреть сообщение
Уважаемые господа, подскажите, пожалуйста!
Подсказываю, используйте регулярные выражения.

SAS888, для профи все просто Кстати, наработок автора в данной теме я не заметил.

Hugo121, спасибо за рекламу ^_^ , тут и помимо меня мозгов хватает )

Цитата:
Сообщение от Казанский Посмотреть сообщение
(регулярными не получается оптимально).
не понял, что Вы имеете ввиду )
Тишина – самый громкий звук

Последний раз редактировалось nerv; 09.05.2012 в 16:55.
nerv вне форума Ответить с цитированием
Старый 10.05.2012, 12:33   #8
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

nerv
> не понял, что Вы имеете ввиду
Я не сразу сообразил, как заменять submatches. Сейчас, кажется, понял идеологию метода Replace в этом случае: надо захватывать все элементы найденной строки и составлять из них новую строку:
Код:
.Pattern = "(x)(\d+)(~.+по )(\2)( р)" 'найти число, которое сначала находится между "x" и "~", а потом между "по " и " р"
'...
с = .Replace(s, "$1" & p2 & "$3" & p2 & "$5") 'p2 - новое число
Так?
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 10.05.2012, 13:34   #9
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

Казанский, в методе Replace() объекта regexp, выражения, заключенные в круглые скобки сохраняются и доступны в качестве постановочных как $n, где n - порядковый номер группы (пример: $1). Вся найденная строка доступна как $&

"Найти все" и "заменить все" лучше разграничивать )
Тишина – самый громкий звук

Последний раз редактировалось nerv; 10.05.2012 в 13:38.
nerv вне форума Ответить с цитированием
Старый 10.05.2012, 14:09   #10
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Ну а я о чем? Просто в приложенном файле я сделал поиск без сохранения всех групп:
Код:
.Pattern = "x(\d+)~.+по \1 р" 'найти число, которое сначала находится между "x" и "~", а потом между "по " и " р"
, а при такой маске сделать замену методом .Replace не представляется возможным.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
множественная обработка событий в delphi mmihan Помощь студентам 2 24.11.2011 17:37
множественная загрузка файлов ZET78 PHP 1 06.11.2010 01:53
preg_match множественная проверка micron PHP 9 15.02.2010 10:40
Замена кода программы с Delhi5 на Delhi7 либо замена базы данных с Acessa на MySQL DorianLeroy Фриланс 8 18.02.2009 18:52
Множественная загрузка файлов Artem Общие вопросы Delphi 14 03.08.2007 20:38