![]() |
![]() |
![]() |
|
Найти первое число в строке символов | ☑ | ||
---|---|---|---|---|
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); КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |