FILE:RECORDS и кодировка UTF

64 views
Skip to first unread message

ShopPoint1 Point

unread,
Nov 12, 2024, 4:06:42 AM11/12/24
to cla...@googlegroups.com
Добрый день,
Код для копирования двух идентичных файлов(таблиц) из SQLite (pFm3_) в Memory (pFm_) , их много более 50-и

sourceRec &= pFm3_.File{PROP:Record} targetRec &= pFm_.File{PROP:Record} LOOP F = 1 TO 999 IF WHO(targetRec,F) = '' THEN BREAK END Fields.AddPair(WHAT(targetRec,F),WHAT(sourceRec,F)) END SET(pFm3_.File) Loop while pFm3_.Next() = Level:Benign CLEAR(targetRec) Fields.AssignRightToLeft() ADD(pFM_.File); IF ERRORCODE() THEN Message('Ошибка загрузки '& pFM_.GetName() &'!','Ошибка') END END

Если возможность содержимое FILE:RECORDS преобразовать в нужную кодировку на "лету"?

Спасибо за внимание  

Alexander Strumensky

unread,
Nov 14, 2024, 9:16:38 PM11/14/24
to cla...@googlegroups.com
Добрый.

можно не совсем на лету, нужно сделать свой Fields.AssignRightToLeft() с блэкджэком и прочим.
используя ISSTRING() либо просто присвоить, либо с преобразованием в нужную кодировку

вт, 12 нояб. 2024 г. в 10:06, ShopPoint1 Point <shopp...@gmail.com>:
--
Вы получили это сообщение, поскольку подписаны на группу "ClaList".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес clalist+u...@googlegroups.com.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/clalist/CABshjhCaYn9rmJZMx9BZnQVwHVUaWfo2SkMQpnKkWg%3DvQOvcMw%40mail.gmail.com.


--
Best regards,
  Strumensky Alexander

ShopPoint1 Point

unread,
Nov 16, 2024, 1:25:09 PM11/16/24
to cla...@googlegroups.com
Спасибо большое за совет. 

пт, 15 нояб. 2024 г. в 04:16, Alexander Strumensky <olds...@gmail.com>:
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/clalist/CAJ4HZHtzQy-5bh%2B4RwD%2BkpM2fRebVzBLCQ6HLOYxB4WfFp5shg%40mail.gmail.com.

Igor Smirnov

unread,
Nov 21, 2024, 3:29:33 AM11/21/24
to cla...@googlegroups.com

Коллеги,

Возникла такая задача - нужно найти все файлы, соответствующие маске (например, "*report*.xls?") в заданной папке и ее подпапках.

И получение этого списка в виде полных имен файлов (с путями) для дальнейшей обработки.

 

Есть ли для этого какой-нибудь более-менее изящный способ, чтобы не прибегать к вызову каких-то bat-файлов с появлением "черного экрана"?

 

-- 
Best regards,
Igor Smirnov

-- 

 

 

Vadim Sinyavskiy

unread,
Nov 21, 2024, 3:41:56 AM11/21/24
to cla...@googlegroups.com
Ну как бы единственный вменяемый способ - создание рекурсивно вызываемой функции с использование DIRECTORY с маской *.* и необходимыми атрибутами (но включая ff_:DIRECTORY), с рекурсией для найденных папок.
Делов на полчаса.

чт, 21 нояб. 2024 г. в 10:29, Igor Smirnov <imsm...@gmail.com>:
--
Вы получили это сообщение, поскольку подписаны на группу "ClaList".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес clalist+u...@googlegroups.com.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/clalist/445713657.20241121112924%40gmail.com.

Rimantas Nedzinskas

unread,
Nov 21, 2024, 3:45:48 AM11/21/24
to cla...@googlegroups.com
Привет , 

DIRECTORY()  не катит ? 

Римас 

--
Вы получили это сообщение, поскольку подписаны на группу "ClaList".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес clalist+u...@googlegroups.com.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/clalist/445713657.20241121112924%40gmail.com.

Igor Smirnov

unread,
Nov 21, 2024, 4:22:13 AM11/21/24
to Rimantas Nedzinskas

Hello Rimantas,


Нужно с подпапками без ограничения вложенных уровней.

Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/clalist/CAOv4sAiK6BN1roM70vBcJUwpt0q6Mqn2VzYQ%3DL_%2BtRd_Y6DsOg%40mail.gmail.com.

Pavel K

unread,
Nov 21, 2024, 4:38:25 AM11/21/24
to cla...@googlegroups.com
рекурсия в помощь

чт, 21 нояб. 2024 г. в 12:22, Igor Smirnov <imsm...@gmail.com>:
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/clalist/206740920.20241121122206%40gmail.com.

Andrey Kuznetsov

unread,
Nov 21, 2024, 1:18:42 PM11/21/24
to cla...@googlegroups.com

Командой Run()  запустить бат файл: my.bar > files.txt и потом прочесть этот текстовый файл?

--

Вы получили это сообщение, поскольку подписаны на группу "ClaList".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес clalist+u...@googlegroups.com.

Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/clalist/445713657.20241121112924%40gmail.com.

Igor Smirnov

unread,
Nov 21, 2024, 1:22:31 PM11/21/24
to Andrey Kuznetsov

Hello Andrey,


Не, ну это, извините, как гвозди микроскопом забивать....

 

P.S. На самом деле я надеялся, что кто-нибудь подскажет какой-нибудь хитрый вызов WinAPI, но видимо придется делать DIRECTORY с рекурсией.

Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/clalist/005201db3c41%24c91fb200%245b5f1600%24%40gmail.com.

Mike Duglas

unread,
Nov 21, 2024, 1:32:20 PM11/21/24
to cla...@googlegroups.com
Обожаю такие советы.

--
Mike


чт, 21 нояб. 2024 г. в 21:18, Andrey Kuznetsov <kuznet...@gmail.com>:
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/clalist/005201db3c41%24c91fb200%245b5f1600%24%40gmail.com.

Alexander Strumensky

unread,
Nov 21, 2024, 6:23:00 PM11/21/24
to cla...@googlegroups.com
Нет никаких хитрых вызовов
рабочий пример - в аттаче

сам пользую более продвинутую версию с возможностью задать несколько масок, но для нее пришлось бы приаттачить пол библиотеки зависимых классов :)

чт, 21 нояб. 2024 г. в 19:22, Igor Smirnov <imsm...@gmail.com>:
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/clalist/1403372575.20241121212224%40gmail.com.
ScanSubDirs.zip

Igor Smirnov

unread,
Nov 23, 2024, 4:52:24 PM11/23/24
to Alexander Strumensky

Hello Alexander,


Помогло! Вот это действительно изящное решение!

Огромное спасибо!

P.S. Правда, пришлось помучиться с "привинчиванием" этого решения к проекту, но в итоге всё получилось.

Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/clalist/CAJ4HZHsV1Uhrccf3zDPT0%3DonYhAAVDz%2B7wmSxgrQu2_kUY4Q%2BQ%40mail.gmail.com.

Alexander Strumensky

unread,
Nov 24, 2024, 4:37:23 PM11/24/24
to cla...@googlegroups.com
а чего там мучаться? прописать в "After Global Includes"

  INCLUDE('scansubdirs.inc'),ONCE

и сложить файлы куда-нибудь в доступное для компилятора место

Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/clalist/252673046.20241124005215%40gmail.com.

Igor Smirnov

unread,
Nov 25, 2024, 3:34:21 AM11/25/24
to Alexander Strumensky

Hello Alexander,


Ну, если кому интересно, то проект изначально был у меня Legacy. И с ним не заработало. Скомпилировалось внешне всё нормально, но процедура Scan.OnFile 

не запускалась, не выдавая никаких ошибок.

Времени на дебаг и глубокие поиски проблемы особо не было, поэтому по-быстрому  переделал проект на ABC - тогда сработало.

 

А проект такой - есть однотипные файлы Excel, наваленные в кучу с подпапками. Нужно вытянуть из каждого файла значения нескольких полей и набить ими сводную таблицу, которая

тоже является файлом Excel.

Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/clalist/CAJ4HZHvxgwJMS2g-%2BQj2soK_1GtrMJh5dy%3DWaFYt6So0WuV-fg%40mail.gmail.com.
Reply all
Reply to author
Forward
0 new messages