|   |   | 
| 
 | Пробелы 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) Со СтрЗаменить без цикла тоже можно: 
 СтрЗаменить(СтрЗаменить(СтрЗаменить(Строка, " ", " $"), "$ ", ""), "$", "") $ - какой-нибудь редкий символ, например вертикальная табуляция. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |