![]() |
|
|
#1
|
|||
|
|||
|
Добрый день.
Есть пять файлов dbf формата идентичной структуры , на выходе нужно получить один dbf но на четыре столбца больше. Пока не знаю с чего начать !!! Предполагаю, нужно создать маленькую базу с структурой выходного dbf и пробовать по одному из входных dbf загружать в эту базу. Потом удачно экспортировать !!! Что посоветуете , как реализовать ?. Когда начну уже писать , опишу как должны формироваться данные в один dbf. Больно не пенать , владею delphi (уровень Новичёк, Начинающий, парочку программ написал , но быстро учусь). Пока всем Спасибо!! |
|
#2
|
||||
|
||||
|
Для начала
Код:
uses DB, DBTables, StdCtrls;
...
if CreateTable('"mytab.dbf"',
'FLD_1 CHARACTER(50), ' +
'FLD_2 CHARACTER(50), ' +
'FLD_3 CHARACTER(50), ' +
'FLD_4 CHARACTER(50), ' +
'FLD_5 CHARACTER(50) ', '') then ...
// значит создалась таблица c пятью одинаковыми полями
else
// что-то пошло не так
... |
|
#3
|
||||
|
||||
|
Цитата:
|
|
#4
|
|||
|
|||
|
Спасибо за ответы.
Работа ежедневная , каждый день я соединяю эти файлы в один через Excel. Вот хочу теперь как то автоматизировать Вот файлы http://yadi.sk/d/tqLRVFjbKZxXu или вот http://dfiles.ru/files/hj1154yew В двух словах Должны сравниваться первых два столбца , и если "LICH" И "TIPES" столбцах совпала строчка , тогда в строчку Value записывается значение с загружаемого файла. 4 и 5 столбы всегда постоянные 0 и1 соответственно. "Type" меняется в зависимости от файла и столбца в выходном DBF то есть Когда "Type" 1 в выходном файле он соответствует Value Когда "Type" 2 в выходном файле он соответствует Value1 Когда "Type" 3 в выходном файле он соответствует Value2 Когда "Type" 4 в выходном файле он соответствует Value3 Когда "Type" 5 в выходном файле он соответствует Value4 Вот и получается 5-ть файлов . Кто может что то предложить? Как реализовать , вообще реально? Последний раз редактировалось M.A.D.M.A.N., 18.03.2014 в 17:34. |
|
#5
|
||||
|
||||
|
Не могу скачать архив с яндекс диска, кнопка "Скачать" не нажимается, переложите его пжлст на обычный файлобменник, напр. zalil.ru или rghost.ru
|
|
#6
|
||||
|
||||
|
Цитата:
|
|
#7
|
|||
|
|||
|
Ещё тут http://dfiles.ru/files/45345
Спасибо за активность Вам . Возможно, я не очень внятно описал свою проблему. ![]() Последний раз редактировалось M.A.D.M.A.N., 18.03.2014 в 17:34. |
|
#8
|
||||
|
||||
|
<<DELETED>>
Последний раз редактировалось Alegun, 18.03.2014 в 07:37. |
|
#9
|
|||
|
|||
|
Разве не реально?
|
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
starcon (18.03.2014)
| ||
|
#11
|
|||
|
|||
|
Спасибо , файл действительно собирает.
Есть одно НО, нет метода сравнения первого и второго столбов с загружаемыми DBF. Попробовал на новых файлах В четвёртом файле (4-й) всего 3-строчки , так программа скопировала их во весь столбец Последний раз редактировалось starcon, 18.03.2014 в 16:22. |
|
#12
|
||||
|
||||
|
Можно после вали добавить проверку на соответствие значений
Код:
...
while not rslt.Eof do
if rslt.FieldValues['LICH'] = dbf1.FieldValues['LICH'] then
... |
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
starcon (18.03.2014)
| ||
|
#13
|
|||
|
|||
|
Работает стабильней.
В главном файле (1-й) на одну строку больше ,чем в остальных файлах. Вот процедура доходит до этой строки и дальше не заполняет остальные столбцы. ![]() На рисунке выделил, данная строчка есть только в первом файле , в остальных файлах её просто нет. Последний раз редактировалось starcon, 18.03.2014 в 16:14. |