Имя: Пароль:
1C
1C 7.7
v7: Функция "Найти"
0 MixanM
 
12.12.11
07:49
Подскажите как правильно реализовать поиск в строке, в строке 3 элемента, между собой разделенные символом ";", как можно записать значения находящиеся между ращзделителями, т.е. я первый могу записать а как записать другие? :

Текст = СоздатьОбъект("Текст");        
       Попытка
           Текст.Открыть(ИмяФайла);
           Сообщить("Загружаю из файла : "+ИмяФайла);
       Исключение
           Сообщить("Файл не найден");
           Возврат;
       КонецПопытки;
...
Секции1 = Текст.ПолучитьСтроку(10);
...
КодСекции1 = Найти(Секция1,";")-1;//здесь записал первый элемент между разделителями
1 Азат
 
12.12.11
07:50
Пока Найти(Стр, ";") > 0 Цикл
   Значение = Лев(Стр, Найти(Стр, ";") - 1);
   Стр = Сред(Стр, Найти(Стр, ";") + 1);
КонецЦикла;

Значение = Стр;
2 VladZ
 
12.12.11
07:51
Возможно тебе поможет

ВремСтрока = СтрЗаменить(ИсхСтрока,";", РазделительСТрок);
3 VladZ
 
12.12.11
07:52
+2 Далее:

Для сч = 1 по СтрКоличествоСТрок(ВремСтрока) Цикл
ТекущееЗначение = СтрПолучитьСтроку(ВремСтрока,сч);

 // тут делаешь, что хочешь со своим значением.

КонецЦикла;
4 dk
 
12.12.11
07:53

МояСтр = СтрЗаменить(ТвояСтрСТочкЗап, ";", РазделительСтрок);
Для Сч = 1 По СтрКоличествоСтрок(МояСтр) Цикл
  Сообщить(СокрЛП(Сч) + " : " + СтрПолучитьСтроку(МояСтр, Сч));
КонецЦикла;
5 Ковычки
 
12.12.11
07:55
автору всех просче у него Текст
6 MixanM
 
12.12.11
08:05
Так так так, много информации, можно сейчас подробней разберем? в примере (2) и (3), я считаю все значения из строки в одну перменную. в Примере (1) я запишу первый и последующий элементы в переменные Значение, Стр-соотвесвенно, а пример (4) не совсем понял. В сабже не дописал, что мне каждое  значение, находящееся между разделителями, нужно записать в переменную
7 Азат
 
12.12.11
08:08
(6) ты что - вообще тупак? заведи себе список значений, ТЗ или какую-нить еще лабуду и будет тебе вагон счастья...
8 MixanM
 
12.12.11
08:10
(7) млин, nxyj затупил, мне первого примера хватает , всем спасибо
9 MixanM
 
12.12.11
08:13
(7) и не тупак - а слоупок =D
10 VladZ
 
12.12.11
08:24
(6) Что непонятного в (2) и (3)??
После (2) твои значения получаются так:
МоеПервоеЗначение = СтрПолучитьСтроку(ВремСтрока,1);
МоеВтороеЗначение = СтрПолучитьСтроку(ВремСтрока,2);
МоеТретьеЗначение = СтрПолучитьСтроку(ВремСтрока,3);
11 MixanM
 
12.12.11
08:26
(10) Спасибо Вам и всем кто откликнулся, я уже все сделал
12 1Сергей
 
12.12.11
09:15
Со строкой (типа "красный;желтый;зеленый") так:
Позиция = Найти(";"+стр+";",";зеленый;");

или даже так:
Позиция = Найти(";"+ВРЕГ(стр)+";",ВРЕГ(";зеленый;"));
13 1Сергей
 
12.12.11
09:16
(12)*
Позиция = Найти(";"+стр+";",";зеленый;")+1;
14 MixanM
 
12.12.11
11:08
Блин, счас столкнулся с такой мозголомательой задачей, не могу пнять как можно посчитать в одну переменную несколько элементов, например делаю выборку из справочника в цикле, он мне сообщает элкементы которые находит, а как мне их записать в одну переменную, например шарит по справочнику, там есть код, наименование, и в цикле когда шарит, что бы у меня было в одной переменной "КодСправчоника" все найденные значения по коду, через ";", сделал так, но че то фигня какая то:
СпрСекции = СоздатьОбъект("Справчоник.Секции")
СпрСекции.ВыбратьЭлементы();
       Пока СпрСекции.ПолучитьЭлемент() = 1 Цикл
           КодСекции = СпрСекции.Код;
           Объект = СпрСекции.Объект;
           Секция = СпрСекции.Секция;
           Секция = КодСекции+";"+Объект+";"+Секция+";"; // эт теоретически должно было сложить все предыдущие элементы с нынешними, и добавить между ними ";" - лажа какая то
           Сообщить(КодСекции+";"+Объект+";"+Секция); //здесь сообщает найденные элементы, отображает корректно
       КонецЦикла;
15 filh
 
12.12.11
11:10
юзай уже СписокЗначений
16 Злопчинский
 
12.12.11
11:17
СтрокаСупер="";
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент()=1
Цикл
СтрокаСупер = СтрокаСупер+РазделительСтрок+Спр.Код;
КонецЦикла;
СтрокаСупер = СокрЛП(СтрокаСупер);
СтрокаСупер = СтрЗаменить(СтрокаСупер,РазделиетльСтрок,";");
17 filh
 
12.12.11
11:19
(16) ага, а чуть ниже кодом будет:

ВремСтрока = СтрЗаменить(СтрокаСупер,";", РазделительСТрок);
18 MixanM
 
12.12.11
11:52
НЕ, Я Решил другим способом, в цикле добавляет строки в файл, и просто загружает 2 раза из файл, 1ое изменение, и 2ое
19 MixanM
 
12.12.11
11:52
Но все равно спасибо большое
20 MixanM
 
12.12.11
12:04
Скажите как найти Родителя текущего элемента, а то пробую :
Функция НайтиРодителя(ТекЭлемент)
Если ПустоеЗначение(ТекЭлемент.Родитель) = 1 Тогда
Возврат ТекЭлемент;
Иначе
Возврат НайтиРодителя(ТекЭлемент .Родитель);
КонецЕсли;
КонецФункции
...
НайденыйРодит =  НайтиРодителя(СпрНоменкл);

эска мне возвращает значение ТекЭлемент,
21 MixanM
 
12.12.11
12:05
хотя элемент в справочнике, находится в группе
22 Азат
 
12.12.11
12:06
(21) ты такое занудо... не 1986 гр случаем?
23 Ёпрст
 
12.12.11
12:07
а вот как надоест х..ней заниматься, возьми import\export77.ert c диска итс -
вот оно, откровение то будет.
24 MixanM
 
12.12.11
12:21
(22) нет - 87,
(23) - диск ИТС успешно проё..., может скинете ?
25 Ёпрст
 
12.12.11
12:28
26 MixanM
 
12.12.11
12:36
оч, полезная обработка, тем более в преддверии слияния баз, спасибо Ёпрст(25)
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой