problema de validação

alfinete

Power Member
Código:
  private void Vpercentasgem()
        {
            string txtvazio = " ";
            if (Stingvalida_percentagem(Txtpalavrachave.Text))
            {
                palpass = "%" + txt.Replace(' ', '%') + "%";
                   
            }
            else
            {
                txt = txtvazio;
                palpass = "%" + txtvazio + "%";
                
            }
        }
tenho aqui um problema que eu quero que ele não mostre registos quando ponho o caracter especial % ,pois tenho a função "Stingvalida_percentagem" que esta a controlar isso, que funciona perfeitamente.


pois o unico caracter especial que eu tenho validado que não funciona como eu quero é o % , os outros tdos mandam o regs na pesquiza

se na instrução else puser como esta manda todos
se puser

palpass = "%" + txt.Replace(' %', '\\') + "%";

se fizer replace de % por \ como barra é invalido funciona bem
mas eu gstava de fazer isto de outra maneira

agradecia um help
 
se puderes coloca o codigo da função valida percentagem para ter ver a logica de execução, ja que o codigo que meteste aparentemente esta correcto.

cumps
 
aparentemente esta correcto e funciona pergeitamente

mas queria fazer de outra maneira , pois parece que n querem que fassa siim.

pelo menos a instrução do else

de qq das maneiras

esta aqui o valida_percentagem

Código:
 private Boolean Stingvalida_percentagem(String str)
        {
            str.Trim();
            int count = str.Length;
            Boolean result = true;
            char testChar = ' ';

            for (int i = 0; i < count; i++)
            {
                if ((str[i].Equals('%')))
                {
                    result = false;
                    break;
                }
                testChar = str[i];
            }
            return result;
        }

ou seja so queria mudar esta expressão

Código:
palpass = "%" + txt.Replace(' %', '\\') + "%";
 
não estou a perceber bem o que queres fazer....

mas :
1. a tua função Stingvalida_percentagem pode ser substituida por

Código:
bool validaPercentagem = txt.IndexOf('%') == -1;

exemplo : bool validaPercentagem = "kjsdlkasjdasd%kjashdkja sdasd".IndexOf('%') == -1;

para perceber melhor o que queres "dá-me" uma string inicial , e o resultado final (string) esperado para cada caso p.f.

/ing
 
o que eu quero é

alf%rib , ou %alf%rib, ou %alf%rib%
-(qq string com percentagem em qq posição)
evolve vazio pq essa string não existe no registo por caus a da %


% apenas

tb devolve vazio

isso é a instrução que vem a segir ao else
 
Código:
string teste="alf%rib";

bool temPercentagem = teste.IndexOf('%') != -1;

if (temPercentagem)
 teste="";


isto?
 
Última edição:
é a unica maneira que ha de fazer , pois essa foi a que fiz, e funciona , mas que me esrta a orientar diz que não é a melhor forma


brigada na mesma
 
Back
Topo