Форум » [x]Harbour » Harbour dbf editor » Ответить

Harbour dbf editor

Pasha: Выкладываю апдейт (давненько не выкладывал): http://files.mail.ru/LXJ3D7 Whatsnew - смотрите сами, не помню уже. Хочу перевести на буржуйскую мову, но не все сообщения еще сделал, так что буржуям пока не показываю, чтобы их великий и могучий не шокировал :)

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

AlexMyr: качаю.

AlexMyr: Паша, спасибо, работает

Sergey Spirin: Pasha пишет: Ссылка на исправленную версию: http://files.mail.ru/0B08OK Скачал, при запуску все exe-шники требуют HBCONTRIB.DLL, её где брать и что это?


Dima: Sergey Spirin В ранних ссылках есть полный комплект. Вот тут http://files.mail.ru/MPWAVV

AlexMyr: Pasha пишет: Очередная версия программы: http://files.mail.ru/MPWAVV Можно сдесь вытянуть dllки

Sergey Spirin: А... Понятно, спасибо.

AlexMyr: Паша, при открытии битой дбф дос навигатор ругается на поврежденный заголовок, а dbf editor открывает молча и при поиске ошибок по ctrl-e ничего не находит. Можно ли исправить такую ситуацию с помощью dbf editor?

Pasha: А что там повреждено ? Повреждения ведь могут быть очень разными. Да и могут быть не повреждения, а какие-то различия в формате, которые трактуются как повреждения. Можно глянуть на этот дбф ?

AlexMyr: Вот http://zalil.ru/32151419

Pasha: А, там к-во записей в заголовке не соответствует действительному к-ву. Харбор использует действительное к-во, так что это повреждение просто игнорирует. Но другой софт может это и не переварить. Ок, добавлю эту проверку при старте, но только в режиме exclusive, поскольку в shared это допустимо.

Pasha: Очередной апдейт: http://zalil.ru/32156516 mail.ru что-то не работает Что нового: - при вставке записи можно скопировать значения всех полей - добавлена посимвольная редакция полей всех типов, не только character - можно скопировать структуру в буфер обмена в формате dbcreate по нажатию Ctrl+C - доработана проверка корректности индекса: теперь ловится случай, когда ключей больше, чем записей - сделана корректировка неправильного к-ва записей в заголовке Времени прошло немного, вот и изменений немного. А новые функции добавляются по мере возникновения потребностей :)

AlexMyr: Pasha пишет: - сделана корректировка неправильного к-ва записей в заголовке Проверил, работает, спасибо.

Pasha: Whatsnew: - добавлен экспорт в формат CSV или массива Harbour в файл или в буфер обмена - добавлен экспорт в формат XML http://zalil.ru/32174607

Vlad04: Паша. Пожелание . При выполнении операций с файлами (добавить из файла,УСТАНОВИТЬ СВЯЗЬ и др.) желательно имя второго файла не набирать , а выбирать из директории.

Pasha: Vlad04 пишет: Пожелание . При выполнении операций с файлами (добавить из файла,УСТАНОВИТЬ СВЯЗЬ и др.) желательно имя второго файла не набирать , а выбирать из директории. С удивлением увидел, что у меня, оказывается, нет диалога выбора файла по маске для консольного режима. Его, конечно, несложно сделать. В связи с этим возник вопрос: как можно получить массив всех дисков ? Вызывать стандартный диалог windows не хотелось бы

Sergey Spirin: Для Windows: DWORD WINAPI GetLogicalDrives(void); [url=http://msdn.microsoft.com/en-us/library/windows/desktop/aa364972(v=vs.85).aspx]http://msdn.microsoft.com/en-us/library/windows/desktop/aa364972(v=vs.85).aspx[/url]

Andrey: Готовая функция, использую давно: /* * MINIGUI - Harbour Win32 GUI library Demo * * Copyright 2002-05 Roberto Lopez <roblez@ciudad.com.ar> * http://www.geocities.com/harbour_minigui/ * * Copyright 2003-05 Grigory Filatov <gfilatov@freemail.ru> */ /*--------------------------------------------------------*/ Function GetDrives() /*--------------------------------------------------------*/ local n, cDrv, nDrv, cVolume := "", aDrive := {} for n := 1 To 26 cDrv := Chr( 64 + n ) nDrv := GetDriveType( cDrv + ":\" ) if nDrv > 1 if nDrv == 2 .and. Upper(cDrv) == "A" cVolume := [3 1/2"] else cVolume := "" GetVolumeInformation( cDrv + ":\", @cVolume ) endif Aadd( aDrive, { if(n = 1, 1, nDrv), cDrv, IF(Empty(cVolume), "none", cVolume) } ) endif next Return aDrive ************************************************************************* #pragma BEGINDUMP #include <windows.h> #include "hbapi.h" #include "hbapiitm.h" #include "commctrl.h" /* Returns one of these: #define DRIVE_UNKNOWN 0 #define DRIVE_NO_ROOT_DIR 1 #define DRIVE_REMOVABLE 2 #define DRIVE_FIXED 3 #define DRIVE_REMOTE 4 #define DRIVE_CDROM 5 #define DRIVE_RAMDISK 6 */ HB_FUNC( GETDRIVETYPE ) { hb_retni( GetDriveType( (LPCSTR) hb_parc( 1 ) ) ) ; } HB_FUNC(GETVOLUMEINFORMATION) { char *VolumeNameBuffer = (char *) hb_xgrab( MAX_PATH ) ; DWORD VolumeSerialNumber ; DWORD MaximumComponentLength ; DWORD FileSystemFlags ; char *FileSystemNameBuffer = (char *) hb_xgrab( MAX_PATH ) ; BOOL bRet; bRet = GetVolumeInformation( ISNIL(1) ? NULL : (LPCTSTR) hb_parc(1) , (LPTSTR) VolumeNameBuffer , MAX_PATH , &VolumeSerialNumber , &MaximumComponentLength , &FileSystemFlags , (LPTSTR)FileSystemNameBuffer , MAX_PATH ) ; if ( bRet ) { if ( ISBYREF( 2 ) ) hb_storc ((char *) VolumeNameBuffer, 2 ) ; if ( ISBYREF( 3 ) ) hb_stornl( (LONG) VolumeSerialNumber, 3 ) ; if ( ISBYREF( 4 ) ) hb_stornl( (LONG) MaximumComponentLength, 4 ) ; if ( ISBYREF( 5 ) ) hb_stornl( (LONG) FileSystemFlags, 5 ); if ( ISBYREF( 6 ) ) hb_storc ((char *) FileSystemNameBuffer, 6 ); } hb_retl(bRet); hb_xfree( VolumeNameBuffer ); hb_xfree( FileSystemNameBuffer ); } #pragma ENDDUMP

Pasha: Спасибо

Pasha: Whatsnew: - добавлена проверка уникального поля - добавлен диалог выбора файла dbf Ссылка для скачивания: http://zalil.ru/32218561 Кстати, заодно подскажите: Если я запрашиваю список каталогов: Directory("*.*", "D") то в харборе атрибут не работает, получаю весь список файлов. В xHarbour можно задать 3-й параметр: Directory("*.*", "D", .t.), тогда результат будет только массив каталогов. Пока я просто удаляю лишнее, но можно ли как-то сделать по-красивее ?

PSP: У меня в диалоге выбора файла русские названия отображаются неперекодированными. Букву диска ввести не дает. Хорошо бы иметь элемент ".."



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