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 .