Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-11-2005
perico perico is offline
Miembro
 
Registrado: nov 2003
Posts: 69
Poder: 21
perico Va por buen camino
Question buscar una cadena en un memo y cambiarla

buenas amigos

amigos necesito hacer esto tengo un tmemo donde hay un texto escrito necesito buscar una cadeja y reemplazarla por otra

por ejemplo en el Tmemo tengo un texto donde esta la palabra ALCALDE y yo necesito cambiarla por Pedro Perez ¿como lo hago? por mas que le doy no logro encontrar la manera.

les agradesco de antemano cualquier ayuda
Responder Con Cita
  #2  
Antiguo 07-11-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Para buscarlo prueba esto:
Código Delphi [-]
  procedure TForm1.Button1Click(Sender: TObject);
  var
  nCont:Integer;
  begin
    For nCont:=0 to memo1.Lines.Count - 1 do
    begin
     if pos(Uppercase(Edit1.Text),UpperCase(memo1.lines[nCont])) > 0 then
     ShowMessage('La palabra está en la línea:'+IntTostr(nCont)+Memo1.Lines[nCont]);
    end;
  end;

Una vez encontrado creo que no tengas problemas en sustituirlo.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 07-11-2005
elcigarra elcigarra is offline
Miembro
 
Registrado: may 2005
Posts: 269
Poder: 19
elcigarra Va por buen camino
...Y para sustituirlo puedes con la función "AnsiReplaceStr" (creo que se llamaba así o algo parecido, pero no tengo el Delphi aquí para verificarlo)
Responder Con Cita
  #4  
Antiguo 07-11-2005
perico perico is offline
Miembro
 
Registrado: nov 2003
Posts: 69
Poder: 21
perico Va por buen camino
Question Gracias

muchas gracias ya consigo la cadena pero al momento de remplazarla con AnsiReplaceStr no me daerror pero no la reemplaza no se que error estare cometiendo, primero estoy haciendo la prueba de esta manera para verificar el cambio, pero no la reemplaza;

AnsiReplaceStr(Memo1.Text,'ALCALDE1','ABCDERTE');

¿que error estare cometiendo?
Responder Con Cita
  #5  
Antiguo 07-11-2005
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Poder: 20
Héctor Randolph Va por buen camino
Si ya conoces en que línea está la palabra prueba con esto.

Código Delphi [-]
AnsiReplaceStr(Memo1.Lines[nCont],Uppercase(Edit1.Text),'ABCDERTE');

Es decir, envía como parámetro sólo una línea y no todo el texto.

Tal vez ese sea el problema.

Un saludo.
Responder Con Cita
  #6  
Antiguo 07-11-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Pues bueno, si nada más se pone


Código Delphi [-]
AnsiReplaceStr(Memo1.Text, 'ALCALDE1', 'ABCDERTE');

seguro que no se reemplaza nada. Habría que poner


Código Delphi [-]
Memo1.Text := AnsiReplaceStr(Memo1.Text, 'ALCALDE1', 'ABCDERTE');

// Saludos
Responder Con Cita
  #7  
Antiguo 07-11-2005
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Poder: 20
Héctor Randolph Va por buen camino
Cita:
Empezado por roman
AnsiReplaceStr(Memo1.Text, 'ALCALDE1', 'ABCDERTE');

seguro que no se reemplaza nada. Habría que poner

Memo1.Text := AnsiReplaceStr(Memo1.Text, 'ALCALDE1', 'ABCDERTE');
ups!, es verdad.

Además de esta forma no habrá que leer línea por línea, pues se reemplazan todas las ocurrencias de una sola vez.

Saludos
Responder Con Cita
  #8  
Antiguo 07-11-2005
perico perico is offline
Miembro
 
Registrado: nov 2003
Posts: 69
Poder: 21
perico Va por buen camino
muchas gracias

muchas gracias era ahi donde tenia el error, es que se me escapo ese detalle

muchas gracias por su ayuda y tomarce el tiempo de responder
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 18:28:30.


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
Copyright 1996-2007 Club Delphi