Ver Mensaje Individual
  #1  
Antiguo 17-04-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Reputación: 13
danielmj Va por buen camino
Error al buscar cadena

Hola, trato de buscar una cadena dada en un TRichEdit, y funciona al 50% ¿como es eso? pues la cadena la busco a partir del texto seleccionado en un combobox, el problema viene cuando tiene que encontrar esa cadena a mitad del texto que se encuentre en el RichEdit, pongo unas capturas para explicarme mejor.

Captura 1


Captura 2


Captura 3


Como veis, en la captura 1, la cadena a buscar es "Usar mapas UV" cuando pulso el boton "Buscar entrada", selecciona texto mas o menos por donde está la cadena en cuestion, pero no selecciona a esta.

En la segunda captura, debe buscar "Editor de nodos" y si lo encuentra y selecciona correctamente, y por ultimo en la captura 3, debe buscar "Creando piedras manualmente", pero hace lo mismo que en la captura 1
¿Por que?

El código que tengo ahora para las busquedas es este:

Código Delphi [-]
rocedure TbNotas.Button3Click(Sender: TObject);
var
  posicion, desplazamiento, i: integer;

begin
  desplazamiento:= 0;
  for i:= 0 to editor.Lines.Count -1 do
    begin
      posicion:= pos(lista.Text,editor.Lines[i]);
      if posicion <> 0 then
        begin
          editor.SetFocus;
          editor.SelStart:= desplazamiento + Posicion -2;
          editor.SelLength:= Length(lista.Text);
          exit;
        end;
        inc(desplazamiento, 2 + length(editor.Lines[i]));
    end;
end;

En la linea del incremento de la variable desplazamiento, si cambio el valor numerico 2 por un valor menor o mayor a este, digamos que la busqueda empeora.

¿Alguna ayuda?

Gracias de antemano.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita