Не могу найти различия в строках

1. Metabos 29 29.10.21 13:19 Сейчас в теме
Добрый день! Есть 2 переменные, строкового типа ТекЗначение и ЗначениеТекст. Каждое из которых имеет одинаковое значение когда я их сравниваю при отладке. Но сравнение самих переменных ТекЗначение = ЗначениеТекст принимает значение Ложь. Как такое может быть? Как найти ошибку?
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
13. zelenii 29.10.21 13:38 Сейчас в теме
Ответ прост - такого не может быть. Можно проверить по символьно. Может символы в разных языках набраны. Собственно так и делайте.
Проверьте на соответсвие каждого символа. Что-то типа
СРед(Строка1,1,1) = Сред(Строка2,1,1)
17. Torin 846 29.10.21 13:46 Сейчас в теме
(15) вы думаете "'это чудо чудное? и диво дивное" ?
Значить есть различия!
P/S Сравнивайте по символьно :)
20. spacecraft 29.10.21 13:49 Сейчас в теме
(14) все же попробуйте посимвольное сравнение
ТекЗначение = "Тут текущее значение";
ЗначениеТекст = "Тут текущeе значeние";
ДлинаТекста = СтрДлина(ЗначениеТекст);
Для К = 1 По ДлинаТекста Цикл
	Если Сред(ТекЗначение, К, 1) <> Сред(ЗначениеТекст, К, 1) Тогда
		Сообщить(""+Строка(К)+" символ отличается");
	КонецЕсли;
КонецЦикла;
Показать


И да, в приведенном примере эти строки разные )
35. zelenii 29.10.21 15:50 Сейчас в теме
(33)
Глобальный контекст (Global context)
КодСимвола (CharCode)
Синтаксис:
КодСимвола(<Строка>, <НомерСимвола>)
Параметры:
<Строка> (обязательный)
Тип: Строка.
Исходная строка.
<НомерСимвола> (необязательный)
Тип: Число.
Номер символа в строке, код которого необходимо получить. Нумерация символов в строке начинается с 1.
Значение по умолчанию: 1.
Возвращаемое значение:
Тип: Число.
Код переданного символа. Код возвращается в соответствии с кодировкой Unicode.
Описание:
Получает код символа, расположенного в переданной строке в позиции с указанным номером.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Пример:
КодПервогоСимволаФамилии = КодСимвола(Сотрудник.Фамилия);
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
36. spacecraft 29.10.21 16:07 Сейчас в теме
(33) для начала определите, что это за код символа.
Сообщить(КодСимвола(Сред(ЗначениеТекст,1,1));
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
9. Sashares 33 29.10.21 13:34 Сейчас в теме
(1)Вы вот на полном серьезе спрашиваете в чем отличаются строки, которые вы закрасили?
Где логика?
DJ_Codebase; succub1_5; FatPanzer; +3 Ответить
10. Metabos 29 29.10.21 13:35 Сейчас в теме
(9) Это я скопировала значения. Пронумеровала под 1 и 2. Поверьте, я не просто так закрасила. Обстоятельства.
12. Sashares 33 29.10.21 13:38 Сейчас в теме
(10)Вне зависимости от ваших обстоятельств информации в закрашенном скрине больше не станет.
16. Metabos 29 29.10.21 13:44 Сейчас в теме
21. Sashares 33 29.10.21 13:53 Сейчас в теме
(16)Мне то зачем сочувствовать? Это просто вы никаких других ответов по теме больше не получите.
DJ_Codebase; +1 Ответить
2. Ravil_ 29.10.21 13:22 Сейчас в теме
жаль все не закрасил
XAKEP; succub1_5; +2 Ответить
46. XAKEP 30.10.21 06:20 Сейчас в теме
(2)
секретная воинская часть ООН
3. DenisVol 2 29.10.21 13:24 Сейчас в теме
информативный скрин))
succub1_5; +1 Ответить
6. Metabos 29 29.10.21 13:33 Сейчас в теме
(2)
(3)
:-)) Извините. Очень будет очевидно для моих сотрудников, они сидят тут часто и мне палиться не хочется.
47. XAKEP 30.10.21 18:28 Сейчас в теме
(6)
вы же по имени "вычисляемая" :)
4. rintik 19 29.10.21 13:25 Сейчас в теме
В одном случае - строка, в другом элемент списка значений?
7. Metabos 29 29.10.21 13:33 Сейчас в теме
11. Torin 846 29.10.21 13:36 Сейчас в теме
(7) Иванов и Иванoв не = ! Так как o ( анг )
15. Metabos 29 29.10.21 13:43 Сейчас в теме
(11) Так у меня когда я копирую значение каждой переменной и сравниваю, получается Истина. А когда сами переменные, то Ложь.
17. Torin 846 29.10.21 13:46 Сейчас в теме
(15) вы думаете "'это чудо чудное? и диво дивное" ?
Значить есть различия!
P/S Сравнивайте по символьно :)
23. Metabos 29 29.10.21 13:54 Сейчас в теме
(17)Да можно и посимвольно. Но смысл. Если обе строки одинаковые.
24. Torin 846 29.10.21 13:59 Сейчас в теме
(23) считаете баг платформы? :)
25. ishelper 29.10.21 14:11 Сейчас в теме
(24)
баг платформы? :)
Нет, это заговор! Против меня и Франции Глафиры Ивановой! И мы все в нем участвуем!!!
26. Metabos 29 29.10.21 14:13 Сейчас в теме
(24)Не знаю. Может что то не так делаю..
5. starjevschik 29.10.21 13:31 Сейчас в теме
я бы начал с СОКРЛП()
надо копаться с отладчиком, удаленно непонятно.
8. Metabos 29 29.10.21 13:34 Сейчас в теме
(5)Делала и СОКРЛП() и к строке принудительно преобразовывала. Все равно Ложь и все тут..
В отладчике и копаюсь.
32. starjevschik 29.10.21 15:21 Сейчас в теме
(8) тогда я бы взглянул на весь код. Что-то другое сравнивается, не то, что на скринах.
34. Metabos 29 29.10.21 15:49 Сейчас в теме
(32)Уже ниже писала, что есть какой то первый символ который не виден вообще, наверное надо его опознать и если он есть в строке, то убирать.
13. zelenii 29.10.21 13:38 Сейчас в теме
Ответ прост - такого не может быть. Можно проверить по символьно. Может символы в разных языках набраны. Собственно так и делайте.
Проверьте на соответсвие каждого символа. Что-то типа
СРед(Строка1,1,1) = Сред(Строка2,1,1)
14. Metabos 29 29.10.21 13:42 Сейчас в теме
(13)Понимаете я сравниваю целые строки и они равны. Думаете если посимвольно, то будет что то другое?
18. zelenii 29.10.21 13:46 Сейчас в теме
(14)
Тогда такой ответ - две одинаковые строки не могут не быть равными.
19. Metabos 29 29.10.21 13:48 Сейчас в теме
(18)Да, я тоже так считаю. Но вот по факту не равно и не отрабатывает как надо.
29. nomad_irk 81 29.10.21 14:47 Сейчас в теме
(19)Шайтанама!!! Шок контент!!!!111 Смотреть до конца!!!11
Прикрепленные файлы:
30. zelenii 29.10.21 14:59 Сейчас в теме
(29)
Вообще то ты сравнил два значение и присвоил результат сравнения переменной. Так и в типовых такое я недавно начал замечать. Раньше такого не было!!!11
А так и так понятно одно - текст у автора разный. На том стоял и стоять буду.
31. nomad_irk 81 29.10.21 15:08 Сейчас в теме
(30)Я сравнил значения двух переменных, как делал это ТС и получил предсказуемый результат в отличие от ТС.
20. spacecraft 29.10.21 13:49 Сейчас в теме
(14) все же попробуйте посимвольное сравнение
ТекЗначение = "Тут текущее значение";
ЗначениеТекст = "Тут текущeе значeние";
ДлинаТекста = СтрДлина(ЗначениеТекст);
Для К = 1 По ДлинаТекста Цикл
	Если Сред(ТекЗначение, К, 1) <> Сред(ЗначениеТекст, К, 1) Тогда
		Сообщить(""+Строка(К)+" символ отличается");
	КонецЕсли;
КонецЦикла;
Показать


