найти целые числа из строки #609875


#0 by tg30000
Подскажите что-то запутался.. Имеется строка, в ней нужно найти целые числа.. Процедура ПриНачалеРаботыСистемы
#1 by Ненавижу 1С
я нашел такие: 6 0 7 8 7 4 7 5 3 1 0 - всего 11 чисел
#2 by tg30000
не пойму как проверит посимвольно из строки является символ числом или нет, вот в чем вопрос.
#3 by Ненавижу 1С
Если Найти("0123456789",Символ)>0 Тогда
#4 by Wobland
КодСимвола МЕЖДУ НеПомнюЧем
#5 by ZanderZ
ну или так :) Попытка
#6 by vmv
не нада писать г-код, придерживайтесь стандартов, какими бы кривыми они не казались
#7 by vmv
рассрелять бы тебя)
#8 by Dmitry77
прикол в том, что 310 тоже целое число в , и цифры из которых он состоит - тоже целые числа, я бы тупо перебрал все подстроки - каждую из них форматировал в число через попытка - исключение, а потом из них отобрал бы целые
#9 by tg30000
Спасибо большое , разобрался теперь
#10 by Ненавижу 1С
я в курсе, но он же не пишет точную постановку
#11 by Маркетолог
А 75 считается за целое число ?
#12 by tg30000
На вход подается произвольная строка, фуннкция должна вернуть количество целых чисел в ней Целое число – последовательность символов, содержащая только цифры (отрицательные числа учитывать не требуется). При этом числа должны разделяться пробелами. Например, строки "10.5" и "число15" не содержат целых чисел.
#13 by Wobland
а ещё можно СтрЗаменить все нецифры на пробелы, разложить в многострочную строку, поудалять оттуда пустые строки...
#14 by tg30000
Стараюсь сделать по следующему принципу, пока не получается... В этой задаче можно использовать два вложенных цикла. В первом последовательно перебирать символы строки и сравнивать их с числом. Для сравнения символа с числом можно воспользоваться функцией КодСимвола. После того как получили первое число и если слева есть пробел запускать второй цикл, в котором последовательно проверять следующие символы и смотреть являются ли они числом. Если найденные символы числа и справа есть пробел, то найдено целое число. Счетчик чисел увеличить на 1.
#15 by Dmitry77
исходя из этой постановки решение телепаты не угадали.
#16 by Wobland
раскладывай в массив через пробелы, потом попыткой со счётчиком. просто.
#17 by Wobland
+ и ещё: Если Цел(а)=а Тогда ЯвляетсяЦелым
#18 by tg30000
Ок! Всем Спасибо за посильную помощь)
#19 by tg30000
Что-то не пойму если писать ВыбираемыйСимвол=Сред(СтрокаПоиска,Счетчик,1); то ВыбираемыйСимвол является строкой? как сделать проверку типа , число это или нет? Если Тип("Число")=ТипЗнч(ВыбираемыйСимвол) Тогда - не правильно же?
#20 by ZanderZ
в за что спасибо то сказал ?:)
#21 by tg30000
ну все при работе выявляется ,начал просто сейчас делать, появились вопросы.
#22 by ZanderZ
самое простое в используй пока это
#23 by СвинТуз
#24 by tg30000
Буду делать .Ок.
#25 by СвинТуз
а чего тут делать то? код что ли кривой? быстрее не будет
#26 by tg30000
Все верно Вы привели, я думаю как сделать : Целое число – последовательность символов, содержащая только цифры (отрицательные числа учитывать не требуется). При этом числа должны разделяться пробелами. Например, строки "10.5" и "число15" не содержат целых чисел.
#27 by tg30000
Должно вывестись 2 числа.( 74 и 75)
#28 by СвинТуз
а так что ли? ну счас
#29 by СвинТуз
фигня вопрос
#30 by Fragster
Регулярка(s|^)d+(s|$)
#31 by aleks-id
уже третий по счету...
#32 by Fragster
я хз, не читатель. Но для поиска такого вот - это наибыстрейший и наичитабельнейший (легко сопровождаемый) вариант.
#33 by СвинТуз
#34 by tg30000
все работает! Спасибо огромное, буду разбираться вечером для понимания. Подскажите как лучше по 1с учиться, я начал с 1с Быстрый старт (Гилева), что еще порекомендуете?)
#35 by СвинТуз
хз я вообще фокпро учил
#36 by tg30000
Спасибо)
#37 by СвинТуз
*фокспро а вообще смотрите литературу по потребности мне проще я программировать научился до прихода в 1с на чем тут новички учатся даже не знаю сейчас вообще часто люди предметную область знают и имеют деньги а писать вроде как и не обязательно ))) такой вот расклад
#38 by СвинТуз
и вообще чем дальше тем меньше кодеров как таковых ))) удачи
#39 by tg30000
Этим нужно жить, в плане профессии что бы стать действительно хорошим специалистом,ведь если сам хочешь что-то добиться и интерес есть то все получится) Спасибо еще раз ! Вам тоже всего хорошего)
#41 by Fragster
а регулярные выражения всё равно знать надо, вдруг они в 1с таки появятся
#42 by СвинТуз
ну некоторые например любят рекурсию а я например даже не знаю что это такое как на мехмате -1 бал на практике получил вместе с популярным объяснением , что рекурсия для ленивых идиотов ... и почему для них так сразу и забыл о ней зато узнал что такое ресурсы а некоторые любят ) тут от многого зависит ))) даже при приеме на работу ее дают
#43 by СвинТуз
жизнь многообразна
#44 by aleks-id
я про тему. две точно таких же было уже. вторую не могу найти, и третья наподобие
#45 by Fragster
если сравнишь и на строках > 100 символов, то будет быстрее.
#46 by Fragster
+ и чем больше строка - тем разница будет больше
#47 by СвинТуз
ты вообще о чем? Регулярка(s|^)d+(s|$) это вообще о чем? я наверное не в теме = я не понимаю что то из области фантастики?
#48 by Fragster
ну, типа того. офигенная тема для манипуляции со строками.
#49 by СвинТуз
не я подозреваю что лет через пять оно обязательно начнет работать на 1с и на строке длиннее 100 символов будет давать большую скорочть чем длинный код сейчас то как работает?
#50 by Fragster
#52 by Fragster
#53 by СвинТуз
гы ... да ты озверел что ли? ради этих слез по выигрышу скорости целый комобъект подключать? ну развлекайся если есть желание
#54 by СвинТуз
я уже перерос
#55 by Fragster
ну, у тебя видимо, не было затыка именно в скорости обработки строк.
#56 by СвинТуз
не знаю ... никогда не тормозило именно на строках все больше на обращению к серверам при больших запросах
#57 by Fragster
+ а когда в документе >100к серийных номеров, то хранить их можно только как строку с разделителями. даже примитивный ПолучитьМассивИзСтроки принимает вид не совсем эстетичный:
#58 by Fragster
ну и вот еще
#59 by СвинТуз
на фоксе тоже было время ради работы с каталогами бейсиковские объекты подключал красиво было писать ))) пару циклов в одну строку вмещал = круто а потом как то потерялся этот комобъект то ли винду поменяли ... то ли способ подключения ...
#60 by Fragster
ну, выпилить WSH из винды достаточно сложно
#61 by СвинТуз
ну пользуйте конечно тем более это еще один способ сбить со следа конкурентов, и последователей , которые не в курсе методов этого объекта
#62 by Fragster
использование только сократит и упростит код. Извраты типа сделаны от безысходности. на строке, которая в 50к массив должна разложиться дает выигрыш около 300 раз
#63 by Kreont
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С