Форум » [x]Harbour » xHarbour -> Harbour » Ответить

xHarbour -> Harbour

Andrey: Всем привет! Имею конструкцию в проге на хХарборе: try // catch // end // try Как перевести в Харбор ?

Ответов - 16

Dima: #xcommand TRY => BEGIN SEQUENCE WITH {|e| Break( e )} #xcommand CATCH [<!oErr!>] => RECOVER [USING <oErr>] <-oErr->

Andrey: Спасибо Dima ! А вот ещё такую конструкцию: switch nCode case ER_NO_ERROR case ER_FILE_NOT_FOUND exit default // <-- на эту строку ругается компилятор ! return "код ошибки " + str( nCode ) end // switch

Dima: Andrey пишет: default попробуй OTHERWISE а вообще смотри xhb-diff.txt в папке doc


Andrey: Ни кто не сталкивался с проблемой индексация на последнем Харборе ? У меня есть терминалка. База 866 кодировка, экран тоже. хХарбор 1.2.3 Открываю базу в 866 Делаю условную индексацию по ключу: 'ОТКАЗ' $ UPPER(PRIM).AND.!Deleted() находит 3567 записей МиниГуи - последний Харбор, Окна в кодировке WIN, та же база в 866 кодировке. Открываю базу в 866 Делаю условную индексацию по ключу: 'ОТКАЗ' $ UPPER(PRIM).AND.!Deleted() находит 0 записей.

Andrey: Блин, сбоит Мозила, выдавала ошибку при передачи, а сама нафигачила...

Andrey: Разобрался... Нужно перед передачей строку поиска менять функцией HB_ANSItoOEM(), тогда ищет...

Dima: Andrey пишет: Блин, сбоит Мозила, выдавала ошибку при передачи, а сама нафигачила... Да не только у тебя нафигачила А я чистил потом за всеми в том числе за собой :)

rvu: Взял свою программу, написанную на xHarbour 1.0.0, прогнал на Харборе с hbmk2, получил такой списочек в ошибках: DIRNAME DIRMAKE NTOC DISKFREE CHECKSUM GETDEFAULTPRINTER WIN32PRN TOLEAUTO CSETCURS COLORWIN SHOWTIME KEYSEC SETDATE SETTIME CENTER ISLEAP TIMETOSEC SECTOTIME FILEMOVE KSETINS Теперь думаю, что с этим делать...

Петр: rvu пишет: Теперь думаю, что с этим делать... Подключить библиотеки xhb и hbct

Andrey: Имею на хХарборе временную папку для юзера: [pre2] ? cDirTemp := C_getspecialfolder(0x0028)+"\Local Settings\Temp\МояПрога" cDirTemp := HB_ANSITOOEM(cDirTemp) // перевести в ОЕМ-кодировку[/pre2] Эти путь - X:\Documents and Settings\ЮЗЕР???\Local Settings\Temp Давно уже делал... Сейчас потребовалось привести как в Харборе на МиниГуи для функции GetUserTempFolder() Эти путь - X:\Users\ЮЗЕР???\AppData\Local\Temp Как это сделать ? Какое значение применить вместо C_getspecialfolder(0x0028) ?

Andrey: Сделал портирование функции из МиниГуи, но не могу доделать до конца. Вот код: [pre2]FUNCTION GetUserTempFolder() LOCAL cPath if OS_ISWINVISTA_OR_LATER() // IsVistaOrLater() cPath := GetUserProfileFolder() + "\AppData\Local\Temp" else cPath := cFilePath( GetTempDir() ) endif RETURN cPath *-----------------------------------------------------------------------------* FUNCTION cFilePath( cPathMask ) *-----------------------------------------------------------------------------* LOCAL cPath hb_FNameSplit( cPathMask, @cPath ) RETURN Left( cPath, Len( cPath ) - 1 ) ****************************************************** #define CSIDL_PROFILE 0x0028 // USERPROFILE FUNCTION GetUserProfileFolder() RETURN C_GETSPECIALFOLDER( CSIDL_PROFILE )[/pre2] Не получается сделать функцию (что-то не то выдаёт) : [pre2]#pragma BEGINDUMP #include <windows.h> #include "hbapi.h" HB_FUNC( GETTEMPDIR ) { char szBuffer[ MAX_PATH + 1 ] = { 0 }; GetTempPath( MAX_PATH, szBuffer ); hb_retc( szBuffer ); } #pragma ENDDUMP [/pre2]

Andrey: Сделал проще... Только не знаю, правильно ли или нет .... [pre2]FUNCTION GetUserTempFolder() LOCAL cPath if OS_ISWINVISTA_OR_LATER() // IsVistaOrLater() cPath := GetUserProfileFolder() + "\AppData\Local\Temp" else cPath := GetUserProfileFolder() + "\Local Settings\Temp" endif RETURN cPath[/pre2]

Dima: Andrey пишет: FUNCTION GetUserTempFolder() А зачем если она уже есть в i_pseudofunc.ch ?

Andrey: Dima пишет: А зачем если она уже есть в i_pseudofunc.ch ? Да я его для хХарбора делаю ! Не нашёл в хХарборе такой же функции.

Dima: Andrey пишет: Да я его для хХарбора делаю ! Не проще ли привести все свои задачи к какому то одному языку и не выносить себе мозг ? Я бы выбрал Harbour. И потом если ты юзаешь связку Minigui + Harbour и Minigui + XHarbour в других задачах , то я думаю в Minigui это учтено. Или мы говорим о задаче без Minigui ?

Andrey: Dima пишет: Не проще ли привести все свои задачи к какому то одному языку и не выносить себе мозг ? Я бы выбрал Harbour. Это конечно было бы лучше. Но нет времени перевести терминалку с хХарбора на Харбор. Очень плотно занят переносом задачи на МиниГуи. Хочу избавиться от терминалки. Юзера не хотят, уж очень шустро терминалка работает по сравнению чем новая программа на МиниГуи. Компы на ХР всё таки слабо подходят для МиниГуи, да и сами компы оставляют желать лучшего. Так и приходиться пока приводить в соответствие выборочно некоторые функции для хХарбора.



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