Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.03.2014, 15:10
starcon starcon вне форума
Новичок
 
Регистрация: 15.03.2014
Сообщения: 84
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию dbf Файлы

Добрый день.
Есть пять файлов dbf формата идентичной структуры , на выходе нужно получить один dbf но на четыре столбца больше.


Пока не знаю с чего начать !!!
Предполагаю, нужно создать маленькую базу с структурой выходного dbf и пробовать по одному из входных dbf загружать в эту базу.
Потом удачно экспортировать !!!

Что посоветуете , как реализовать ?.
Когда начну уже писать , опишу как должны формироваться данные в один dbf.

Больно не пенать , владею delphi (уровень Новичёк, Начинающий, парочку программ написал , но быстро учусь).

Пока всем Спасибо!!
Ответить с цитированием
  #2  
Старый 15.03.2014, 15:38
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Для начала
Код:
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  
Старый 15.03.2014, 17:02
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 576
Версия Delphi: 6
Репутация: выкл
По умолчанию

Цитата:
Сообщение от starcon
Есть пять файлов dbf формата идентичной структуры , на выходе нужно получить один dbf но на четыре столбца больше.
Если это разовая работа, проще всего проделать всё в SQL Explorer запросами.
__________________
Не стоит путать форумы с богадельнями. © Bargest
Ответить с цитированием
  #4  
Старый 15.03.2014, 17:52
starcon starcon вне форума
Новичок
 
Регистрация: 15.03.2014
Сообщения: 84
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Спасибо за ответы.
Работа ежедневная , каждый день я соединяю эти файлы в один через 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  
Старый 15.03.2014, 19:53
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Не могу скачать архив с яндекс диска, кнопка "Скачать" не нажимается, переложите его пжлст на обычный файлобменник, напр. zalil.ru или rghost.ru
Ответить с цитированием
  #6  
Старый 15.03.2014, 20:00
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Alegun
Не могу скачать архив с яндекс диска, кнопка "Скачать" не нажимается, переложите его пжлст на обычный файлобменник, напр. zalil.ru или rghost.ru
Странно, у меня нормально скачалось. Вот положил его на zalil.ru: http://gfile.ru/a4hbz
Ответить с цитированием
  #7  
Старый 15.03.2014, 20:03
starcon starcon вне форума
Новичок
 
Регистрация: 15.03.2014
Сообщения: 84
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Ещё тут http://dfiles.ru/files/45345

Спасибо за активность Вам .

Возможно, я не очень внятно описал свою проблему.

Последний раз редактировалось M.A.D.M.A.N., 18.03.2014 в 17:34.
Ответить с цитированием
  #8  
Старый 15.03.2014, 20:34
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

<<DELETED>>

Последний раз редактировалось Alegun, 18.03.2014 в 07:37.
Ответить с цитированием
  #9  
Старый 17.03.2014, 20:06
starcon starcon вне форума
Новичок
 
Регистрация: 15.03.2014
Сообщения: 84
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Разве не реально?
Ответить с цитированием
  #10  
Старый 18.03.2014, 07:36
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Вот что получилось, чисто на G-коде, запросом будет и проще и короче, но извнт, не умею
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
starcon (18.03.2014)
  #11  
Старый 18.03.2014, 11:20
starcon starcon вне форума
Новичок
 
Регистрация: 15.03.2014
Сообщения: 84
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Спасибо , файл действительно собирает.
Есть одно НО, нет метода сравнения первого и второго столбов с загружаемыми DBF.
Попробовал на новых файлах
В четвёртом файле (4-й) всего 3-строчки , так программа скопировала их во весь столбец

Последний раз редактировалось starcon, 18.03.2014 в 16:22.
Ответить с цитированием
  #12  
Старый 18.03.2014, 13:44
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Можно после вали добавить проверку на соответствие значений
Код:
...
while not rslt.Eof do
    if rslt.FieldValues['LICH'] = dbf1.FieldValues['LICH'] then
...
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
starcon (18.03.2014)
  #13  
Старый 18.03.2014, 16:12
starcon starcon вне форума
Новичок
 
Регистрация: 15.03.2014
Сообщения: 84
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Работает стабильней.
В главном файле (1-й) на одну строку больше ,чем в остальных файлах.
Вот процедура доходит до этой строки и дальше не заполняет остальные столбцы.

На рисунке выделил, данная строчка есть только в первом файле , в остальных файлах её просто нет.

Последний раз редактировалось starcon, 18.03.2014 в 16:14.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:40.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter