|
1С 8.2: Работа со строкой-нужно найти вхождение символа и удалить символы после | ☑ | ||
---|---|---|---|---|
0
Kleo
28.09.11
✎
08:18
|
Есть Строка, например:
Москва,Ленина,100,3 или может быть строка Москва,Ленина,100,223 Так вот мне нужно и из первой и из второй строки получить строку Москва,Ленина,100 как обрубить, это понятно спомощью функции Сред(Адрес,1,СтрДлина(Адрес) - КолЛишнихСимволов) а вот как определить КоЛишнихСимволов? мне нужно получается в строке найти последнюю запятую и удалить последнюю запятую и символы после нее. помогите, пожалуйста. |
|||
1
ZanderZ
28.09.11
✎
08:21
|
в типовых смотри РазложитьСтрокуВМассивПодстрок
|
|||
2
Kleo
28.09.11
✎
08:26
|
(1) это точно то, что нужно? мне нужно получается найти вхождение символа, и не просто вхождение, а последнее вхождение в строке и определить номер расположения
|
|||
3
SeraFim
28.09.11
✎
08:29
|
Встроенные функции языка.Лев (Script functions.Left)
Синтаксис: Лев(<Строка>, <ЧислоСимволов>) Параметры: <Строка> (обязательный) Тип: Строка. Исходная строка. <ЧислоСимволов> (обязательный) Тип: Число. Количество выбираемых символов. Возвращаемое значение: Тип: Строка. Строка выбранных символов. Описание: Выбирает первые слева символы строки. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение. |
|||
4
Kleo
28.09.11
✎
08:37
|
(3) насмешил, мне нужно не Лев, а Сред - это я уже написала.
а вот ЧислоСимволов, которое нужно убрать - как раз величина неизвестная |
|||
5
Alex375
28.09.11
✎
08:40
|
Тебе 2 решения уже предложили: использовать разложение на массив, где в качестве разделителя в строке используется твой символ ",". И второе - в цикле можно используя лев почастям резать исходную строку и пихать ее в результирующую.
|
|||
6
Gesperid10
28.09.11
✎
08:41
|
|
|||
7
Kleo
28.09.11
✎
08:42
|
(5) РазложитьСтрокуВМассивПодстрок немного не подходит - мне не нужно получать несколько строк. но нашла в этой функции функцию Найти, которую придется в цикле запускать
|
|||
8
DJ Anthon
28.09.11
✎
08:43
|
(6) вот они, неопрограммисты.. ;))
|
|||
9
Kleo
28.09.11
✎
08:43
|
(6) а вот это подходит! спасибо большое!
спасибо всем! |
|||
10
Alex375
28.09.11
✎
08:44
|
(7) после того как массив получен удаляешь последний элемент и массив обратно в строку переделываешь.
|
|||
11
SeraFim
28.09.11
✎
08:44
|
(4) в чем проблема-то? что мешает найти позицию последней запятой и при помощи Лев() взять символы, которые стоят до этой запятой?
|
|||
12
SeraFim
28.09.11
✎
08:45
|
+(11) кстати, про фотку забыли ;)
|
|||
13
Gesperid10
28.09.11
✎
08:46
|
ну да, Лев(Адрес,1,Поз-1)
|
|||
14
Kleo
28.09.11
✎
08:46
|
(11) как раз мешает то, как найти последнюю позицию запятой... )))
|
|||
15
SeraFim
28.09.11
✎
09:00
|
ну, как вариант:
|
|||
16
catena
28.09.11
✎
09:01
|
(7)Действительно, это так сложно - удалить хвост и сложить обратно в строку :)
|
|||
17
Man4kin
28.09.11
✎
09:07
|
Буфер = стрЗаменить(Адрес,",",Символы.ПС);
Город = стрПолучитьСтроку(Буфер,1); Улица = стрПолучитьСтроку(Буфер,2); Дом = стрПолучитьСтроку(Буфер,3); пример как разложить, а так по строкам потом можно собрать результирующую строку |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |