Имя: Пароль:
1C
1С v8
Сообщить о недопустимых символах
0 Shouldercannon
 
07.04.21
10:32
Доброго времени суток!
Есть строка с таким содержимым: |67894376|
Подскажите, пожалуйста, как проверить строку на наличие посторонних символов. Если в строке есть что-то помимо | или цифр от 0 до 9, то сообщить об этом.
1 Shouldercannon
 
08.04.21
18:06
Функция НайтиСимволы(Строка)    
    Для Сч = 1 По СтрДлина(Строка) Цикл
        Если Найти("|0123456789", Сред(Строка, Сч, 1)) = 0 Тогда
            Возврат Истина;
            Прервать;
        КонецЕсли;
    КонецЦикла;
    
    Возврат Ложь;
КонецФункции
2 Garykom
 
гуру
08.04.21
18:20
(1) мдя
3 dka80
 
08.04.21
18:46
Если стрразделить(твоястрока,"0123456789").количество() тогда естькривыесимволы
4 dka80
 
08.04.21
18:50
А вообще, в бсп есть функциЯ. Что-то вроде общегоназначенияклиентсервер.толькоцифры(твоястрока)
5 Garykom
 
гуру
08.04.21
19:48
(3) хрень написал
6 mikecool
 
08.04.21
20:56
регулярки не предлагать?
7 dka80
 
08.04.21
20:58
(5) ты специалист, конечно, кто спорит. Только ни одной умной мысли не высказал.
8 Garykom
 
гуру
08.04.21
21:13
(7) СтрЗаменить символы в проверяемой строке на "" в цикле по своим "|0123456789"

Типа
СтрЗаменить(ПроверяемаяСтрока, "|", "");
СтрЗаменить(ПроверяемаяСтрока, "0", "");
СтрЗаменить(ПроверяемаяСтрока, "1", "");
и т.д.

Если остаток не пустая строка = есть левые
9 dka80
 
08.04.21
21:35
(8) почитай СП к стрзаменить и ты увидишь, что "0123456789" рассматривается как каждый символ разделителя в отдельности
10 dka80
 
08.04.21
21:41
+9 сп к стрразделить
11 acht
 
09.04.21
00:02
(3) Палку и Ложь забыл, специалист
12 Garykom
 
гуру
09.04.21
00:45
(9) ты проверишь наличие/отсутствие хороших символов же
а не левых
13 dka80
 
09.04.21
06:41
(12) ты не прав. Строка вида $#@1265па превратится в массив $,#,@,п,а. Соответственно если массив не пустой, то левые символы есть.
(11) какая, "ложь" в строке, недоспециалист?
14 dka80
 
09.04.21
06:43
И для все "умных": данный метод очень неплохо работает в типовых при разборе телефонных номеров
15 Garykom
 
гуру
09.04.21
09:10
(13) ложь в смысле
"ВключатьПустые (необязательный)    Булево    Указывает необходимость включать в результат пустые строки, которые могут образоваться в результате разделения исходной строки. Значение по умолчанию: Истина"
16 Garykom
 
гуру
09.04.21
09:10
(14) правильный метод с правильными параметрами, а у тебя хрень
17 acht
 
09.04.21
09:32
(13) У СтрРазделить три параметра, позорник
18 dka80
 
09.04.21
11:13
(17) для долбоящеров поясняем: я не делал на заказ задачу, потом пытаясь ее сдать, доказывая что она 100% рабочая. Это общий принцип. А ты, лучше бы написал как надо, вместо того, чтобы кашей изо рта брызгать. Кстати, ты не Андрей Частиков, случаем?
(16) хрень у тебя в голове, потому что кроме как мычать что-то нечленораздельное как в (2) тебя более ни на что не хватает
(15) молодец, вот если бы ты исправил это заметил с самого начала, то тебе вообще цены бы не было
19 dka80
 
09.04.21
11:14
(16) и вместо (8) лучше уж сделать цикл, чем один и тот же метод десять раз писать
20 mikecool
 
09.04.21
11:22
решение нашли или продолжаете мериться?
21 Garykom
 
гуру
09.04.21
12:02
(18) >молодец, вот если бы ты исправил это заметил с самого начала, то тебе вообще цены бы не было
читать научись: "хрень написал", "ты проверишь наличие/отсутствие хороших символов же а не левых"

>и вместо (8) лучше уж сделать цикл, чем один и тот же метод десять раз писать
читать научись: "СтрЗаменить символы в проверяемой строке на "" в цикле по своим "|0123456789""
22 acht
 
09.04.21
12:27
(18) Да ты никак обиделся?
23 dka80
 
09.04.21
12:39
(21) тебя кто с людьми так учил разговаривать, епт? (с)
24 dka80
 
09.04.21
12:40
(22) ты на вопрос не ответил