|
Пробелы 1с | ☑ | ||
---|---|---|---|---|
0
Fargot
29.06.21
✎
12:14
|
Здравствуйте подскажите пожалуйста,как убрать пробелы лишние в строке между цифрами и словами
|
|||
1
Волшебник
модератор
29.06.21
✎
12:19
|
||||
2
Fargot
29.06.21
✎
12:24
|
Нужно убрать кучу лишних пробелов подряд :с
|
|||
3
Злопчинский
29.06.21
✎
12:29
|
я хз как это в 8-ке, в 77 так:
Пока Найти(МояСтрока," ") <> 0 Тогда МояСтрока = СтрЗаменить(МояСтрока," "," "); КонецЦикла; |
|||
4
Новый1сник2
29.06.21
✎
12:30
|
(2) СтрЗаменить("Произвольная Строка", " " , "")
|
|||
5
Злопчинский
29.06.21
✎
12:30
|
в Найти и второй параметр в СтрЗаменить - в кавычках два пробела
|
|||
6
Галахад
гуру
29.06.21
✎
12:31
|
(3) В 8-ке есть СтрРазделить, СтрСоединить
|
|||
7
Злопчинский
29.06.21
✎
12:31
|
(4) это точно неправильно
|
|||
8
Новый1сник2
29.06.21
✎
12:32
|
(7) да правильнее с двумя пробелами, СтрЗаменить("Произвольная Строка", " " , "")
|
|||
9
Bigbro
29.06.21
✎
12:33
|
в (3) вместо "тогда" "цикл"
|
|||
10
Злопчинский
29.06.21
✎
12:35
|
(9) ага, сорри, описался.. ;-)
|
|||
11
Злопчинский
29.06.21
✎
12:35
|
(8) так тоже неправильно
|
|||
12
Новый1сник2
29.06.21
✎
12:37
|
(11) да вижу, третий параметр один пробел нужно оставить
|
|||
13
Новый1сник2
29.06.21
✎
12:38
|
(11) СтрЗаменить("Произвольная Строка", " " , " "), так правильно ?
|
|||
14
apdate by
29.06.21
✎
12:39
|
Символы.ПП вроде
|
|||
15
Bigbro
29.06.21
✎
12:39
|
(13) теперь оберни в цикл и получишь (3)
потому что пробелов может быть и 3 подряд и больше. |
|||
16
Злопчинский
29.06.21
✎
12:40
|
(12) так тоже будет работать неправильно (скорее всего, не думаю что в 8-ке изменили порядок обработки, скорее всего осталось как в 77): проведи тест
МояСтрока = "1здесьтрипробела2"; МояСтрока = СтрЗаменить(МояСтрока,"здесьдвапробела","здесьодинпробел"); Сообщить(СтрЧислоВхождений(МояСтрока,"здесьодинпробел"); . сообщи результат ;-) |
|||
17
Злопчинский
29.06.21
✎
12:41
|
(15) опередун...
|
|||
18
Злопчинский
29.06.21
✎
12:41
|
(15) стаж больше 5 лет у чела... ;-)
да.. восьмерочники - они такие.... |
|||
19
Галахад
гуру
29.06.21
✎
12:45
|
Циклы...
СтрВход = "воладыо лдоыаоы 12321"; МассивСтрок = СтрРазделить(СтрВход, " ", Ложь); СтрВыход = СтрСоединить(МассивСтрок, " "); |
|||
20
Новый1сник2
29.06.21
✎
12:46
|
(15) согласен, нужно делать в цикле.
|
|||
21
apdate by
29.06.21
✎
12:48
|
Не знаю подойдет ли когда то делал для поиска при загрузке из стороннего ПО данных
&НаСервере Функция Транслит(Вход) Экспорт УдалитьСимволы = Вход; УдалитьСимволы = СтрЗаменить(УдалитьСимволы, """", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, "(", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, ")", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, "_", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, "__", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, " ", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, " ", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, " ", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, ",", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, ".", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, "}", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, "{", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, "[", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, "]", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, "-", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, "--", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, "---", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, "`", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, "~", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, "*", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, "^", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, ";", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, ":", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, "&", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, "?", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, "%", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, "$", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, "#", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, "№", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, "@", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, "!", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, "+", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, "-", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, "=", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, "/", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, "|", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, "||", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, "\", ""); УдалитьСимволы = СтрЗаменить(УдалитьСимволы, "*", ""); Коды = Новый Соответствие; Коды.Вставить("ё","yo"); Коды.Вставить("Ё","Yo"); Нач = КодСимвола("А"); Англ = "A" "B" "V" "G" "D" "E" "Zh" "Z" "I" "Y" "K" "L" "M" "N" "O" "P" "R" "S" "T" "U" "F" "Kh" "Ts" "Ch" "Sh" "Shch" "" "Y" "" "E" "Yu" "Ya" "a" "b" "v" "g" "d" "e" "zh" "z" "i" "y" "k" "l" "m" "n" "o" "p" "r" "s" "t" "u" "f" "kh" "ts" "ch" "sh" "shch" "" "y" "" "e" "yu" "ya"; Для К = Нач по КодСимвола("я") Цикл Коды.Вставить(Символ(К), СтрПолучитьСтроку(Англ, К - Нач + 1)); КонецЦикла; Выход = ""; Для К=1 по СтрДлина(УдалитьСимволы) Цикл Бкв = Сред(УдалитьСимволы,К,1); Зн = Коды.Получить(Бкв); Выход = Выход + ?(Зн = Неопределено, Бкв, Зн); КонецЦикла; Возврат Выход; КонецФункции |
|||
22
apdate by
29.06.21
✎
12:50
|
используйте УдалитьСимволы = СтрЗаменить(УдалитьСимволы, """", "");
я сырой в 1С но все - же так бы и поступил какая разница сколько раз ты заюзаешь УдалитьСимволы = СтрЗаменить(УдалитьСимволы, """", ""); или в цикле? |
|||
23
Hans
29.06.21
✎
12:50
|
все работает
СтрЗаменить("Произвольная Строка ", " " , "") |
|||
24
Hans
29.06.21
✎
12:50
|
Зачем циклы?
|
|||
25
apdate by
29.06.21
✎
12:52
|
ну или же
можно думаю так что ле А = Истина; ПОка А = Истина Цикл ЕстьЕщеПРобелы = СтрНайти("Блв "," "); Если ЕстьЕщеПРобелы > 0 Тогда УдалитьСимволы = СтрЗаменить(УдалитьСимволы, " ", ""); ИНаче А = Ложь; КонецЕсли; КонецЦикла; |
|||
26
Hans
29.06.21
✎
12:53
|
На ровном месте костыли выдумываете.
|
|||
27
Злопчинский
29.06.21
✎
12:54
|
(24) что говорит у тебя тест из (16)..?
|
|||
28
Галахад
гуру
29.06.21
✎
12:54
|
(23) А что делать с: СтрЗаменить("Произвольная Строка ", " " , "")
|
|||
29
apdate by
29.06.21
✎
12:54
|
(23) а если будет в строке 10 символов пробела? одновременно
например вот так А = "Привет мир"; что (23) сделает? |
|||
30
Hans
29.06.21
✎
12:58
|
(29) все нормально сделает, если вторым параметром указывать один символ.
|
|||
31
Hans
29.06.21
✎
12:59
|
(27) Не так понял тему. Оказывается надо не все убирать, а лишние.
|
|||
32
Hans
29.06.21
✎
13:00
|
Тогда да, ваши костыли семерочные.
|
|||
33
Злопчинский
29.06.21
✎
13:00
|
(30) не сделает нормально.
я, блин, клюшечник мохнатый, залез в свою 8-ую WMS, в табло проверил. Не сделает нормально. |
|||
34
Злопчинский
29.06.21
✎
13:01
|
(31) ну так даже и все не уберет...
восьмерочник, блин, 12 лет стажа... . "как дети..." |
|||
35
apdate by
29.06.21
✎
13:02
|
Полез в отладчик да (23) реально верно работает
пардоньте. да к стати (31) я ту да же |
|||
36
Галахад
гуру
29.06.21
✎
13:02
|
(34) (19) проверь.
|
|||
37
Bigbro
29.06.21
✎
13:04
|
охренеть. 36 постов в обсуждении вопроса ответ на который был дан в 3 посте.
|
|||
38
Галахад
гуру
29.06.21
✎
13:05
|
(37) Всегда так было. :)
|
|||
39
Злопчинский
29.06.21
✎
13:09
|
(36) зачем? если работает - то работает (думаю что так), не работает - к (3) отношения не имеет
|
|||
40
Злопчинский
29.06.21
✎
13:09
|
Восьмерочники сегодня сделали мой день ;-)
|
|||
41
apdate by
29.06.21
✎
13:16
|
Пошел в 1С написал такую ерунду
А = "Привет мир"; Б = ""; МассивСтрок = СтрРазделить(А, " ", Ложь); Если МассивСтрок.Количество() > 0 Тогда Для Каждого ПОдстрока ИЗ МассивСтрок Цикл Б = Б+ПОдстрока+" "; КонецЦикла; КонецЕсли; //Рез "Б"=>Привет мир потом заглянул на форум и увидел (19) пошел снова в 1С да! работает ) МассивСтрок = СтрРазделить(А, " ", Ложь); СтрВыход = СтрСоединить(МассивСтрок, " "); //Рез "СтрВыход"=>Привет мир (19) возьму на заметку! |
|||
42
Злопчинский
29.06.21
✎
13:57
|
еще учесть что вместо пробела запросто может стоять неразрывный пробел
|
|||
43
Hans
29.06.21
✎
14:20
|
(42) Приведи полный код, а то я неосилю.
|
|||
44
Вафель
29.06.21
✎
14:21
|
надо на regexp переходить. там можно без циклов задачу решить
|
|||
45
ДенисЧ
29.06.21
✎
14:22
|
(44) Типа регекспы унутре, рядом с неонкой, без цикла работают?
|
|||
46
Meilleur
29.06.21
✎
15:03
|
RegExp = Новый COMОбъект("VBScript.RegExp");
RegExp.Global = Истина; RegExp.Pattern = "\s";//удаляем все нецифровые символы ИтоговаяСтрока = RegExp.Replace(Стр, ""); Сообщить(ИтоговаяСтрока); |
|||
47
Meilleur
29.06.21
✎
15:04
|
(46) Только комментарий я забыл подправить в своём коде. Для нецифровых символов команда будет:
RegExp.Pattern = "\D+"; |
|||
48
Meilleur
29.06.21
✎
15:21
|
Но я, кажется, невнимательно прочитал условие. Прошу прощения. Тогда лучше как в (19)
|
|||
49
apdate by
30.06.21
✎
09:06
|
(43) МассивСтрок = СтрРазделить(А, Неразрывный пробел, Ложь);
СтрВыход = СтрСоединить(МассивСтрок, " "); |
|||
50
Timon1405
30.06.21
✎
09:18
|
(46) RegExp.Pattern = "\s+";
ИтоговаяСтрока = RegExp.Replace(Стр, " "); |
|||
51
Hans
30.06.21
✎
10:03
|
Если уже трое написали без цикла СтрЗаменить("Произвольная Строка ", " " , "") значит рабочее решение.
|
|||
52
1Сергей
30.06.21
✎
10:24
|
(51) миллиарды мух не могут ошибаться
|
|||
53
Hans
05.07.21
✎
12:59
|
(52) Это ты что ли на 330м обитаешь?
|
|||
54
1Сергей
05.07.21
✎
13:04
|
(53) Обитаю. А что?
|
|||
55
cathode
06.07.21
✎
07:47
|
(51) Со СтрЗаменить без цикла тоже можно:
СтрЗаменить(СтрЗаменить(СтрЗаменить(Строка, " ", " $"), "$ ", ""), "$", "") $ - какой-нибудь редкий символ, например вертикальная табуляция. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |