Имя: Пароль:
1C
 
Найти первое число в строке символов
0 Nik_M
 
21.12.04
12:05
Кто-нибудь сталкивался с сабжем?
1 Лошадка в пальто
 
21.12.04
12:06
В Майкрософт Ворде?
2 vS
 
21.12.04
12:09
по коду символа проверяй, по строке беги, либо иначеесли на найти(,"1"....(,"2"....
3 GrayT
 
21.12.04
12:15
Через Найти() не быстрее будет?
4 laeg
 
21.12.04
12:18
(3)
Это все от строки зависит, да и после найти нужно будет сверить позиции ... Или закидывать их в СЗ потом сортировать по возрастанию и брать первый ...
5 GrayT
 
21.12.04
12:21
(4)не понял ход мысли?
6 laeg
 
21.12.04
12:32
(5)
Если в данной строке, несколько цифр - они ясно дело имеют разную позицию. Так ведь ?
Дальше продолжать ?
7 GrayT
 
21.12.04
12:37
Для сч=0 до 9 цикл
текПоз = Найти(Стр, ""+сч);
Если текПоз<>0 Тогда
   Возврат текПоз;
8 GrayT
 
21.12.04
12:38
Все протупил - понял :)
9 miki
 
21.12.04
12:48
Можно так:
//*************
Procedure Сформировать1()
   For rr=1 To StrLen(кке) Do
       sCurChar=Mid(кке,rr,1);
       sContr=Asc(sCurChar);
       If (sContr>47)And(sContr<58) Then
           Message("Символ: "+sCurChar+", позиция: "+rr);
           Break;
       EndIf;
   EndDo;
EndProcedure
//********
10 miki
 
21.12.04
12:49
Можно еще так:
Var tt;
//*******************************************
Procedure Сформировать()
   For rr=1 To StrLen(кке) Do
       sCurChar=Mid(кке,rr,1);
       If tt.Belong(sCurChar)=1 Then
           Message("Символ: "+sCurChar+", позиция: "+rr);
           Break;
       EndIf;
   EndDo;
EndProcedure
//******************
tt=CreateObject("ValueList");
tt.AddValue("0");
tt.AddValue("1");
tt.AddValue("2");
tt.AddValue("3");
tt.AddValue("4");
tt.AddValue("5");
tt.AddValue("6");
tt.AddValue("7");
tt.AddValue("8");
tt.AddValue("9");
11 vS
 
21.12.04
12:57
(10) лучще ИзСтрокиСРазделителями в таком случае :)
12 Jaws
 
21.12.04
12:58
Вот функция - находит ИНН в строке с "мусором". Одно условие - ИНН должен быть записан "неразрывно".

Функция ПолучитьИНН(стрИНН)
   Результат = "";
   ПозицияВСтроке = 1;
   ДлинаСтроки  = СтрДлина(стрИННКПП);
   Ноль = КодСимвола("0",1);
   Девять = КодСимвола("9",1);
   ВолшебноеЧисло = 0;
   НачалоКода = 1;
   //
   Для ПозицияВСтроке = 1 По ДлинаСтроки Цикл
       Код = КодСимвола(стрИННКПП,ПозицияВСтроке);
       Если ((Код>=Ноль) И (Код<=Девять)) Тогда
           ВолшебноеЧисло = ВолшебноеЧисло + 1;
       Иначе
           Если ВолшебноеЧисло = 10 ИЛИ ВолшебноеЧисло = 12 Тогда
               Возврат Сред(стрИННКПП, НачалоКода, ВолшебноеЧисло);
           Иначе
               ВолшебноеЧисло = 0;
               НачалоКода = ПозицияВСтроке+1;
           КонецЕсли;
       КонецЕсли;
   КонецЦикла;
   
   Если ВолшебноеЧисло = 10 ИЛИ ВолшебноеЧисло = 12 Тогда
       Возврат Сред(стрИННКПП, НачалоКода, ВолшебноеЧисло);
   Иначе
       Возврат "";
   КонецЕсли;
   
КонецФункции
13 miki
 
21.12.04
12:59
(11)Каждый дрочит как он хочет.
14 Jaws
 
21.12.04
13:01
Для восьмой версии.

Там немного лишнего осталось после модификации кода, сейчас заметил.
  Результат = "";
  ПозицияВСтроке = 1;
15 Бивень
 
21.12.04
13:06
Функция Бивень1(Стр)
 С = Стр;
 Белиберда = "@#$%^&*";
 Для Х = 0 По 9 Цикл С = СтрЗаменить(С, Х, Белиберда) КонецЦикла;
 Возврат Сред(Стр,Найти(С, Белиберда),1);
КонецФункции
16 Бивень
 
21.12.04
13:07
Функция Бивень2(Стр)
С = Стр;
Для Х = 0 По 9 Цикл С = СтрЗаменить(С, Х, 0) КонецЦикла;
Возврат Сред(Стр,Найти(С, 0),1);
КонецФункции
17 Бивень
 
21.12.04
13:08
Функция Бивень0(Стр)
С = Стр;
Для Х = 1 По 9 Цикл С = СтрЗаменить(С, Х, 0) КонецЦикла;
Возврат Сред(Стр,Найти(С, 0),1);
КонецФункции
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший