|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#16
|
|||
|
|||
Код:
object ADOQuery1: TADOQuery Connection = ADOConnection1 Parameters = <> Left = 216 Top = 184 end |
#17
|
||||
|
||||
У меня пока больше идей нет.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#18
|
|||
|
|||
и на этом спасибо
но если что - нибудь появится - не стесняйтесь, пишите... очень надо, а время поджимает... буду рад любым советам |
#19
|
||||
|
||||
Тут уже только экспериментировать, а для этого надо вашу программу, вашу БД, ваш драйвер для связки с mySQL, вашу версию mySQL.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#20
|
||||
|
||||
Я юзаю для мускуля этот пак.
Прост в использовании, я на нём любую прогу за полчаса нарежу. Думаю смастерить на нём подобие Навиката, но это в планах... ЗЫ: Архив большой (>500Кб), сюда не заливается. Слил на свой сайт. http://russiaonline.sytes.net/MySQL.rar Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#21
|
|||
|
|||
в общем решение найдено...
проблемы с сообщениями об ошибках - смена кодировки таблицы на UTF-8 (в самый последний момент вспомнил... млин...) тестовый, но работоспособный вариант вот код: Код:
Var Arr: Array of variant; i: integer; begin i := 0; DataModuleUnit.ADOQuery1.SQL.Text:='select www from qqq'; DataModuleUnit.ADOQuery1.Open; SetLength(Arr,DataModuleUnit.ADOQuery1.RecordCount); DataModuleUnit.ADOQuery1.First; while not DataModuleUnit.ADOQuery1.eof do begin Arr[i] := DataModuleUnit.ADOQuery1.FieldValues['www']; memo3.lines.add(DataModuleUnit.ADOquery1.fieldbyname('www').asstring); DataModuleUnit.ADOQuery1.next; Inc(i); end; end; остается только написать разбор элементов массива на символы... Последний раз редактировалось _Hattab_, 18.05.2009 в 01:25. |
#22
|
||||
|
||||
Разбивать и не потребуется, если вы смените тип элементов массива с variant на string, т.к. string по сути массив символов и к любому символу можно обращаться по его индексу.
Но вот накой бес вам на символы-то разбивать, я никак въехать немогу. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#23
|
|||
|
|||
может конечно и на самом деле не надо...
мне нужно найти присутствие символов записи столбца второй таблицы среди полученных эл-тов массива (код города и исходящий номер телефона) т.е. в одной таблице у меня лежат телефонные коды городов и стран, а в другой таблице лежат записи из логов о звонках (кто,куда и сколько по времени и т.д) я пока это так себе представляю в двух словах: получил я массив А, элементы которого - исходящие телефонные номера. Например первым элементом будет запись 84951234567. Обращаемся к нему и раскладываем его по символам во второй массив Б. Затем со второго эл-та (отбрасываем код 8) сравниваем с записями второй таблицы(которая с кодами и стоимостью этого направления). Таким образом мы определим, что данный звонок был по такому-то направлению и минута разговора стоит столько-то. Затем в таблице1 смотрим сколько времени длился разговор - вычисляем стоимость звонка. Вот такая у меня идея. Хочу попробовать сделать. Если подскажете какой-нибудь более рациональный алгоритм, я буду очень признателен. В частности конечно интересует, как посоветуете сравнивать "напрямую" с записями кодов в таблице2. Если такое конечно возможно... Последний раз редактировалось _Hattab_, 18.05.2009 в 03:16. |
#24
|
||||
|
||||
Так нафига разбивать по символам? Надо просто найти вхождение одного текста в другой, для этого функции Pos или PosEx вполне достаточно.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#25
|
|||
|
|||
можно...
а если использовать бинарный поиск в массиве? как лучше сделать? берем первый элемент массива звонков. PosEx'ом откидываем первый символ и проверяем вхождение кода в оставшийся номер. (кстати, PosEx проверяет точную последовательность символов или любой порядок?). Но тогда это будет последовательный перебор 500 элементов массива кодов... Или можно ли как-нибудь в элементе массива "взять" только первые, допустим, 5 символов. и их бинарным поиском сравнить Прошу прощения за возможно примитивно-глупые вопросы, но мой мозг уже теряет связь с реальностью, поэтому хотелось-бы узнать ваше мнение... ну и возможно что-нибудь по советуете... |
#26
|
||||
|
||||
Функция Pos и PosEx очень шустрые функции, незнаю какой они алгоритм для поиска используют, но скорости на обработку 500 элементов хватит с избытком. Я думаю, там и пол секунды небудет.
Или я чего-то непонимаю, или вы какими-то заморочеными путями идете. У вас есть элемент массива, он же - строка. Найти в этой строке все вхождения какой-либо другой подстроки, элементарно. Например есть строка телефонного трафика вида: Код:
S := '01.01.2009 16:00:00 Вх. 9353345668 4567789032 26'; Код:
Const Tel:Array[1..2] of string = ('4567789032','4567789134'); Код:
for i := 1 to 2 do begin P := 1; while P>0 do begin P := PosEx(Tel[i],S,P); if P > 0 then ShowMessage(Tel[i]); end; end; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#27
|
||||
|
||||
Если что-то непонятно, выйдите на меня по аське. Так будет попроще.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#28
|
|||
|
|||
Спасибо большое вам за ответы. Очень помогло. Все работает как надо...
С остальным пока вроде бы и у самого получается |