Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   buscar con pos (https://www.clubdelphi.com/foros/showthread.php?t=3427)

migueilichenco 05-09-2003 23:13:25

buscar con pos
 
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
Código:

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.

Código:


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


La franja horaria es GMT +2. Ahora son las 07:03:56.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi