Форум » [x]Harbour » Перевод библиотеки с xHarbour в Harbour » Ответить

Перевод библиотеки с xHarbour в Harbour

santy: Тут решил библиотеку перевести с xHarbour в Harbour. В xHarbour всё работает. Harbour выдаёт ошибки. Скорее всего это связано с работой команды #command. Тогда вопрос, почему не работает следующий код: [pre2] #command SCATTER [TO] MEMVAR ; [<mm: MEMO>] ; [<bb: BLANK>] => ; ;PRIVATE ___i,___m ; ;FOR ___i:=1 to FCount() ; ; ___m:=FieldName(___i) ; ; PRIVATE &___m ; ; IF <.bb.> ; ; &___m:=fox_fieldBlank(___i) ; ; ELSEIF !<.mm.> .and. FieldType(___i)=="M" ; ; &___m:="" ; ; ELSE ; ; &___m:=fieldGet(___i) ; ; ENDIF ; ;NEXT [/pre2] [pre2] Function fox_fieldBlank(nField) LOCAL xFiledsData DO CASE CASE FieldType(nField)=="C" xFiledsData := '' CASE FieldType(nField)=="N" xFiledsData := 0 CASE FieldType(nField)=="L" xFiledsData := .F. CASE FieldType(nField)=="M" xFiledsData := '' CASE FieldType(nField)=="D" xFiledsData := DATE() ENDCASE Return xFiledsData [/pre2] последний NEXT игнорирует. Спасибо.

Ответов - 2

alkresin: Наверное, ошибка в препроцессоре. Если вы замените конструкцию IF ... ENDIF на строчку с вложенными Iif(), все будет работать. Кстати, все эти макросы &___m := value лучше заменить на __mvPut( ___m,value ) - должно работать быстрее.

santy: Александр спасибо, буду пробовать



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