none
Manipulacao conteudo html RRS feed

  • Pergunta

  • Ola pessoal , tenho um duvida que a principio parece basica, mais que ta me fazendo perder algumas horas, enfim nao consigo a logica disso.

    Meu problema e:    dado que tenho um controle textboxEditor (e o controle onde posso formatar o texto como esse que estou escrevendo agora)

    Preciso :   limite de caracteres desse controle e de 8 mil:   

    Se o kra digita mais que 8 mil, tenho que pegar a parte que ele digitou a mais e colorir:

    A principio eu fiz isso:

    StringBuilder sb = new StringBuilder();

    sb.Append("<html><body> <p> Esse e meu texto </p></body><html>"); // meu conteudo html

      string ret = sb.ToString().Substring(0, 6); //aqui eu corto a string ate 6, mais na aplicacao devera ser 8000

      string textColorer = sb.ToString().Replace(ret, "");// aqui eu pego a sobra, ou seja, todos os carateres depois de 6, pois preciso dela pra colorir.

    ai vem o problema :

    a variavel ret contem :   "<html><"

    e a variavel textColorer contem o resto : "body> <p> Esse e meu texto </p></body><html>"

    Vejam que o body esta faltando uma abertura:  na minha aplicacao real tenho styles"fonti si

    ou seja sempre quebrado.   

    Eu tentei o codigo abaixo pra poder percorrer a string e localizar tags html e exclui-las.

     textColorer = Regex.Replace(textColorer, @"<[^>]*>"String.Empty)";

    ai a variavel textColorer = body> Esse e meu texto

    ou seja ainda ficou o body, pois a regex nao sabe que tem carater quebrado e por isso nao tira.

    Enfim eu preciso juntar as 2 partes e formar um novo html sendo que a parte quebrada mais a parte restante no caso:

    ret + textColorer.

    Para a variavel textColorer nao ha problema, pois eu posso usar a regex e exluir tudo que e html e depois colocar um codigo assim:  <font color="red"> + textColorer + </font>

    Assim ela fica vermelha, mais nao consigo a logica pra juntar, pois como eu quebrei a string nao consigo juntar de novo. Ja tentei fazer um for each char , caracter por caracter e fiz algumas coisas mais nada sai.

    Algum dos colegas podem me dar uma luz com essa logica ?

    Eu agradeco a paciencia de todos .


    sexta-feira, 27 de abril de 2012 21:06

Todas as Respostas

  • um jeito simples que pensei no momento seria vc dar um replace na string onde Replace("<html>", String.Empty), Replace("<body>", String.Empty), Replace("<p>", String.Empty),  Replace("</html>", String.Empty), Replace("</body>", String.Empty), Replace("</p>", String.Empty), retirando as tags deixando somente o texto apartir dae vc conta os 8000 caracteres depois concatena com <html><body> <p> + texto + </p></body><html> e dentro do texto vc pode colocar a tag de font normal, acho q isso deve funcionar.

    Att, Maykon Elias

    segunda-feira, 30 de abril de 2012 15:19