И да, в приведенном примере эти строки разные )
27. Metabos 29 29.10.21 14:40 Сейчас в теме
(20)
ТекЗначение = "Тут текущее значение";
ЗначениеТекст = "Тут текущeе значeние";
ДлинаТекста = СтрДлина(ЗначениеТекст);
Для К = 1 По ДлинаТекста Цикл
Если Сред(ТекЗначение, К, 1) <> Сред(ЗначениеТекст, К, 1) Тогда
Сообщить(""+Строка(К)+" символ отличается");
КонецЕсли;
КонецЦикла;

(20)
Сравнила, в ЗначениеТекст есть какой то лишний первый символ. Но что это за символ я не могу понять. И длина получилась разная.. Как убрать этот первый символ?
28. spacecraft 29.10.21 14:44 Сейчас в теме
(27) ЗначениеТекст = Сред(ЗначениеТекст,2);
33. Metabos 29 29.10.21 15:48 Сейчас в теме
(28) Так нельзя. Потому что есть значения у которых все ок. Можно как то определить что это за символ и если он есть, то обрубать?
35. zelenii 29.10.21 15:50 Сейчас в теме
(33)
Глобальный контекст (Global context)
КодСимвола (CharCode)
Синтаксис:
КодСимвола(<Строка>, <НомерСимвола>)
Параметры:
<Строка> (обязательный)
Тип: Строка.
Исходная строка.
<НомерСимвола> (необязательный)
Тип: Число.
Номер символа в строке, код которого необходимо получить. Нумерация символов в строке начинается с 1.
Значение по умолчанию: 1.
Возвращаемое значение:
Тип: Число.
Код переданного символа. Код возвращается в соответствии с кодировкой Unicode.
Описание:
Получает код символа, расположенного в переданной строке в позиции с указанным номером.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Пример:
КодПервогоСимволаФамилии = КодСимвола(Сотрудник.Фамилия);
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
41. Metabos 29 29.10.21 17:44 Сейчас в теме
(35) Получился код 8203. Вообщем сейчас я исключила его и все ок, работает.
45. -AI- 29.10.21 23:09 Сейчас в теме
(41)
Получился код 8203

ZERO-WIDTH SPACE, пробел нулевой длины.

строка с этим символом откуда-то скопипастина со спецсимволом.

PS уже разобрались ниже, не сразу увидел.
36. spacecraft 29.10.21 16:07 Сейчас в теме
(33) для начала определите, что это за код символа.
Сообщить(КодСимвола(Сред(ЗначениеТекст,1,1));
22. Torin 846 29.10.21 13:53 Сейчас в теме
(14) Функция работы со строками СтрСравнить()
Эта функция сравнивает две строки без учёта регистра. Например, так:

Результат = СтрСравнить("Первая строка", "Вторая строка")
Это же действие вы могли выполнить и раньше с помощью объекта СравнениеЗначений
37. starik-2005 3165 29.10.21 16:49 Сейчас в теме
СтрДлина(А), СтрДлина(Б) - получите длину. Дальше уже, если длины одинаковые, то дальше будете думать...
38. Metabos 29 29.10.21 17:17 Сейчас в теме
(37)Уже выше писала, что разные. Затесался в начале символ какой то, но его не видно.
39. starik-2005 3165 29.10.21 17:18 Сейчас в теме
(38)
Затесался в начале символ какой то, но его не видно
Скопируйте в нотпэд++ для начала...
40. sssss_aaaaa_2011 29.10.21 17:18 Сейчас в теме
(38)Ну так смотрите коды символов. Наверняка там 160 (неразрывный пробел).
43. ishelper 29.10.21 18:41 Сейчас в теме
(40)
Наверняка там 160 (неразрывный пробел)
Еще круче: Пробел нулевой ширины

Откуда он взялся в строке - знает только автор ветки... и то не факт (что знает).
44. Metabos 29 29.10.21 22:24 Сейчас в теме
(43)Да, так и было. Код символа 8203. Взялся из файла эксель, который я гружу.
42. Metabos 29 29.10.21 17:46 Сейчас в теме
Всем спасибо! Был в самом начале невидимый символ.
Оставьте свое сообщение

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