Clipper On Line • Ver Tópico - if statement não funciona direito

if statement não funciona direito

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

if statement não funciona direito

Mensagempor tchadrack » 16 Fev 2021 14:26

Estou tendo problema no seguinte código:

DO WHILE (!Eof())
       TTT := TRIM(F2->MENUPRI)  //criei esta variável para facilitar checar o conteúdo dela durante o debug
        IF (TTT!="")  //mesmo quando o conteúdo de TTT é diferente de "" o código abaixo não é executado
          alert("executado")
        ENDIF
       SKIP
ENDDO


o código dentro da cláusula IF acima não é executado, mesmo que eu inverta o sinal de "diferente !=" para "igual ==)
não é executado quando TTT != "", já alterei até o nome da variável, só é executado se eu colocar um conteúdo dentro de "", por exemplo TTT !- "c"
já tentei usar <> como sinal para diferente. já tentei usar o hb34 ou a versão 3.2.

a versão do compilador mingw:
gcc (Rev2, Built by MSYS2 project) 7.3.0

tentei compilar usando
Harbour 3.2.0dev (r2011030937) e o
Harbour 3.4.0dev () (2020-11-14 01:40)

mas os dois apresentaram o mesmo problema

PATH=c:\hb34\bin;c:\mingw\bin;c:\bcc\bin;c:\hb34\;c:\hb34\bin\win\mingw ao compilar usando a versão 3.4
PATH=c:\hb32\bin;c:\mingw\bin;c:\bcc\bin;c:\hb32\;c:\hb32\bin\win\mingw ao compilar usando a versão 3.2

algum dos colegas saberia me dizer porque isto está acontecendo?
tchadrack
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 27
Data de registro: 15 Mar 2016 15:42
Cidade/Estado: São Paulo
Curtiu: 1 vez
Mens.Curtidas: 2 vezes

if statement não funciona direito

Mensagempor microvolution » 16 Fev 2021 14:58

tchadrack escreveu:IF (TTT!="")
experimente assim:
IF TTT<>""

ou
IF TTT<>NIL

manda ver e posta os resultados, pra nós por favor!
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
microvolution
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1175
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 17 vezes

if statement não funciona direito

Mensagempor LDOSISTEMAS » 16 Fev 2021 15:01

Boa tarde
IF (TTT!="") //nesse ponto em vez de (TTT!="") não poderia ser !(TTT="")
LAURO DE OLIVEIRA
Analista/Diretor
(37) 3381 32 11
www.ldosistemas.com.br
Imagem
LDOSISTEMAS
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 45
Data de registro: 01 Set 2014 17:04
Cidade/Estado: CLAUDIO/MG
Curtiu: 1 vez
Mens.Curtidas: 2 vezes

if statement não funciona direito

Mensagempor alxsts » 16 Fev 2021 16:32

Olá!

Situação estranha esta... mas certamente não é problema no Harbour...

// A variável TTT foi declarada como LOCAL?
// Será que existe alguma PRIVATE ou PUBLIC com nome de TTT?
// Trim() remove apenas espaços à direita. Pode ter sobrado alguma coisa...
// Use Alltrim( que remove espaços à esquerda e à direita...)

DO WHILE (!Eof())  // em que área é feito este loop? F2 ?
   TTT := ALLTRIM( F2->MENUPRI )
   IF ! Empty( TTT )
      Alert("executado")
   ENDIF
   SKIP  // em que área é feito este skip? F2 ?
ENDDO

// ou

DO WHILE F2->( !Eof() )
   IF ! Empty( ALLTRIM( F2->MENUPRI )
      alert("executado")
   ENDIF
   F2->( DBSKIP() )
ENDDO
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2943
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

if statement não funciona direito

Mensagempor JoséQuintas » 16 Fev 2021 17:54

Problema tradicional.

Ao invés de

IF (TTT!="")

utilize

IF ! TTT == "" ou IF ! Empty( TTT )

Explicação: ao comparar string, é usado o tamanho da menor e os outros caracteres são desprezados.

= compara pelo menor tamanho
!= compara pelo menor tamanho, é o contrário de =
== compara exatamente igual
! x == y compara não exatamente igual, é o contrário de ==

PROCEDURE Main

   ? "ABA" = ""       // .T. considera igual
   ? "ABA" != ""      // .F. considera igual
   ? "ABA" == ""      // .F. considera diferente
   ? ! "ABA" == ""    // .T. considera diferente
   Inkey(0)

   RETURN
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Google [Bot] e 3 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro