Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
11 Дек 2017, 05:26
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Число  (Прочитано 4666 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн artm81

  • ***
  • Сообщений: 190
  • РЕПУТАЦИЯ: 1
  • КПД: 1%
  • Регистрация: 2010-08-03
  • Сайт: 
Число
« Первое сообщение: 09 Май 2012, 20:15 »
Подскажите,пожалуйста, как в переменной типа СТРОКА найти символ, тип которого ЧИСЛО. Например,  Строка = " В этой строке найти число 5" . (Вот при обходе этой строки посимвольно нужно узнать,когда дойдём до 5). Спасибо!


Оффлайн sadovod

  • ****
  • Сообщений: 289
  • РЕПУТАЦИЯ: 53
  • КПД: 18%
  • Регистрация: 2012-02-19
  • Сайт: 
  • Профессия: Программист 1С
Re: Число
« Ответ #1: 09 Май 2012, 21:13 »
Ну, например вот так:
   строка = "8 В эт3ой стр4оке найти число 5";
   ДлинаСтроки = СтрДлина(строка);
   Для i=1 По ДлинаСтроки Цикл
      СимКод = КодСимвола(строка, i);
      Если СимКод > 47 И СимКод < 58 Тогда
         Сообщить("Цифра в позиции строки N " + i)
      КонецЕсли;
   КонецЦикла;

Оффлайн artm81

  • ***
  • Сообщений: 190
  • РЕПУТАЦИЯ: 1
  • КПД: 1%
  • Регистрация: 2010-08-03
  • Сайт: 
Re: Число
« Ответ #2: 09 Май 2012, 21:21 »
А есть другой способ не по КодСимвола?

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Re: Число
« Ответ #3: 09 Май 2012, 22:00 »
Да
1. через массив чисел
2. Регулярные выражения
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн LexaK

  • *****
  • Сообщений: 1267
  • РЕПУТАЦИЯ: 347
  • КПД: 27%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
Re: Число
« Ответ #4: 16 Май 2012, 14:41 »
Есть не по КодСимвола

Строка = " В этой строке найти число 5";
Для поз=1 По СтрДлина(Строка) Цикл
      Символ = Сред(строка, поз, 1);
      Если Символ >= "0" И Символ <= "9" Тогда
         Сообщить("Цифра в позиции строки N " + поз)
      КонецЕсли;
КонецЦикла;

как-то так. Если не секрет зачем такие загибы?
Помогло? - Нажми СПАСИБО!!!
                       :)

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Re: Число
« Ответ #5: 23 Май 2012, 01:33 »
Интересно как отработает
Если "1" >= "0" И "1" <= "9" Тогда ???????
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Re: Число
« Ответ #6: 23 Май 2012, 01:36 »
Еще как вариант
Строка = " В этой строке найти число 5";
Для поз=1 По СтрДлина(Строка) Цикл
      Символ = Сред(строка, поз, 1);
      Попытка
            Ч = Число(Символ);
            Сообщить("В строке есть число = "+Ч);
      Исключение
      КонецПопытки;
       
КонецЦикла;
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Re: Число
« Ответ #7: 23 Май 2012, 01:54 »
Через попытку не Айс...

Процедура КнопкаВыполнитьНажатие(Кнопка)

    SearchOfNumbers(" В этой строке найти число 5");
    
КонецПроцедуры
 
Функция SearchOfNumbers(val str)
    
    RegExp = Новый COMObject("VBScript.RegExp");
    RegExp.IgnoreCase = false;  //Игнорировать регистр
    RegExp.Global = true;       //Поиск всех вхождений шаблона
    RegExp.MultiLine = true;    //Многострочный режим    
    
    RegExp.Pattern = "\d+";
    Matches=RegExp.Execute(str);
    Count = Matches.Count();
   if Count > 0 then  
      for h = 0 to Count - 1 do
            message(Matches.Item(h).Value);
        enddo;
    endif;              
          
КонецФункции   
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн sadovod

  • ****
  • Сообщений: 289
  • РЕПУТАЦИЯ: 53
  • КПД: 18%
  • Регистрация: 2012-02-19
  • Сайт: 
  • Профессия: Программист 1С
Re: Число
« Ответ #8: 23 Май 2012, 07:48 »
Dethmontt, :ooifh:
Щас кто-нибудь напишет на ассемблере :)
Или в машинных кодах :) :)

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Re: Число
« Ответ #9: 23 Май 2012, 11:55 »
Ну такой вариант более правильный.
На выходе ты получишь из строки: "сколько 567 тут 54 чисел 7" //Тут три числа, а не шесть
= 567
= 54
= 7
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!


Теги:
 

Конвертация данных, ошибка "Преобразование значения к типу Число не может быть выполнено"

Автор CerebrinРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 1937
Последний ответ 10 Май 2015, 21:51
от Дмитрий@
Как вывести ноли в значении реквизита таблицы "Число"

Автор AndrepanРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 341
Последний ответ 01 Фев 2017, 15:01
от Andrepan
УТ 10.3 Допустимое число дней задолженности: .., дата самой старой задолженности: ..

Автор Татьяна БыковаРаздел Беседка

Ответов: 2
Просмотров: 230
Последний ответ 07 Сен 2017, 13:51
от Татьяна Быкова
Управляемое приложение.Как предустановить значение реквизита с Типом "Число".

Автор |R|U|D|E|NРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 7
Просмотров: 5993
Последний ответ 22 Мар 2011, 06:04
от cska-fanat-kz
Операции сравнения на больше-меньше допустимы только для значений совпадающих примитивных типов (Булево, Число, Строка, Дата)

Автор ktu78Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 3973
Последний ответ 04 Сен 2015, 21:50
от MuI_I_Ika

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
160 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
55 Сообщений
alex0402
46 Сообщений
andron81_81
44 Сообщений
AIFrame
35 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
BuhRust
27 Сообщений
Golickoff Golickoff
27 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 228
  • Точка Скрытых: 0
  • Точка Пользователей: 2
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal