Имя: Пароль:
1C
1С v8
Заменить символ на Chr(255)
0 AndyR
 
06.11.12
14:18
Собственно сабж. Есть некая строка, нужно в ней определенную последовательность символов замениить на символ с кодом 255:

Стр1 = СтрЗаменить(Стр, "*FF*", Символ(255));

Приведенный пример, естественно, не работает, т.к. Символ() возвращает UTF-8.
Подскажите, как добиться желаемого.
1 Пеппи
 
06.11.12
14:20
Стр1 = СтрЗаменить(Стр, "*FF*", "Символ(255)"); ?
2 AndyR
 
06.11.12
14:25
Прикольно. Результат только не тот.
3 Reset
 
06.11.12
14:26
"естественно, не работает"
Почему?
4 Reset
 
06.11.12
14:27
КодСимвола(СтрЗаменить("1","1",Символ(255)))
// 255
5 Reset
 
06.11.12
14:27
Сообщить(...)
6 Reset
 
06.11.12
14:28
Вот это тоже не понял:
"т.к. Символ() возвращает UTF-8"
7 AndyR
 
06.11.12
14:30
Синтаксис:

Символ(<КодСимвола>)
Параметры:

<КодСимвола> (обязательный)

Тип: Число.
Код получаемого символа. Код задается в соответствии с кодировкой Unicode

И Символ(255) занимает фактически 2 байта. А мне надо 1 байт = 255.
8 Reset
 
06.11.12
14:31
При чем здесь байты? Нет такого понятия
9 Reset
 
06.11.12
14:32
Почему сразу все не рассказать? Зачем загадками изясняться
10 Maxus43
 
06.11.12
14:33
какой то велосипед по переводу 16-ного кода в 10-ый, причем не понимая что и FF и 255 - одно и тоже
11 AndyR
 
06.11.12
14:36
Похоже да, надо больше кода. Модельный пример:

Стр = "мама мыла *FF* раму";
Стр1 = СтрЗаменить(Стр, "*FF*", ???);
ТД = Новый ТекстовыйДокумент;
ТД.ДобавитьСтроку(Стр1);
ТД.Записать("с:\qwert.txt", КодировкаТекста.OEM);


В результате в файле хочу видеть символ с кодом 255 между "мыла" и "раму"
12 aka AMIGO
 
06.11.12
14:37
"255"  - это вроде буква "я"
13 AndyR
 
06.11.12
14:39
Не в досовой кодировке.
14 aka AMIGO
 
06.11.12
14:41
ну, да.. сейчас у меня вин-2000, раскаладка с кириллицей, вот в ней и буква
значит, надо как-то учитывать кодовые страницы,из которых этот символ извлекается
15 oleg_km
 
06.11.12
14:42
Пользуй ADODB.Stream пока лавочку не прикрыли, там все можно
16 Reset
 
06.11.12
14:43
(11) По моему, средствами ТекстовыйДокумент это нельзя сделать
17 AndyR
 
06.11.12
14:48
От же ж блин...
Вот тут нарыл вкусную табличку http://msdn.microsoft.com/en-US/goglobal/cc305166.aspx
Этакое соответствие между OEM866 и Unicode. Там как раз 255 символ в Unicode звучит как 0x00A0.
Поставил в исходник Символ(160), сохранил и вуаля - получилось.
Всем спасибо за отклик.
18 Reset
 
06.11.12
14:53
(17) Оригинально, спс за ссылку
19 AndyR
 
06.11.12
14:56
Еще: при записи надо обязательно ставить КодировкаТекста.OEM, просто "cp866" превращает все FF в 3F.
20 rrunover
 
06.11.12
15:40
Символ255 = Символ(255);
Стр1 = СтрЗаменить(Стр, "*FF*", Символ255);