none
Retirar Texto de um TextBox1 para Textbox2 RRS feed

  • Pergunta

  • Exemplo na TextBox eu tenho escrito ABC gostaria que minha Aplicação só mostrasse na TextBox2 o que está Entre A e C, ou Seja B. Alguêm?
    sábado, 31 de agosto de 2013 01:26

Respostas

  • Israel, primeiramente desculpe, não vi que você estava utilizando vb

    Mas vou te explicar como funciona o raciocínio desse caso.

    Você tem uma string com a tag completa, e uma string nada mais é que uma cadeia de caracteres onde cada caracter possui um índice iniciando em zero certo?

    Vamos supor que eu tivesse o texto "Israel de Jesus" e eu quero apenas pegar o "de".
    Para isso, você precisa utilizar a função Substring onde você passa a posição inicial e a quantidade de caracteres que você quer pegar, Por exemplo:

    string texto = "Israel de Jesus";
    string resultado = texto.Substring(0,6); //aqui a string resultado vai ficar com o valor "Israel"
    

    Agora vem a questão, como saber qual a posição inicial e a quantidade de caracteres que eu tenho que pegar?
    Com a função IndexOf ele vai retornar um inteiro com a posição inicial da cadeia de caracteres que você está buscando, por exemplo:

    string texto = "Israel de Jesus";
    int índice = texto.IndexOf("de");//a variável índice irá retornar 7 que é a posição onde começou a cadeia "de"

    Com isso, basta procurar a cadeia anterior do desejado, no caso o "de", e a cadeia que vem depois dele.

    string texto = "Israel de Jesus";
    int ini = texto.IndexOf("Israel ");//irá retornar 0
    int fim = texto.IndexOf(" Jesus ");//irá retornar 9
    
    //Para pegarmos o que vem depois de "Israel " temos que somar a quantidade de caracteres que tem em "Israel "
    //pois a função IndexOf retorna o índice inicial da string
    ini += 7;
    
    //Como a função Substring utiliza o índice inicial e a quantidade de caracteres, temos que subtrair a posição
    //inicial da posição final a fim de pegarmos apenas o trecho desejado
    nFim -= nIni; //aqui o nFim fica igual a 2, que é a quantidade de caracteres que estamos procurando
    
    //agora basta jogar o valor desejado em uma variável qualquer
    string resultado = texto.Substring(nIni,nFim);

    Cara, eu não conheço muito VB, sempre utilizei o C#, mas acho que não vai ter muitas diferenças no código.
    Da uma olhada e tenta passar para VB o que precisar mudar.

    sábado, 31 de agosto de 2013 13:55

Todas as Respostas

  • Israel blxxx,

    Tenta assim :

    TextBox2.Text = textBox1.Text.Substring(1,textBox1.TextLength-2);
              

    até ++ ;)


    Diego Almeida Barreto
    System Analyst / Software Developer


    sábado, 31 de agosto de 2013 02:52
  • Bom Dia Diego, acho que não expliquei direito, dessa forma que você Mostrou ele simplesmente tira a Ultima e a Primeira Letra de um Texto. Vou te Explicar Melhor:  Eu Tenho um Webbrowser e Quero que minha Aplicação verifique o DocumentText da Página (Ou Seja HTML) e depois me Retorne o texto que está depois de:

    <link rel="shortcut icon" href="

    e antes de:

    type="image/x-icon" />

    ou seja o que está dentro desses 2 textos é um link, gostaria que a aplicação me retornasse esse link, seria possível?

    Abraços.

    sábado, 31 de agosto de 2013 12:52
  • Supondo que sua tag seja uma string, você pode fazer o seguinte:

    string sBusca = '<link rel="shortcut icon" href="http://seulink.com" type = "image/x-icon" />';
    
    int nIni = sBusca .IndexOf("href=");
    int nFim = sBusca .IndexOf("type=");
    
    //soma 6 no Ini para passar para o conteúdo do href
    nIni += 6;
    
    string sLink = sBusca.Substring(nIni,nFim-nIni);
    

    Faz o teste ai e depois diz se deu certo.

    Talvez precise acertar alguma coisa no posicionamento, não cheguei a testar.

    Abraço!

    sábado, 31 de agosto de 2013 13:04
  • Desculpe mas tentei e não deu certo acho que porque eu deveria mudar algo no Código, mas eu sou mto iniciante em VB.net e n sei como fazer, poderia explicar melhor? se Possível mto Obrigado.
    sábado, 31 de agosto de 2013 13:35
  • Israel, primeiramente desculpe, não vi que você estava utilizando vb

    Mas vou te explicar como funciona o raciocínio desse caso.

    Você tem uma string com a tag completa, e uma string nada mais é que uma cadeia de caracteres onde cada caracter possui um índice iniciando em zero certo?

    Vamos supor que eu tivesse o texto "Israel de Jesus" e eu quero apenas pegar o "de".
    Para isso, você precisa utilizar a função Substring onde você passa a posição inicial e a quantidade de caracteres que você quer pegar, Por exemplo:

    string texto = "Israel de Jesus";
    string resultado = texto.Substring(0,6); //aqui a string resultado vai ficar com o valor "Israel"
    

    Agora vem a questão, como saber qual a posição inicial e a quantidade de caracteres que eu tenho que pegar?
    Com a função IndexOf ele vai retornar um inteiro com a posição inicial da cadeia de caracteres que você está buscando, por exemplo:

    string texto = "Israel de Jesus";
    int índice = texto.IndexOf("de");//a variável índice irá retornar 7 que é a posição onde começou a cadeia "de"

    Com isso, basta procurar a cadeia anterior do desejado, no caso o "de", e a cadeia que vem depois dele.

    string texto = "Israel de Jesus";
    int ini = texto.IndexOf("Israel ");//irá retornar 0
    int fim = texto.IndexOf(" Jesus ");//irá retornar 9
    
    //Para pegarmos o que vem depois de "Israel " temos que somar a quantidade de caracteres que tem em "Israel "
    //pois a função IndexOf retorna o índice inicial da string
    ini += 7;
    
    //Como a função Substring utiliza o índice inicial e a quantidade de caracteres, temos que subtrair a posição
    //inicial da posição final a fim de pegarmos apenas o trecho desejado
    nFim -= nIni; //aqui o nFim fica igual a 2, que é a quantidade de caracteres que estamos procurando
    
    //agora basta jogar o valor desejado em uma variável qualquer
    string resultado = texto.Substring(nIni,nFim);

    Cara, eu não conheço muito VB, sempre utilizei o C#, mas acho que não vai ter muitas diferenças no código.
    Da uma olhada e tenta passar para VB o que precisar mudar.

    sábado, 31 de agosto de 2013 13:55
  • Não era o que eu queria mas ajudou, e muito.

    Abraços.

    sábado, 31 de agosto de 2013 20:28