Comparar dois Campos do Tipo CHar

Discussão em 'Progress 4GL' iniciado por eder.ufscar, Fevereiro 18, 2011.

  1. eder.ufscar

    eder.ufscar Membro Participativo

    Bom dia

    Estou com o seguinte problema tenho dois arquivos txt que extrai do meu banco de dados e preciso comparar duas colunas do tipo char que são os nomes de alguns produtos, porém se eu testar por exemplo o campo1 = campo2 ele ira testar se o campo é exatamente igual ao outro, existe algum comando em progress que eu faço uma comparação entre os campos e acho um resultado por aproximação por exemplo:

    suponhamos que eu tenho um produto em um arquivo com o nome alcool gel 100 ml e outro produto no outro arquivo com o nome de alcool gel 100ml, se eu usar o teste usando o alcool gel 100 ml = alcool gel 100ml o meu teste vai retornar falso, existe algum comando para realizar uma checagem aproximada?
  2. felix

    felix Membro Participativo

    Só uma pergunta, os seus campos sempre serão iguais? se sim tente colocar o trim() antes da comparação(nos dois campos).

    espero ter ajudado.

    []'s
  3. mcarril

    mcarril Membro Participativo

    Begins Não funciona ?
  4. jalegria

    jalegria Membro Participativo

    dependendo de como vierem esses nomes de produto o begins não vai rolar...
    principalmente se ocorrerem abreviações, etc...

    vc teria varias soluções possiveis
    poderia pegar as palavras da string 1 (separadas por espaço, traço, ponto, etc...) e ver com a função index qtas estão na string 2
    depois fazer o contrario, da string 2 para a 1

    aí vc teria uma porcentagem de palavras do total, um fator q vc poderia usar para definir se está parecido
    mas não seria sempre 100%

    poderia também fazer algo com as letras tb...
  5. eder.ufscar

    eder.ufscar Membro Participativo

    Galera estarei analisando o que vc's me passaram e depois posto o resultado.
  6. Rodrigo Rossetto

    Rodrigo Rossetto Membro Participativo

    É complicado fazer uma comparação por aproximação, não só comparar número de palavras mas quantidade de letras, etc, etc.
    Atribuir uma taxa de aproximação por regra.

    Como o exemplo:

    Código:
    "100 ml" = "100ml" --> falso
    
    replace("100 ml"," ","") = replace("100ml", "","") --> verdadeiro
    No entanto uma letra/número qq no final já não seria igual.

    Código:
    replace("100 ml"," ","") = replace("100ml plus", "","") --> falso
    Depende de qual é o seu objetivo :geek:

Compartilhe esta Página