Форум » GUI » Новая версия Расширенного релиза библиотеки MiniGUI (часть VI ) (продолжение) » Ответить

Новая версия Расширенного релиза библиотеки MiniGUI (часть VI ) (продолжение)

gfilatov: Начало темы находится здесь, а теперь АНОНС * АНОНС * АНОНС * АНОНС * АНОНС Готовится к опубликованию новая сборка №48, которая выйдет в конце недели. Если у Вас есть интересные наработки для включения в новый релиз, то сейчас самое удобное время для их отправки мне Кратко, что нового: - исправление обнаруженных ошибок и неточностей кода; - новый класс HEADERIMAGE для Grid и Browse; - свойство Address в Hyperlink может теперь открывать папку или файл на диске; - добавлен NOTABSTOP класс для Browse; - поддержка пользовательских компонентов (заимствована из оффициального релиза); - расширения и исправления в библиотеках TsBrowse и PropGrid; - обновлены сборки Харбор и HMGS-IDE; - новые и обновленные старые примеры (как обычно ).

Ответов - 300, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All

Dima: Сергей хочешь сказать что это быстрее механизма hb_fuse и связанных функций ?

SergKis: Dima пишет хочешь сказать что это быстрее механизма hb_fuse Да. aFile := array(200) // заполняем aFile 200 файлов log с записями 1 500 000 строк разделенных CRLF всего FOR nI := 1 TO 200 cFile := aFile[ nI ] nMp := fmp_Open( cFile ) fmp_Count( nMp ) // подсчет строк в файле fmp_Close( nMp ) NEXT это занимает ~ 0.2-0.3 сек. Опыт делался еще на hb20 давно в районе 2012 г.

Dima: SergKis пишет: Опыт делался еще на hb20 давно в районе 2012 г. Долго же ты ждал , что бы выложить PS Сам проверю.


SergKis: Dima пишет Долго же ты ждал Написал и использовал товарищ по работе для log журналов расчета квартплаты и импорта больших csv файлов. У меня ранее на VO была сделана система работы с txt файлами как с log, так и с другими, в итоге получалась база[ы] dbf и далее типа browse для работ получения отчетов (генератор их). Исп. не так часто, только при разборах полетов и оч. редких запросов налоговой при проверках. Было до лампочки по времени работы. Столкнулся с проблемой времени при ежедневной откачке инф. из firebird, где данные переменного объема (чужая задача) от ~2 500 000 записей растет до ~10 000 000 за ~3 месяца, потом база обрезается опять до последних ~2 500 000. В этой ситуации сам применил, что было давно сделано. Решил поделится, вдруг пригодится кому. Сразу скажу, что исп. fbclient.dll и класс oServer := TFBServer():New( cServer + cDatabase, cUser, cPass, nDialect ) на таких объемах (выбор всех данных из таблицы) ожидаемо сваливалось и надо было строить разные запросы с ограничениями записей и в целом усложнять все, т.е. себе лишняя работа. Исп. возможности их системы выдавать отчеты в txt файлы и обработал как в примере выше. Получилось несколько отчетов с max 10 000 000 записей (во всех ~5 штук). Раз в сутки (чаще клиенту не надо) все данные из firebird попадают в помесячную базу на CDX для ежедневных, годовых, квартальных отчетов и ...

