Как выделить общую часть строки для нескольких строк? #259695


#0 by Eileen
Приветсвую всех! Есть прайс типа: КОД     РЕГИОН 7222 / Россия Екатиринбург 7444 / Россия Ещё какой-то город 89000 / Румыния Какой-то город 89001 / Румыния Другой город Нужно из него сделать табличку вида: 7 / 222 / Россия / Екатеринбург 7 / 444 / Россия / Ещё какой-то город ... то есть выделить общую часть кода для каждой страны и вынести её в первый столбик, остаток кода -> во второй столбик, и разбить Регион из 2-го столбика исходной таблицы на страну и город (это ещё куда ни шло). Но с кодом сложности, не могу сделать так чтобы осуществлялся поиск общей части кода для каждой страны. Помогите, пожалуйста!!! Заранее всем балгодарна.
#1 by ASV
м.б. проще взять справочник телефонных кодов
#2 by Eileen
м.б. и проще только исходный файл это не просто список кодов, а прайс с ценами для каждого направления.
#3 by ОбдолбанныйВася
прав(КОД,3) - это будет последние 3 цифири, лев(Код,ДлинаСтр(код)-3) - страна, если конечно классификация в виде хх ххх(т.е. для города всегда три последние цифры)
#4 by Eileen
не всегда код страны это одна 1-я цифра, иногда и 2 и 3 бывают. И код города может быть для одной и той же страны разной длины.
#5 by ASV
влад 7 4232
#6 by Eileen
...весь прайс в таблице значений и там я уже всё (что могу) обрабатываю.
#7 by dk
Лажа получится 89000 / Румыния Какой-то город 89001 / Румыния Другой город --- Можно подумать, что код Румынии 8900
#8 by ОбдолбанныйВася
имхо блин тогда это не кодировка, а чортичорт... При таких условиях заводите отдельный справочник с кодами хотя-бы стран и из него выбирайте - иначе имхо никак с переменной длиной кода-то (это не код а набор цифр в этом случае)
#9 by ОбдолбанныйВася
? не понял мысли )
#10 by dk
Для начала разбей просто на Код города - Страна - Город
#11 by Eileen
да нет, правильно всё, это я пример неудачный привела. На память коды не помню, конечно, в прайсах их бывает по 13 000 (тринадцать тысяч-прописью :))Всегда первые совпадающие цифры кода из исходной таблички - код страны, всё остальное - код направления (это телефонные коды). Потом в прайсе идёт другая страна и код меняется и первые цифры соответсвенно.
#12 by Eileen
я тоже не поняла... думаю, это шифровка!
#13 by Eileen
страну от городов кое-как удаётся выделить, хотя проблема, когда страна из двух слов. Но это фиг с ним. Проблема с добыванием общей части кода.
#14 by ОбдолбанныйВася
Запоминаешь страну, выбираешь максимально возможное кол-во цифр кода от начала по стране, сравниваешь со следующим, анализируешь - вот он - УРА, хоп страна поменялось - по новой - усложниться код буквально на пару строк... имхо
#15 by dk
После уже можно оптимизировать 1) Получаешь список стран 2) Предполагаешь, что для страны совпадает 1-я цифра 3) Пробегаешься по списку с этой страной и проверяешь 2) 4) Предполагаешь, что для страны совпадают первые 2 цифры 5) Пробегаешься по списку с этой страной и проверяешь 4) ... Но это только если у страны 1 код, а не несколько
#16 by DGorgoN
Составить программу, действующую по определенному алгоритму. P.S. думаеться не так сложно - в студию реальный кусок ..
#17 by Eileen
я в этих циклах запутываюсь.. на словах всё понятно, но вот это место "сравниваешь со следующим, анализируешь - вот он - УРА"... как их сравнить-то чтобы общий кусок найти?
#18 by Eileen
о, или так. Свежий взгляд на предмет... И у страны действительно всегда 1 код.
#19 by ОбдолбанныйВася
а зачем цикл по всем элементам имхо ну как алгоритм...    симв1=1 символ ОбщегоКода;    симв2=2 символ ОбщегоКода ОбщийКод=ОбщийКодИзСтроки; симв1=1 символ ОбщегоКода; симв2=2 символ ОбщегоКода;.... .... Если СтранаСтар<>ВыделеннаяСтранаИзСтроки Тогда ОбщийКодСтраны=ПоискКода(НомерСтрокиТекста,симв1,симв2) .....
#20 by DGorgoN
Часть текста дай, строк 10-20..
#21 by Eileen
кусочек программы с таблицей? или прайс?
#22 by DGorgoN
Что тебе надо разобрать по кусочкам. Если правда не помогло..
#23 by Eileen
под ругой нету к сожалению, завтра притащу, покажу. Мож отзовётся кто.. Но если вкратце то цикл по экселевскому файлу с прайсом из него получаю значения для таблицы значений. ... Табл.ОбщийКод=ОбщийКод; Табл.Регион=Регион; // их я уже в процессе получения значений разделяю ...
#24 by ОбдолбанныйВася
оптимизированный вариант , имхо а раз есть ТЗ все еще больше упрощается...
#25 by DGorgoN
Завтра в аську отпиши, посмотрим. Думаю чего и получиться.. :)
#26 by dk
см. Хотя действительно можно отсортировать и сравнивать только 1-ю и последнюю записи, а не все.
#27 by ОбдолбанныйВася
тот же х только в другой руке )
#28 by smaharbA
Вообще ниче не понял...
#29 by dk
89000 / Румыния Какой-то город 89001 / Румыния Другой город .... 89085 / Румыния Совсем другой город
#30 by dk
для
#31 by ОбдолбанныйВася
все догнал )
#32 by ОбдолбанныйВася
имхо завести-таки справочник кодов и по стране отбирать...
#33 by smaharbA
Фигня какаято...
#34 by ОбдолбанныйВася
ага, но интеееереееснаая )
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С