![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как разбить строку
andrewtitoff © (2009-11-07 21:33:00)Имеется строка с адресом, разделяемая " д. "," к. "," п. ", соответственно дом, корпус парадная, в строке соответственно идет подряд улица, дом, корп, парадная, но обязательно должна быть только улица, а всего остального может не быть, или быть в любых комбинациях, соответственно вопрос: как правильно разбить на подстроки соответствующие названию улицы, номера дома, корпуса и парадной?
Smile (2009-11-09 18:11:00) [1]Что-то я сегодня не "наблюдал" andrewtitoff , а совет на вопрос "Как разбить строку?" дал бы один, и, на мой взгляд, исчерпывающий и универсльный.
Разбивай так, как тебе нравится, или устраивает по условию задачи.
Успеха!
Dennis I. Komarov (2009-11-09 17:14:00) [2]
> я пришел с одной проблемой - а мне тут предложили кучу других,
> а теперь еще и говорите что я это не умею....
Есть только одна проблема - база сделанная кривыми руками, а ты хочешь из нее сделать еще кучу проблем... Лекарство смотри в предыдующей ветке.
> для того чтобы 60-ти летние бабушки которым тоже приходится
> с ней работать не переучивались
Блин, а я то думаю, почему наш автопром до сих пор такое производит. Оказывается чтоб привычнее было
P.S.
Для нормальной работы с адресами есть такая штука - КЛАДР завется.
Наиль (2009-11-09 11:45:00) [3]
> Нучнем с того что больше половины написанного мне тут просто
> лишнее т.к. неподходит, во вторых при чем тут фильтры типа
> 'STREET = '''+copy(ComboBox82.Text,1,pos(' д. ',ComboBox82.
> Text))+''' AND HOUSE = '''+copy(ComboBox82.Text,pos(' д.
> ',ComboBox82.Text)+4,length(ComboBox82.Text)-pos(' д. ',
> ComboBox82.Text)+4)+'''';
Тебе не это придлагали, это такое предлагаешь.
Тебе предлагают приблизительно следующее:
Ind:=ComboBox82.ItemIndex;
With AllData[Ind] do
Filter:=format('STREET = "%s" AND HOUSE = "%s"',[Street, House])
Соответствено вместо массива записей AllData можешь использоватьTDataSet, тогда тебе понадобятся ссылки (закладки), которые можешь хранить в Items.Objects[Ind]
Весь смысл в том, чтобы использовать те данные, котое у тебя и так уже разделены.
Leonid Troyanovsky (2009-11-08 21:45:00) [4]
> andrewtitoff © (08.11.09 20:22) [48]
ФеМиДо.
- Читал?
- Да. "Преступление и наказание".
--
Regards, LVT.
andrewtitoff (2009-11-08 20:22:00) [5]
> Leonid Troyanovsky © (08.11.09 19:14) [47]
> > andrewtitoff © (08.11.09 14:55) [46] > то что это решение
> мне не очень нравится - оно избавит от > многих проблем.
> ...Нарубил десять бабок - вот он и рубль.--Regards, LVT.
>
Эт вы про что? =)))
Leonid Troyanovsky (2009-11-08 19:14:00) [6]
> andrewtitoff © (08.11.09 14:55) [46]
> то что это решение мне не очень нравится - оно избавит от
> многих проблем....
Нарубил десять бабок - вот он и рубль.
--
Regards, LVT.
andrewtitoff (2009-11-08 14:55:00) [7]2 All
А может действительно 4 комбобокса сделать?, несмотря на то что это решение мне не очень нравится - оно избавит от многих проблем....
andrewtitoff (2009-11-08 14:45:00) [8]
> Anatoly Podgoretsky © (08.11.09 14:28) [44]
> > andrewtitoff (08.11.2009 14:11:43) [43]> мы говорим
> про поиск по адресу - который должен отобразить все лифты
> по заданному адресу.....И что тебе останавливает?Не умеешь
> фильтры строить или запросы с WHERE делать?Так это же основы.
>
Только из уважения к возрасту промолчу...
Вы простите заголовок то читали?, я пришел с одной проблемой - а мне тут предложили кучу других, а теперь еще и говорите что я это не умею....
Нучнем с того что больше половины написанного мне тут просто лишнее т.к. неподходит, во вторых при чем тут фильтры типа
'STREET = '''+copy(ComboBox82.Text,1,pos(' д. ',ComboBox82.Text))+''' AND HOUSE = '''+copy(ComboBox82.Text,pos(' д. ',ComboBox82.Text)+4,length(ComboBox82.Text)-pos(' д. ',ComboBox82.Text)+4)+'''';
только проблема в том - что я изначально спросил как это сделать в цикле?, т.к. этого я действительно на данный момент незнаю....
Anatoly Podgoretsky (2009-11-08 14:28:00) [9]> andrewtitoff (08.11.2009 14:11:43) [43]
> мы говорим про поиск по адресу - который должен отобразить все лифты по заданному адресу.....
И что тебе останавливает?
Не умеешь фильтры строить или запросы с WHERE делать?
Так это же основы.
andrewtitoff (2009-11-08 14:11:00) [10]
> Anatoly Podgoretsky © (08.11.09 14:04) [41]
> > andrewtitoff (08.11.2009 12:38:37) [37]С одинаковым
> именем нет не видел.
>
>
> Anatoly Podgoretsky © (08.11.09 14:06) [42]
> > andrewtitoff (08.11.2009 13:13:40) [40]Вот все свои
> проблемы на бабушек свернул, крайними они оказались.
А кто говорит про одинаковое имя?, естественно у каждого лифта есть свой регистрационный номер и они уникальные, для этого есть поиск по рег. номеру, только сейчас то мы говорим про поиск по адресу - который должен отобразить все лифты по заданному адресу.....
Я ни на кого не сваливал проблемы просто сказал что это нужно учитывать и от этого ни куда не деться, я же не для себя и не для вас программу пишу - а в перую очередь именно для бабушек....
Anatoly Podgoretsky (2009-11-08 14:06:00) [11]> andrewtitoff (08.11.2009 13:13:40) [40]
Вот все свои проблемы на бабушек свернул, крайними они оказались.
Anatoly Podgoretsky (2009-11-08 14:04:00) [12]> andrewtitoff (08.11.2009 12:38:37) [37]
С одинаковым именем нет не видел.
andrewtitoff (2009-11-08 13:13:00) [13]2 sniknik ©
Кстати есть еще одна причина делать именно в одном комбобоксе, я правда извиняюсь что забыл упомянуть о данном условии, но по возможности программа должна по своим основным функциям работать как старая для того чтобы 60-ти летние бабушки которым тоже приходится с ней работать не переучивались в течении длительного времени, а в старой этот поиск именно так и реализован....
andrewtitoff (2009-11-08 13:07:00) [14]
> sniknik © (08.11.09 12:50) [38]
> > к вашему статусу - Вы говорите полный бред....во первых
> при чем тут статус?а во вторых этот "бред" многим очень
> помог, тем кто к нему прислушался... но видимо не каждому
> дано.
Потому что я привык уже на этом форуме почтенно относиться к мастерам т.к. большинство действительно этого заслуживают....
А во вторых вот именно от того бреда который вы мне написали - толку 0...
Что бы не быть голословным:
>это вариант, который "вы" не сумели сделать...
Кто это вам сказал?, какая от этого польна?, помоему это просто попытка оскорбить...
>но вообще комбобоксы не очень удобны при зависимом друг от друга выборе, информация должна быть открытой, длч примера вот так
http://support.amd.com/us/gpudownload/Pages/index.aspx
Ну а кто вам сказал что этот вариант очень удобен?, много адресов все равно не отразите т.к. в базе 7тыс записей.., а вот неопытные пользоматели в этих ваших полях тосно запутаются, да и громоздко это все, это на веб-странице сносно выглядит, в в программе такая огромная форма поиска никчему...., да и не факт что она уместна т.к. форма поиска на отдельном окошке - еще не окончательнвй вариант..., а что если мне в итоге придется где нибудь рядом с основной таблицей в уголке форму поиска делать - мне что такую "дуру" на пол экрана пихать что бы таблици невидно было?....
> sniknik © (08.11.09 12:25) [36]
> > Тогда у вас большой бардак в базене верю я в это, ведь
> родная прога с этой базой работает, как-то эти "одинаковые"
> записи различает... скорее верится в то, что автор отличий
> не нашел... типа, ну что там за цифирьки (ключь) вот же
> по русски одинаковые записи... (подтверждается тем что он
> и у себя пытается фильтры реализовать именно по названию,
> игнорируя ключи, которые должны быть т.к. оригинальная
> прога "одинаковые" записи как то различает... зациклились
> :о))
Ну а кто Вас сказал что родная прога различает ""Одинаковые" записи"?, кстати кто сказал что записи одинаковые?, покажите?, я сказал только что адреса одинаковые..., и при поиске по адресу родная прога не различает их да и новая не должна различать.....
Вы бы по внимательнее читали, например пост [19]....
sniknik (2009-11-08 12:50:00) [15]> к вашему статусу - Вы говорите полный бред....
во первых при чем тут статус?
а во вторых этот "бред" многим очень помог, тем кто к нему прислушался... но видимо не каждому дано.
andrewtitoff (2009-11-08 12:38:00) [16]
> Anatoly Podgoretsky © (08.11.09 11:03) [34]
> > andrewtitoff (08.11.2009 00:11:21) [21]Тогда у вас большой
> бардак в базе
Никакого бардака, так и должно быть, а вы что никогда в одной парадной два лифта не видели?....
> Германн © (08.11.09 02:37) [33]
Так я вот и пытался спросить как это лучше сдетать, только никто так и не смог предложить удовлетворяющее всем условиям решение.....
> sniknik © (08.11.09 02:16) [32]
sniknik © (08.11.09 12:25) [36]
Извините конечно, но при всем моем уважении к вашему статусу - Вы говорите полный бред....
sniknik (2009-11-08 12:25:00) [17]> Тогда у вас большой бардак в базе
не верю я в это, ведь родная прога с этой базой работает, как-то эти "одинаковые" записи различает... скорее верится в то, что автор отличий не нашел... типа, ну что там за цифирьки (ключь) вот же по русски одинаковые записи...
(подтверждается тем что он и у себя пытается фильтры реализовать именно по названию, игнорируя ключи, которые должны быть т.к. оригинальная прога "одинаковые" записи как то различает... зациклились :о))
Anatoly Podgoretsky (2009-11-08 11:06:00) [18]> Германн (08.11.2009 02:37:33) [33]
Еще одна длинная ветка в никуда.
Anatoly Podgoretsky (2009-11-08 11:03:00) [19]> andrewtitoff (08.11.2009 00:11:21) [21]
Тогда у вас большой бардак в базе
Германн (2009-11-08 02:37:00) [20]
> -Должен быть ниспадающий список
> -возможность ввода начальных букв
> -адрес должен быть в виде одной строки
> примерно так, в общем это отдельная форма поиска в базе
> по адресу состоящая из одного комбобокса(условно)
>
Ключевые слова я выделил.
Так где в представленном варианте решения поиск в базе?
Зачем нужно для поиска в базевытаскивать на клиента все записи, записывать их в "закодированном" виде, искать на клиенте в комбобоксе строки удовлетворяющие некоторому критерию и раскодировать потом ранее закодированные записи?