Имя: Пароль:
1C
1C 7.7
v7: сравнение строки
0 zladenuw
 
16.11.11
17:18
есть две строки. разница только в пробелах.

CORDA FLIPPY 2 2    CORDA FLIPPY 2  2

как реализовать проверку что эти два поля равны.
Возможно что пробел будет или в поле 1 или в поле 2.
Через найти не катит :(
1 Ёпрст
 
16.11.11
17:19
Выкинуть пробелы через стрЗаменить и сравнить
2 Ёпрст
 
16.11.11
17:20
или использовать Like в тексте запроса
3 zladenuw
 
16.11.11
17:22
в запросе к двум полям ? а как это в 7.7...
4 Ёпрст
 
16.11.11
17:22
(3) да.
5 zladenuw
 
16.11.11
17:25
(1) не помогло :(
6 andrewks
 
16.11.11
17:26
(5) да ну!

а, кстати, CORDA FLIPPY  должно быть "любо" CORDAFLIPPY, или нет?
7 Ёпрст
 
16.11.11
17:26
(5) жарю еще один метод - СокрЛП()
8 Vadik_62
 
16.11.11
17:26
(5) не может быть.. выкладывай код
9 Ёпрст
 
16.11.11
17:26
+7 Дарю т.е
10 Vadik_62
 
16.11.11
17:26
(7) Это не то, что ему нужно
11 zladenuw
 
16.11.11
17:30
if Найти(Attribute,"Наименование")>0 then
            Value = СокрЛп(tValue);
           Если (New = 0) and (СтрЗаменить(СокрЛП(oldValue)," ","") <> СтрЗаменить(Value," ","")) and (Value<>0) and(Найти(СокрЛП(oldValue),Value)=0) Тогда
                ВремТбЗн.УстановитьЗначение(ВремТбЗн.НомерСтроки,Attribute,oldValue);
                ВремТбЗн.УстановитьЗначение(ВремТбЗн.НомерСтроки,"н"+Attribute,tValue);
           ИначеЕсли New=1 Тогда
                ВремТбЗн.УстановитьЗначение(ВремТбЗн.НомерСтроки,"н"+Attribute,tValue);
           КонецЕсли;
        endif;
12 Ёпрст
 
16.11.11
17:31
(11) ёпта, че за бредо код ?
Либо пиши всё по англицки, либо не выёживайся и пиши по-русски
13 zladenuw
 
16.11.11
17:32
(12) не мой код :(..... переписываю.... часть на русский
14 Ёпрст
 
16.11.11
17:33
(13) и где ты видишь, что
СтрЗаменить(СокрЛП(oldValue)," ","") <> СтрЗаменить(Value," ","") ??
15 Ёпрст
 
16.11.11
17:33
и товарищь отладчик что говорит по этому поводу ?
16 zladenuw
 
16.11.11
17:34
в таблице на форме.
17 zladenuw
 
16.11.11
17:35
(14) что не равное
18 Ёпрст
 
16.11.11
17:35
(16) че?
19 Ёпрст
 
16.11.11
17:37
Ёпта..
Сообщить((СокрЛП(oldValue))
Сообщить(СокрЛП(Value))
20 andrewks
 
16.11.11
17:38
Функция ТипаЛайк(Стр1,Стр2)
   
   ТекСтр1=СокрЛП(Стр1);
   НовСтр1=СтрЗаменить(ТекСтр1,"  "," ");
   Пока (НовСтр1<>ТекСтр1) Цикл
       ТекСтр1=НовСтр1;
       НовСтр1=СтрЗаменить(ТекСтр1,"  "," ");
   КонецЦикла;
   
   ТекСтр2=СокрЛП(Стр2);
   НовСтр2=СтрЗаменить(ТекСтр2,"  "," ");
   Пока (НовСтр2<>ТекСтр2) Цикл
       ТекСтр2=НовСтр2;
       НовСтр2=СтрЗаменить(ТекСтр2,"  "," ");
   КонецЦикла;
   
   Если (ТекСтр1=ТекСтр2) Тогда
       Возврат 1;
   Иначе
       Возврат 0;
   КонецЕсли;
КонецФункции
21 zladenuw
 
16.11.11
17:38
(20) спс. щас попробую
22 Vadik_62
 
16.11.11
17:42
(11) не хотел бы я столкнуться с подобным кодом.. ужаснах!
23 AlexYurg
 
16.11.11
17:42
А еще могут быть русские/латинские буквы (АВЕКМНОРСТУХ), которые выглядят одинаково, но на самом деле различны.
24 villy
 
16.11.11
18:37
(20) напомнил мне анекдот про "вечный кайф" )))
25 vova1122
 
17.11.11
14:01
(20) цикла здесь ненужно . СтрЗаменить делает замену всех пробелов за один проход
26 andrewks
 
17.11.11
14:11
(25) хренушки. ты не учитываешь вариант "пробела", состоящего из произвольного (более одного) числа символов пробела
27 vova1122
 
17.11.11
14:17
(26) Извиняюсь, не заметил что в приведеном коде пробелы сокращаются до одного. Хотя в даном случае правельнее вообще удалить все робелы...
28 KishMish
 
17.11.11
14:30
(27) скрипка лиса = скрип кал и са?
29 Voronve
 
17.11.11
14:53
(0)
Функция глСравнитьСтроки(<твоя строка 1>, <твоя строка 2>) Экспорт

спОДИН = глРазложить(<твоя строка 1>);
спДва = глРазложить(<твоя строка 2>);

Результат = 1;
Если спОДИН.РазмерСписка() = спДВА.РазмерСписка() Тогда
Для I = 1 По спОДИН.РазмерСписка() Цикл
Если спОДИН.ПолучитьЗначение(I) <> спДВА.ПолучитьЗначение(I) Тогда
Результат = 0;
Прервать;
КонецЕсли;
КонецЦикла;
Иначе
Результат = 0
КонецЕсли;

Возврат Результат;
КонецФункции

функцию глРазложить выдерни из ТиС
30 zladenuw
 
17.11.11
15:03
(29) буду знать
31 1Сергей
 
18.11.11
08:24
Функция УбратьСпейсы(Знач ИзСтроки)
   Пока Найти(ИзСтроки, "  ")>0 Цикл
       ИзСтроки = СтрЗаменить(ИзСтроки, "  ", " ");
   КонецЦикал;
   Возврат ИзСтроки;
КонецФункции