Dima: Сергей , погонял тесты. Шикарный инструмент по скорости. Тестовый файл , длина строки 1000 + CRLF , всего строк 1 000 000 hb_flastrec() 0.93 ft_FLastRe() 0.92 fmp_Count() 0.39 Ежели в цикле читать строки hb_freadln() 5.00 ft_FReadLn() 4.7 fmp_Line () 0.72 Во время сборки ворнингов дофигища....код не совсем корректен ? [pre2] ../fmp.c:32:2: warning: missing braces around initializer [-Wmissing-braces] static hb_MapFile amf[ AMF_SIZE ] = { 0 }; ^ ../fmp.c:32:2: warning: (near initialization for 'amf[0]') [-Wmissing-braces] ../fmp.c: In function '__OpenFile': ../fmp.c:117:13: warning: pointer targets in assignment differ in signedness [-Wpointer-sign] MF.pData = ( char *) MapViewOfFile( MF.hMap, FILE_MAP_READ, 0, 0, MF.dwSize); ^ ../fmp.c:89:12: warning: variable 'n' set but not used [-Wunused-but-set-variable] int i=0,n; ^ ../fmp.c:87:45: warning: unused parameter 'ind' [-Wunused-parameter] static BOOL __OpenFile( WCHAR * cFile, int ind, int nRO ) ^ ../fmp.c:87:54: warning: unused parameter 'nRO' [-Wunused-parameter] static BOOL __OpenFile( WCHAR * cFile, int ind, int nRO ) ^ ../fmp.c: In function '__RetDeCode': ../fmp.c:208:40: warning: pointer targets in passing argument 2 of 'hb_cdpUTF8AsStrLen' differ in signedness [-Wpointer-sign] n = hb_cdpUTF8AsStrLen( cdp, utf, Ln, 0 ); /* Нужная длинна */ ^ In file included from c:/hb32mingw20/include/hbapigt.h:54:0, from c:/hb32mingw20/include/hbgtcore.h:55, from ../cons2.h:14, from ../fmp.c:1: c:/hb32mingw20/include/hbapicdp.h:479:31: note: expected 'const char *' but argument is of type 'unsigned char *' extern HB_EXPORT HB_SIZE hb_cdpUTF8AsStrLen( PHB_CODEPAGE cdp, const char * pSrc, HB_SIZE nSrc, HB_SIZE nMax ); ^ ../fmp.c:214:35: warning: pointer targets in passing argument 2 of 'hb_cdpUTF8ToStr' differ in signedness [-Wpointer-sign] hb_cdpUTF8ToStr( cdp, utf, Ln, s, n + 1 ); ^ In file included from c:/hb32mingw20/include/hbapigt.h:54:0, from c:/hb32mingw20/include/hbgtcore.h:55, from ../cons2.h:14, from ../fmp.c:1: c:/hb32mingw20/include/hbapicdp.h:480:31: note: expected 'const char *' but argument is of type 'unsigned char *' extern HB_EXPORT HB_SIZE hb_cdpUTF8ToStr( PHB_CODEPAGE cdp, const char * pSrc, HB_SIZE nSrc, char * pDst, HB_SIZE nDst ); ^ ../fmp.c:214:44: warning: pointer targets in passing argument 4 of 'hb_cdpUTF8ToStr' differ in signedness [-Wpointer-sign] hb_cdpUTF8ToStr( cdp, utf, Ln, s, n + 1 ); ^ In file included from c:/hb32mingw20/include/hbapigt.h:54:0, from c:/hb32mingw20/include/hbgtcore.h:55, from ../cons2.h:14, from ../fmp.c:1: c:/hb32mingw20/include/hbapicdp.h:480:31: note: expected 'char *' but argument is of type 'unsigned char *' extern HB_EXPORT HB_SIZE hb_cdpUTF8ToStr( PHB_CODEPAGE cdp, const char * pSrc, HB_SIZE nSrc, char * pDst, HB_SIZE nDst ); ^ ../fmp.c:216:45: warning: pointer targets in passing argument 1 of 'hb_storvclen_buffer' differ in signedness [-Wpointer-sign] if(y > 0) hb_storvclen_buffer( s, n, -1, y); ^ In file included from c:/hb32mingw20/include/hbapigt.h:53:0, from c:/hb32mingw20/include/hbgtcore.h:55, from ../cons2.h:14, from ../fmp.c:1: c:/hb32mingw20/include/hbapi.h:779:25: note: expected 'char *' but argument is of type 'unsigned char *' extern HB_EXPORT int hb_storvclen_buffer( char * szText, HB_SIZE nLength, int iParam, ... ); /* stores a fixed length string buffer on a variable by reference */ ^ ../fmp.c:217:42: warning: pointer targets in passing argument 1 of 'hb_retclen_buffer' differ in signedness [-Wpointer-sign] else hb_retclen_buffer( s, n ); ^ In file included from c:/hb32mingw20/include/hbapigt.h:53:0, from c:/hb32mingw20/include/hbgtcore.h:55, from ../cons2.h:14, from ../fmp.c:1: c:/hb32mingw20/include/hbapi.h:692:25: note: expected 'char *' but argument is of type 'unsigned char *' extern HB_EXPORT void hb_retclen_buffer( char * szText, HB_SIZE nLen ); /* same as above, but accepts an allocated buffer */ ^ ../fmp.c:224:31: warning: pointer targets in passing argument 1 of 'hb_storvclen' differ in signedness [-Wpointer-sign] if( y > 0 ) hb_storvclen( utf, Ln, -1, y); ^ In file included from c:/hb32mingw20/include/hbapigt.h:53:0, from c:/hb32mingw20/include/hbgtcore.h:55, from ../cons2.h:14, from ../fmp.c:1: c:/hb32mingw20/include/hbapi.h:778:25: note: expected 'const char *' but argument is of type 'unsigned char *' extern HB_EXPORT int hb_storvclen( const char * szText, HB_SIZE nLength, int iParam, ... ); /* stores a fixed length string on a variable by reference */ ^ ../fmp.c:225:28: warning: pointer targets in passing argument 1 of 'hb_retclen' differ in signedness [-Wpointer-sign] else hb_retclen( utf, Ln ); ^ In file included from c:/hb32mingw20/include/hbapigt.h:53:0, from c:/hb32mingw20/include/hbgtcore.h:55, from ../cons2.h:14, from ../fmp.c:1: c:/hb32mingw20/include/hbapi.h:691:25: note: expected 'const char *' but argument is of type 'unsigned char *' extern HB_EXPORT void hb_retclen( const char * szText, HB_SIZE nLen ); /* returns a string with a specific length */ ^ ../fmp.c: In function 'HB_FUN_FMP_ATOKENCSV': ../fmp.c:340:30: warning: 'n' may be used uninitialized in this function [-Wmaybe-uninitialized] hb_reta( k + ( (n > 0)? 1 : 0) ); ^ ../fmp.c:329:17: note: 'n' was declared here int i=0,k=0, n, y; ^ [/pre2]

SergKis: Dima пишет Во время сборки ворнингов дофигища....код не совсем корректен ? У нас сборка под vc 2019, протокол чистый (для 2008 и 2017 так же норм)[pre2] DbOpenCount.C FileFun.C MapFile.C CsvLine.C Создание кода... [/pre2]

Dima: SergKis У меня MinGw. Ну да ладно , работает же Спасибо !

SergKis: Dima Как я понял, тут не исп. переменная n, можно убрать [pre2] static BOOL __OpenFile( WCHAR * cFile, int ind, int nRO ) { int i=0 /*,n*/; while( amf[ i ].dwSize > 0 && i < AMF_SIZE) i++; if(i == AMF_SIZE) return FALSE; MF.pLine = MF.pData + i; ... /* n = 0; комент /* был тут while( ( DWORD ) i < MF.dwSize && MF.pData != 10) { i++; n++; } MF.nLine = 1; MF.nLen = ( n>0 && (MF.pData[i-1]==13) )? (n-1) : n; */ return TRUE; } [/pre2] в др. местах тип надо приводить не 'const char *' а 'unsigned char *', но думаю MinGw применил как надо

Dima: попробую , спасибо Серёга !

SergKis: Dima Небольшой пример тсб просмотра файла ф-ями fmp_Line(...), если интересно, конечно Тут https://TransFiles.ru/gfemn Если BOM у файла utf8 есть и стоит 3-ий параметр fmp_line(...,..., .T.), то перекодировка из utf8 есть, иначе нет и надо самому делать, как в примере ф-я dos4w5(...) делает utf8 -> lv866. Можно применять и fmp_ATokensCSV(...), тогда можно делать поколоночный показ файла (разделитель колонок chr(9) в записи) PS Пример сделан на своей версии, можешь пробнуть собрать на hmg, поставив свою CDP, свой файл и если он utf8 без BOM, заменить dos4w5(...) на hb_Utf8ToStr( fmp_Line(...) )

Dima: SergKis

gfilatov2002: Выложил 3-е обновление сборки 22.09 с учетом последних исправлений и дополнений click here

