|
Помогите разобрать строку | ☑ | ||
---|---|---|---|---|
0
Novicadmin
23.07.14
✎
05:19
|
4607048800348|1 4620755740127|15 4630005090377|10 4630005090773|5
после символа "|" идёт коэффициент, подстроку "|число " учитывая пробел необходимо заменить на ";" 3е суток уже не спал, всё восстанавливаю данные и голова уже не робит, помогите плиз. |
|||
1
Novicadmin
23.07.14
✎
05:36
|
Искать | обрезать в переменную искать " " всё что до учитывая " " заменить на ";"
|
|||
2
Godofsin
23.07.14
✎
05:42
|
Найти и СтрЗаменить() тебе в помощь
|
|||
3
Novicadmin
23.07.14
✎
05:46
|
не смогу ( строк много все разные может быть 1 ШК может быть 5 шк
|
|||
4
Novicadmin
23.07.14
✎
05:47
|
думаю разберусь, спасибо, просто долго очень
|
|||
5
Novicadmin
23.07.14
✎
05:48
|
Сервак упал бэкапа нету восстанавливаю справочник из текста.
|
|||
6
Godofsin
23.07.14
✎
05:51
|
(5) Жесть...
|
|||
7
Godofsin
23.07.14
✎
06:03
|
эх...
Поз = Найти(СтрокаРазбора,"|"); ПервоеЧисло = Лев(СтрокаРазбора, поз - 1); СтрокаРазбора = Прав(СтрокаРазбора, СтрДлина(СТрокаРазбора) - поз); ПозПробела = Найти(СТрокаРазбора, " "); СтрокаРазбора = Прав(СтрокаРазбора, СтрДлина(СТрокаРазбора) - позПробела); и т.д. и т.п. |
|||
8
Novicadmin
23.07.14
✎
06:16
|
(7) Спасибо большое )))
я уж зобил и подумал выдерну пока только 1 ШК СимволРазделитель = ";"; СимволПалка = "|"; ТемпСтрока = СтрЗаменить(ШтрихКоды," ",";"); НомерСимвола = Найти(ТемпСтрока,СимволРазделитель); ТемпСтрока = СокрЛП(Лев(ТемпСтрока,НомерСимвола - 1)); НомерСимвола = Найти(ТемпСтрока,СимволПалка); ШК = СокрЛП(Лев(ТемпСтрока,НомерСимвола - 1)); |
|||
9
lion11
23.07.14
✎
08:34
|
Я бы так сделал:
Строка = "4607048800348|1 4620755740127|15 4630005090377|10 4630005090773|5"; Стр1 = СтрЗаменить(Строка,"|",","); Стр1 = СтрЗаменить(Стр1," ",","); Массив1 = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Стр1,","); В итоге: в Массив1 в четных строках (0,2,4...) - ШК, в нечетных - число. |
|||
10
Бешеная Нога
23.07.14
✎
08:51
|
Функция РазложитьСтрокуНаМассивПодстрок(Знач Строка, Разделитель = ";", ПропускатьПустыеСтроки = Истина)
Результат = Новый Массив; Позиция = Найти(Строка, Разделитель); Пока Позиция > 0 Цикл Подстрока = Лев(Строка, Позиция - 1); Если Не ПустаяСтрока(Подстрока) или не ПропускатьПустыеСтроки Тогда Результат.Добавить(Подстрока); КонецЕсли; Строка = Сред(Строка, Позиция + СтрДлина(Разделитель)); Позиция = Найти(Строка, Разделитель); КонецЦикла; Результат.Добавить(Строка); Возврат Результат; КонецФункции |
|||
11
Бешеная Нога
23.07.14
✎
08:53
|
1. Выполняешь функци в первый раз с указанием разделителя "|"- получаешь массив строк типа "1 4620755740127".
2. Для каждой такой строки еще раз выполяняешь функцию с указанием разделителя " " и получаешь строки "1" и "4620755740127". |
|||
12
Kamas
23.07.14
✎
08:57
|
Строка=СтрЗаменить(строка,"|",Символы.ПС);
Строка=СтрЗаменить(строка," ",Символы.ПС); КоличествоСтрок=СтрЧислоСтрок(Строка) Для Счетчик = 1 По КоличествоСтрок Цикл Счетчик = 1+ Счетчик; ТекСтрока = СтрПолучитьСтроку(Строка, Счетчик); ... КонецЦикла; |
|||
13
Kamas
23.07.14
✎
08:57
|
(11) черт))
|
|||
14
Novicadmin
23.07.14
✎
10:08
|
Огромное всем спасибо (9) классно!, учиться и еще раз учиться )))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |