Здравствуйте!!!!!
Прошу оказать посильную помощь.
Когдато встречал описание подобной проблемы, но сейчас немогу найти.
Прошу особо не сердиться если где и повторюсь.
Проблема заключается в следующем:
С5.5
Необходимо каждый месяц из ДБФ файла перенести все записи по некоторым полям в кларионовскую базу (TPS, DAT). Структура ДБФ не меняеться не название файла зависит от месяца.
Необходимо найти етот файл в директории (/program/IN) и перенести его данные в базу клариона для дальнейших манипуляций с ней. КАК СДЕЛАТЬ ВЫБОР ДБФ ФАЙЛА ДЛЯ ПЕРЕНОСА ДАННЫХ?
Извините если чо неправильно сформулировал.
Заранее БЛАГОДАРЮ ЗА ПОМОЩЬ!
С УВАЖЕНИЕМ!
Олег.
ПОМОГИТЕ!!! Кто может (хочет) ПОМОГИТЕ!!!
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ежли автоматом, то указать в словаре переменную имени файла (начать с
!) и эту переменную перед открытием файла заполнять по формату как
надо.
Ежли вручную выбирать, то 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)
!) и эту переменную перед открытием файла заполнять по формату как
надо.
Ежли вручную выбирать, то 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-файлу без ключа, в физ.порядке записей.
- или пишешь небольшой кусочек кода ручками, типа:
Вышеприведенный код является всего лишь АЛГОРИТМОМ и снабжен
лишь МИНИМАЛЬНЫМ набором проверок на ошибки.
РЕАЛЬНЫЙ код со всеми необходимыми проверками и дополнениями,
естественно, может значительно отличаться от вышеприведенного.
Но цель этого кода - показать общую идею второго варианта.
Удачи!
=============================
С уважением, Олег А. Руденко.
Oleg_Rudenko@mail.ru
Oleg_Rudenko@mail333.com
Библиотека DynaLib
http://dynalib.narod.ru
Приблизительно так
Объявляешь очередь
Далее лепишь процедуру выбора файла. В ней лст бокс с очередью.
Заполняешь очередь
DIRECTORY(SelectFile,CLIP(Путь к файлам program/IN) & '*.dbf',ff_:NORMAL)
Выбираешь нужный файл.
GET(SelectFile,CHOICE(?List1))
Удачи. Сергей. njgor@ru.mos.ru
Написал: ClaList(2)
имени задаешь !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)