gfilatov2002: Завершена подготовка новой сборки 22.11, которая планируется к выпуску на следующей неделе Что нового: [pre2] * Fixed: Correction of style C-type from int to DWORD in the Minigui core according to the WinAPI definition. Contributed by Grigory Filatov <gfilatov@gmail.com> * Updated: C-code cleaning for unneeded variables when defining controls and windows in the Minigui core. Contributed by Grigory Filatov <gfilatov@gmail.com> * Updated: HbCurl library: - added HB_CURLOPT_MAXLIFETIME_CONN to setup max lifetime; - added HB_CURLOPT_DEBUGBLOCK to setup a block for debug. Contributed by Antonino Perricone (see in folder \Harbour\Lib) * Updated: HbSQLite3 library: - update for using SQLITE3 version 3.40.0dev (from 3.39.4). Contributed by Grigory Filatov <gfilatov@gmail.com> * Updated: Harbour Compiler 3.2.0dev (SVN 2022-11-11 21:15). Contributed by Grigory Filatov <gfilatov@gmail.com> (look at ReadMe.txt in folder \harbour) * Updated: 'Desktop Windows Version Market Share Worldwide' sample: - updated the data for October 2022. Contributed by Grigory Filatov <gfilatov@gmail.com> (see demo.prg in folder \samples\Basic\GraphPrint) * Updated: 'MiniGUI DataBase Utility' sample: - fixed setting of tags in TBrowse with using :uLastTag variable; - others minor corrections regarding tags. Contributed by Grigory Filatov <gfilatov@gmail.com> (see in folder \Utils\mgDBU) [/pre2] Возможно, нового внесено не так уж и много, но пришлось основательно перелопатить и оптимизировать Си-код ядра библиотеки

gfilatov2002: Как и обещал, выложил финальную сборку 22.11 click here Также обновил Unicode версию библиотеки по старому адресу для Сергея Ваши комментарии приветствуются...

SergKis: gfilatov2002 пишет обновил Unicode версию библиотеки по старому адресу Спасибо Буду пробовать на ней, а предыдущую unicode дополнил RcDataToMem() и полет нормальный. Пока единственный затык с работающей версией - это работа modal окна под MdiChild, в нашей версии работает.

gfilatov2002: Завершена подготовка новой сборки 22.12, которая планируется к выпуску на следующей неделе Что нового: - исправление ошибок и неточностей в коде; - добавлена новая возможность для элемента управления SWITCHER - картинка для режима отображения disabled; - продолжена основательная чистка Си-кода с целью удаления ненужных переменных, без которых можно обойтись; - добавлен новый пример, который показывает как закрасить цветом всю строку, столбец или отдельную клетку в элементе управления GRID. Желаю всем мирного неба над головой

gfilatov2002: Опубликована финальная сборка 22.12, которая выложена по адресу click here Замечание. Обращаю ваше внимание, что также есть платные сборки этой версии библиотеки для следующих 64-битных Си-компиляторов: - Borland\Embarcadero C++ 7.20 for Win64; - MinGW GNU C 12.2.0 (packaged on 2022-08-28); - MS Visual C++ 2022 Community Edition (19.34.31933). Таким образом, работоспособность библиотеки была успешно проверена для всех актуальных версий современных Си компиляторов

gfilatov2002: Завершена подготовка 1-го обновления сборки 22.12, которая планируется к выпуску на следующей неделе Что нового: - исправление обнаруженных ошибок (подробности есть на английском форуме Минигуи); - добавлен новый переключатель AUTOUPDATE в элементе управления GetBox с использованием класса FIELD, который предназначен для принудительной записи в поле базы данных при любом изменении значения Value в GetBox; - добавлены новые макросы для унификации параметров в Си-коде библиотеки; - обновлена библиотека BosTaurus с целью оптимизации кода; - обновлена сборка компилятора Харбор до текущей версии на сервере github; - обновлены некоторые примеры с учетом изменений и дополнений в ядре библиотеки. Искренне благодарю за материальную поддержку моей работы Андрея Верченко!

gfilatov2002: Выложил 1-е обновление сборки 22.12 с учетом последних исправлений и дополнений click here

Andrey: gfilatov2002 пишет: Выложил 1-е обновление сборки 22.12 Можно ссылку на юникодную версию ? И ещё ссылку для компилятора Microsoft ?



полная версия страницы