Usuário com melhor resposta
Retirar Texto de um TextBox1 para Textbox2

Pergunta
-
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.- Sugerido como Resposta Leonardo Lourenço Silva sábado, 31 de agosto de 2013 15:55
- Marcado como Resposta Israel de Jesus sábado, 31 de agosto de 2013 20:14
Todas as Respostas
-
Israel blxxx,
Tenta assim :
TextBox2.Text = textBox1.Text.Substring(1,textBox1.TextLength-2);
até ++ ;)
Diego Almeida Barreto
System Analyst / Software Developer- Editado Diego de Almeida Barreto (Lewis) sábado, 31 de agosto de 2013 02:56 OK
-
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.
-
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!
-
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.
- Editado Israel de Jesus sábado, 31 de agosto de 2013 13:39
-
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.- Sugerido como Resposta Leonardo Lourenço Silva sábado, 31 de agosto de 2013 15:55
- Marcado como Resposta Israel de Jesus sábado, 31 de agosto de 2013 20:14
-