Получить значение из строки

Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
1. medved577 1 14.12.15 20:41 Сейчас в теме
Есть строка, вида: "R18C2". Мне нужно выбрать из строки "18"

Если делаю
ВыбСтрока = Сред(АдрСтроки, 2, (ДлинаАдрСтроки-Индекс)+1);


Где "Индекс" это
Индекс = Найти(АдрСтроки, "C");


то "ВыбСтрока" - получается 18, что мне и надо

если строка "R6C2" или "R116C2" - то код перестает работать. Помогите как можно получить значение между "R" и "C" ? Все голову сломал, что только не перепробывал - не выходит
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Cooler 22 14.12.15 20:45 Сейчас в теме
Да уж, бином Ньютона!

ВыбСтрока = Сред(Лев(АдрСтроки,Найти(АдрСтроки, "C")-1), 2);
3. medved577 1 14.12.15 20:55 Сейчас в теме
(2) Cooler, спасибо, попробую.

у меня вроде заработало так:
ВыбСтрока = Сред(АдрСтроки, 2, Индекс-2);
4. dchumak 42 15.12.15 03:27 Сейчас в теме
Строка1 = СтрЗаменить("R18C2", "C", Символы.ПС);
Строка2 = СтрЗаменить(СтрПолучитьСтроку(Строка1, 1), "R", "");
ИскомоеЧисло = Число(Строка2);
5. Cooler 22 15.12.15 09:53 Сейчас в теме
(4) dchumak, это на конкурс "как решить простую задачу наиболее сложным способом"? Так можно и цикл использовать, перебирая входную строку посимвольно и прибавляя символы к выходной, пока не встретится "C". :-)
ЧерныйКот; A.Sytchev; +2 Ответить
6. medved577 1 15.12.15 12:28 Сейчас в теме
(5) Cooler, у меня, вроде, меньше всех получилось))
7. Cooler 22 15.12.15 12:35 Сейчас в теме
(6) medved577, но вы вроде и трудились дольше всех?

А так да, решение самое изящное.
9. medved577 1 15.12.15 15:53 Сейчас в теме
(7) Cooler, спасибо, почти весь день потратил

вопрос в догонку, в 7.7 можно было в обработке написать Перем переменная1 Экспорт;
и пользоваться в пределах обработки этой переменной, а как в 8.3 сделать? Мне нужна переменная которая получит фиксированное значение при открытии, а потом я ею буду часто пользоваться
11. dj_serega 393 15.12.15 15:57 Сейчас в теме
(9) medved577, Можно либо на клиенте, либо на сервере создавать переменные.
Можно сделать по хитрому. Создать строковый реквизит формы. При открытии поместить необходимое значение во временное хранилище. И потом считывать его по мере необходимости.
12. medved577 1 15.12.15 16:07 Сейчас в теме
(11) dj_serega, тоже так иногда в семерке делал: добавить реквизит на форму а потом плюсовать/вычитать и т.д., правильно?

Можно либо на клиенте, либо на сервере создавать переменные. не совсем понял как это. Типа того:
до объявления процедур/функций (как в 7.7) написать
&НаКлиенте или на &НаСервере
Перем КакаяТоПеременная Экспорт;

?

А имеет ли тогда разница где ее объявлять?
8. Поручик 4683 15.12.15 12:45 Сейчас в теме
Всю тему не читал. Регулярные выражения не предлагали?
10. medved577 1 15.12.15 15:56 Сейчас в теме
(8) Поручик, помойму все остальное только из простого сделать сложное. Сам подумывал в цикле перебрать
13. dj_serega 393 15.12.15 17:37 Сейчас в теме
А имеет ли тогда разница где ее объявлять?

&НаКлиенте
Перем Переменная1

&НаСервере
Перем Переменная2


Переменная1 будет жить, пока живет форма. Но значения должны быть доступны на клиенте
Переменная2 будет жить на один вызов сервера. Пример: На сервере заполнили, ушли на клиент, вернулись на сервер. А переменная "неопределено".

тоже так иногда в семерке делал: добавить реквизит на форму а потом плюсовать/вычитать и т.д., правильно?

// Сохранить
Реквизит1 = ПоместитьВоВременноеХранилище(Какое-тозначение, УникальныйИдентификатор);
// Считать
Значение1 = ПолучитьИзВременногоХранилища(Реквизит1);

// Почитайте СП по ПоместитьВоВременноеХранилище. Что бы не было потом вопросов почему оно у меня удалилось :)
medved577; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот