Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7 (Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Não Janio, não é isso. Mas descobri que se o conteúdo de uma variável lógica for Nil ou .F., retorna .T., acabei de ver no manual, não sabia.
Description: The function tests if an expression yields an empty value. The status "Empty" exists for all data types, except Code block Object and Pointer. It is commonly used to test if a user has entered data into an input field.
Editado:
O mesmo exemplo, se colocar valor .T. retorna .F. para Empty():
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7 (Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Estes dias tive mudar umas 3 rotinas por causa disso..Se tivesse lido o manual como o Jairo fez..
Daí tive que mudar para string onde eu comparava 'S' ou 'N'..
:%
Empty serve também para testar variável tipo date e array
►Harbour 3.x | Minigui xx-x | HwGui◄ Pense nas possibilidades abstraia as dificuldades. Não corrigir nossas falhas é o mesmo que cometer novos erros. A imaginação é mais importante que o conhecimento. (Albert Einstein)
E também numérico, seria empty pra zerado.
Já o array, é novidade.
Esquisito usar Empty() pra boolean, porque se é .T. ou .F., nunca poderia estar vazio, exceto NIL.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2) "The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell" https://github.com/JoseQuintas/
O nil pode acontecer em uma tabela, exemplo um campo tipo varchar2(1) onde recebe T ou F, mas pode ser null, já peguei essa situação em tabela access de terceiros.
►Harbour 3.x | Minigui xx-x | HwGui◄ Pense nas possibilidades abstraia as dificuldades. Não corrigir nossas falhas é o mesmo que cometer novos erros. A imaginação é mais importante que o conhecimento. (Albert Einstein)
Empty segundo o manual retorna .T. nas seguintes situações para variáveis dos tipos:
A - Array: Array with zero elements
C - Character: Null string and White space characters (CR/LF, Space(), Tabs)
D - Date: Null date (CTOD(""))
H - Hash: Hash with zero elements
L - Logical: False (.F.). The Logical variable when "Nil" is same False.
M - Memo: Same as character
N - Numeric: The value zero
Não tem efeito (No empty value) para os tipos:
B - Code block
O - Object
P - Pointer
Uma variável lógica pode ter valor Nil ou lógico quando usado em parâmetros. Exemplo:
Function GeraDanfePDF( cFile, lExibePdf )
...
lExibePdf := If( lExibePdf = Nil, .T., lExibePdf ) // usei assim para funcionar
...
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7 (Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)