Ver la Versión Completa : buscar con pos
migueilichenco
05-09-2003, 23:13:25
hola,
hola a todos bueno ahora estoy de nuevo con una nueva pregunta ;) espero su amable paciencia y su ayuda , mi problema es el siguiente
1) tengo un memo con una lista de palabras
2)tengo un edit con una cadena X
ahora yo deseo hacer que el programa busque en la cadena del edit las palabras de la lista del memo
espero su ayuda y gracias de antemano
Julià T.
06-09-2003, 02:28:19
Quiza la función que buscas es PosEX que a diferencia de pos, permite buscar a partir de una posición.
migueilichenco
06-09-2003, 03:27:54
no entiendo ¿?
Julià T.
06-09-2003, 03:55:44
pos si el problema no esta en el pos como parece indicar el enunciado, pos debe estar en recorrer el memo. ¿digo yo?
algo parecido a lo siguiente debe ser lo que buscas
for i:=0 to memo1.count-1 do
Posicion=Pos(memo1.lines[i],Edit1.text);
migueilichenco
06-09-2003, 04:46:55
me sale indeclarado 'count'
pero mejor repito la pregunta
1) tengo un memo con una lista de palabras
2)tengo un edit con una cadena X
ahora yo deseo hacer que el programa busque en la cadena del edit las palabras de la lista del memo
y cuando la encuentre suseda alguna accion
gracias de antemano
Julià T.
06-09-2003, 06:16:08
le falta el lines
for i:=0 to memo1.lines.count-1 do
Posicion=Pos(memo1.lines[i],Edit1.text);
migueilichenco
06-09-2003, 08:17:18
holas,
bueno hiso lo establesido arriba y cuando corro el programa solo detecta a la ultima palabra de la lista, y a las demas palabras de la lista no las chekea
gracias de antemano
marcoszorrilla
06-09-2003, 15:42:57
El asunto creo que consta de dos partes:
1.- Extraer las palabras del Edit y guardarlas en otro lugar, en el ejemplo un Listbox.
2.- Comprobar si las palabras ubicadas en el listbox se encuentran en el campo memo.
Aquí tienes un ejemplo que consta de dos botones, con uno pasamos las palabras al listbox, he considerado que el separador es el espacio en blanco.
Y con el otro buscamos dichas ocurrencias.
procedure TForm1.Button1Click(Sender: TObject);
var
i:Integer;
j:Integer;
Posicion:Integer;
begin
for j:= 0 to listbox1.Items.Count - 1 do
begin
for i:=0 to memo1.lines.count-1 do
begin
if Pos(Listbox1.Items[j],memo1.lines[i]) <> 0 then
begin
ShowMessage('Encontrada '+Listbox1.Items[j]);
end;
end;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
nBlanco:Integer;
nCont:integer;
cPalabra:String;
begin
for nCont:=1 to Length(Edit1.text) do
begin
cPalabra:=cPalabra + edit1.text[nCont];
if edit1.text[nCont] = ' ' then
begin
ListBox1.Items.Add(cPalabra);
cPalabra:=''
end;
end;
ListBox1.Items.Add(cPalabra);
end;
Un Saludo.
migueilichenco
06-09-2003, 18:33:33
hola,
bueno tras relisados los pasos arriba descritos surgio un problema el cual es que cuando ejecuto el programa aunque se encuentren las paalbras siempre me sale que la decision es igual a ¿? y segun lo que yo queria hacer es que cuando escuentre en el memo1 diga si en el memo2 diga no y si no ahy la palabra diga ¿? bueno ese es mi problema les agradeceria una manita
________________________________________________
code
procedure TForm1.Button1Click(Sender: TObject);
var
i:Integer;
j:Integer;
Posicion:Integer;
nBlanco:Integer;
nCont:integer;
cPalabra:String;
begin
richedit1.Lines.Add(usuario+': '+edit1.text);
begin
for nCont:=1 to Length(Edit1.text) do
begin
cPalabra:=cPalabra + edit1.text[nCont];
if edit1.text[nCont] = ' ' then
begin
ListBox1.Items.Add(cPalabra);
cPalabra:=''
end;
end;
ListBox1.Items.Add(cPalabra);
end;
begin
for j:= 0 to listbox1.Items.Count - 1 do
begin
for i:=0 to memo1.lines.count-1 do
begin
if Pos(Listbox1.Items[j],memo1.lines[i]) <> 0 then
decision:='no '
else
if Pos(Listbox1.Items[j],memo2.lines[i]) <> 0 then
decision:='si '
else
if not(Pos(Listbox1.Items[j],memo2.lines[i])<> 0) then
decision:='¿? '
end;
end;
end;
Edit1.Text := StringReplace(Edit1.Text, 'eres', decision+'soy', [rfReplaceAll,rfIgnoreCase]);
Edit1.Text := StringReplace(Edit1.Text, 'tu', 'yo', [rfReplaceAll,rfIgnoreCase]);
richedit1.Lines.Add('BIA1X'+': '+edit1.text);
edit1.Clear;
listbox1.Clear;
end;
___________________________________________________
gracias de antemano
migueilichenco
08-09-2003, 16:41:53
hola agrdeceria si alguien me da una mano con la pregunta que formulo gracias de antemano
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.