|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
20.01.2015, 14:29 | #11 |
Пользователь
Регистрация: 15.10.2012
Сообщений: 25
|
Каким образом можно перегнать данные без визуальных компонентов?
в примере 80000, а может быть до 200000 Последний раз редактировалось Stilet; 20.01.2015 в 14:32. |
20.01.2015, 14:35 | #12 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
короче говоря создавай переменку типа Array of тип поля. Сразу через SetLength() задавай ей размерность до цикла, и в цикле переписывай в массив данные. В цикле не должно быть никакого вывода на экран. Однако выигрыш в скорости будет невелик, поэтому так никто не делает, а если и делают, то такие программы становятся сущим адом для пользователей.
I'm learning to live...
|
|
20.01.2015, 14:52 | #13 |
Пользователь
Регистрация: 15.10.2012
Сообщений: 25
|
Если не использовать ADOTable, то как обратиться к файлу, в котором данные в формате *.DBF, чтобы читать в ARRAY? У меня на экран при чтении ничего и не выводится.
Последний раз редактировалось geb2010; 20.01.2015 в 14:56. |
20.01.2015, 15:04 | #14 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Давай ты всетки обьяснишь зачем тебе читать в массив. Иначе мне просто нечего сказать.
I'm learning to live...
|
|
20.01.2015, 15:16 | #15 |
Пользователь
Регистрация: 15.10.2012
Сообщений: 25
|
В массив читать для того , чтобы потом строить графики, сравнивать их с другими графиками в одном масштабе, проводить анализ и так далее... Много чего все не опишешь, что начальство придумает. В этом файле содержаться данные технологического процесса от разных датчиков за один месяц.
Последний раз редактировалось geb2010; 20.01.2015 в 15:20. |
20.01.2015, 15:33 | #16 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Мда... Тогда ответ один - скорости высокой не ожидай.
Все что ты описал делается без каких либо дополнительных массивов, но судя по всему ты пойдешь своим путем - массивным, поэтому делай как уже у тебя готово и не парься.
I'm learning to live...
|
20.01.2015, 15:57 | #17 |
Пользователь
Регистрация: 15.10.2012
Сообщений: 25
|
Ну почему, предложи свой путь решения, я буду очень тебе признателен
|
20.01.2015, 16:01 | #18 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Чтобы предложить путь нужно знать ТЗ.
когда я обрабатывал данные снятые датчиком с обточки колесной пары (а это порядка миллиона точек) я не делал никаких циклов и по четко поставленному заданию использовал СУБД, которая сама аналитику и высчитывала. Ты подробности опиши как можно подробнее. Что. Зачем. Когда. Откуда и куда. Ничего же не известно кроме того что у тебя есть DBF ник, откуда ты что-то хочешь получить. Для чего и почему остается только догадываться. По факту при надлежащих индексах СУБД одним запросом может дать тебе нужный результат, а ты циклы решил городить для перемещения данных. Запросами надо решать эту проблему, или писать свой компонент, который из DBF сумеет сразу весь файл считать в память.
I'm learning to live...
|
20.01.2015, 16:20 | #19 |
Пользователь
Регистрация: 15.10.2012
Сообщений: 25
|
На оборудовании стоят датчики, которые опрашиваются контролером, с которого данные передаются на компьютер и программа записывает их в DBF файлы.
Все это сделано сторонней организацией, ни какой документации на оборудование нет, кроме как посмотреть текущие графики в программе на компе. Одновременный просмотр за несколько месяцев программа не позволяет и тем более провести анализ. Поэтому и возникла необходимость написать свою программу, которая позволяла все это сделать. Построение графиков и анализ уже написаны и все работает, но загрузка файлов в программу медленная и в основном из-за функции ADOTable.Next, наверно эта функция не просто увеличивает индекс, а производит поиск с начала файла. Думаю так потому, что в начале идет быстрое считывание (примерно тысяч до 10) , а потом все медленнее и последние записи (при 200000) считываются где-то за 5-10 секунд. Думал, что есть способ как-то иначе считывать данные файла в массив, поэтому и написал в форум. Эти файлы не принадлежат одной СУБД, просто отдельные файлы. |
20.01.2015, 16:29 | #20 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Цитата:
Однако мы на заводе такие вещи решали с помошью FoxPro, который и был выбран в качестве СУБД для обработки DBF файлов. Создавались индексы для ускорения работы (например нахождения точек для стачивания), а потом запросом за миллисекунду подбирались данные. Никакого цикла тут не надо, тебе нужно все делать запросами. В винде кстати есть провайдер для работы с DBF через Query. Опять таки описанная тобой информация вообще ни о чем не говорит что нужно делать с данными. Поэтому и ответ такой.
I'm learning to live...
|
||
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ADOTable связи | MrMorozko | БД в Delphi | 1 | 04.05.2011 09:36 |
Вопрос по ADOTable | Sanakan | Помощь студентам | 1 | 28.03.2010 12:35 |
AdoTable | Artruman | БД в Delphi | 4 | 03.04.2009 02:07 |
AdoTable | Mishina | БД в Delphi | 2 | 15.06.2008 06:35 |
Как копировать данные из ADOTable в ADOTable? | mauar | БД в Delphi | 1 | 10.05.2008 16:05 |