|
Загрузка из Excel, как удалить непечатные символы? | ☑ | ||
---|---|---|---|---|
0
SachoZ
19.02.13
✎
00:49
|
Загружаю прайс-лист (ADODB), получаю текст из ячейки:
RecordSet.Fields(1).Value Как из этого текста удалить непечатные символы (перевод каретки и т.п.) оставить только кириллицу/латиницу/цифры/символы/пробел? |
|||
1
Magic Dick
19.02.13
✎
00:50
|
СтрЗаменить
|
|||
2
GANR
19.02.13
✎
00:51
|
РезультирующийТекст = СтрЗаменить(ИсходныйТекст, НепечатныйСимвол, "");
|
|||
3
SachoZ
19.02.13
✎
01:07
|
(1)(2) а не так банально?
|
|||
4
HeroShima
19.02.13
✎
01:13
|
regexp
|
|||
5
SachoZ
19.02.13
✎
01:21
|
Написал такое:
Функция ОчиститьТекст(стр) Экспорт RegExp = Новый COMОбъект("VBScript.RegExp"); RegExp.IgnoreCase = Истина; //Игнорировать регистр RegExp.Global = Истина; //Поиск всех вхождений шаблона RegExp.MultiLine = Истина; //Многострочный режим RegExp.Pattern = "![^\w\d\s]*!"; стр = СокрЛП(RegExp.Replace(стр, "")); Если стр = "" Тогда Возврат 0; КонецЕсли; стр = СтрЗаменить(стр,Символы.ПС, " "); стр = СтрЗаменить(стр,Символы.Таб, ""); стр = СтрЗаменить(стр,Символы.НПП, " "); стр = СтрЗаменить(стр,Символы.ВК, ""); стр = СтрЗаменить(стр,Символы.ПФ, " "); стр = СтрЗаменить(стр," ", " "); Возврат СокрЛП(стр); КонецФункции |
|||
6
HeroShima
19.02.13
✎
01:23
|
а СтрЗаменить тогда зачем?
|
|||
7
SachoZ
19.02.13
✎
01:23
|
Верней так:
Функция ОчиститьТекст(стр) Экспорт RegExp = Новый COMОбъект("VBScript.RegExp"); RegExp.IgnoreCase = Истина; //Игнорировать регистр RegExp.Global = Истина; //Поиск всех вхождений шаблона RegExp.MultiLine = Истина; //Многострочный режим RegExp.Pattern = "![^\w\d\s]*!"; стр = RegExp.Replace(стр, ""); стр = СтрЗаменить(стр,Символы.ПС, " "); стр = СтрЗаменить(стр,Символы.Таб, " "); стр = СтрЗаменить(стр,Символы.НПП, " "); стр = СтрЗаменить(стр,Символы.ВК, " "); стр = СтрЗаменить(стр,Символы.ПФ, " "); стр = СтрЗаменить(стр," ", " "); Возврат СокрЛП(стр); КонецФункции |
|||
8
SachoZ
19.02.13
✎
01:24
|
(6) надо удалить символы перевода каретки шаблон \s их пропускает, а другого как обозначить проблеы не знаю.
|
|||
9
HeroShima
19.02.13
✎
01:35
|
по-моему у тебя регулярка неправильно составлена
|
|||
10
SachoZ
19.02.13
✎
02:05
|
ну да регулярка пропускала ненужные мне символы, переделал в такую:
RegExp.Pattern = "[^АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЬЫЭЮЯЇЄҐІabcdefghijklmnopqrstuvwxyz\s%~`!@#$%^&*()+>,<.?/-_|0987654321\\':;""]"; |
|||
11
HeroShima
19.02.13
✎
02:47
|
всё равно хрень
|
|||
12
SachoZ
19.02.13
✎
11:05
|
(11) ну я протестил,все перечисленные символы пропускает, остальное вырезает, чего хрень?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |