ПОМОГИТЕ!!! Кто может (хочет) ПОМОГИТЕ!!!

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Гость

Сообщение Гость »

Здравствуйте!!!!!

Прошу оказать посильную помощь.
Когдато встречал описание подобной проблемы, но сейчас немогу найти.
Прошу особо не сердиться если где и повторюсь.
Проблема заключается в следующем:
С5.5
Необходимо каждый месяц из ДБФ файла перенести все записи по некоторым полям в кларионовскую базу (TPS, DAT). Структура ДБФ не меняеться не название файла зависит от месяца.
Необходимо найти етот файл в директории (/program/IN) и перенести его данные в базу клариона для дальнейших манипуляций с ней. КАК СДЕЛАТЬ ВЫБОР ДБФ ФАЙЛА ДЛЯ ПЕРЕНОСА ДАННЫХ?

Извините если чо неправильно сформулировал.

Заранее БЛАГОДАРЮ ЗА ПОМОЩЬ!

С УВАЖЕНИЕМ!
Олег.
Гость

Сообщение Гость »

Ежли автоматом, то указать в словаре переменную имени файла (начать с
!) и эту переменную перед открытием файла заполнять по формату как
надо.

Ежли вручную выбирать, то filedialog()

--
WBR, Тимур Ташбаев, mailto:tim@vz111.bryansk.ru, http://www.oka.made.ru
=2.87 3.12 3.62 4.12 4.62 5.30 6.80 9.10 10.20 ...=

или Directory.Читаешь каталог и выбираешь, удовлетворяющие условию. Пример в хелпе.

--
Best regards,
gorky mailto:gorky@sv3.net.ua
Написал: ClaList(2)
Гость

Сообщение Гость »

1. Заводишь в словаре файл заданной структуры и в качестве
имени задаешь !GLO:DBF_FileName.
2. Выбор файла зависит от твоего желания:
- если автоматом, то по заданнаму месяцу формируешь имя
файла, например:
GLO:DBF_FileName = Format(Year(NewFileDate)) & !
Format(Month(NewFileDate)) & '.DBF'
- если даешь выбор пользователю, то:
- или оператором DIRECTORY собираешь имена всех файлов
из заданной папки по маске в очередь и после ее обработки
(если необходимо) отображаешь полученный список в листе
и даешь пользователю возможность выбора нужного файла
- или с помощью оператора FileDialog даешь оператору
возможность выбора нужного файла прямо из нужной папки:
if FileDialog('Выбор DBF-файла',GLO:DBF_FileName, !
'DBF-файлы!*.DBF!Все файлы!*.*', !
FILE:KeepDir+FILE:LongName).
3. После выбора DBF-файла, опять-же, на выбор:
- или используешь шаблон Process. При этом идешь по
DBF-файлу без ключа, в физ.порядке записей.
- или пишешь небольшой кусочек кода ручками, типа:

Код: Выделить всё

     Open(DBF_File)
     Open(TPS_File); Stream(TPS_File)
     Set(DBF_File)
     Loop
       Next(DBF_File); if ErrorCode() then Break.
       TPS_File_Prefix:Record = DBF_File_Prefix:Record
       ADD(TPS_File); if ErrorCode() then Break.
     .
     Flush(TPS_File)
     Close(TPS_File)
     Close(DBF_File)
Вышеприведенный код является всего лишь АЛГОРИТМОМ и снабжен
лишь МИНИМАЛЬНЫМ набором проверок на ошибки.
РЕАЛЬНЫЙ код со всеми необходимыми проверками и дополнениями,
естественно, может значительно отличаться от вышеприведенного.
Но цель этого кода - показать общую идею второго варианта.

Удачи!

=============================
С уважением, Олег А. Руденко.
Oleg_Rudenko@mail.ru
Oleg_Rudenko@mail333.com

Библиотека DynaLib
http://dynalib.narod.ru

Приблизительно так
Объявляешь очередь

Код: Выделить всё

SelectFile         QUEUE,PRE()
FileName             STRING(13)
FileDate             LONG
FileTime             LONG
FileSize             LONG
FileAttrib           BYTE
                   END
Далее лепишь процедуру выбора файла. В ней лст бокс с очередью.
Заполняешь очередь
DIRECTORY(SelectFile,CLIP(Путь к файлам program/IN) & '*.dbf',ff_:NORMAL)
Выбираешь нужный файл.
GET(SelectFile,CHOICE(?List1))

Удачи. Сергей. njgor@ru.mos.ru
Написал: ClaList(2)
Гость

Сообщение Гость »

ОГРОМНАЯ БЛАГОДАРНОСТЬ !!!!!!!!!!!!!!!!!!!
Всем кто откликнулся.
Щас и начну ваять.
Мне очень приятно, что общество не бросает на произвол заблудившихся.
Желаю Всем Здоровья и УДАЧИ в нелегком нашем труде.
Написал: Oleg2004(23)
Ответить