Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-04-2007
Avatar de gulder
gulder gulder is offline
Miembro
 
Registrado: abr 2005
Ubicación: colombia-sucre
Posts: 384
Poder: 20
gulder Va por buen camino
Thumbs up Eliminar, actualizar e insertar linea en un memo

hola foro como andan yo por aqui con un pequeño proble con un memo lo que pasa es que tengo en memo un texto grande y necesito buscar en ese texto una palabra y despues donde este esa palabra tengo que eliminar esa linea o insertar o actualizar cada vez que se repita dicha palabra que me recomiendan por que no he podido hacer nada grasias de antemano gulder.
Responder Con Cita
  #2  
Antiguo 06-04-2007
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
Las líneas de un memo (memo.lines) son de tipo TStrings, así que puedes usar los métodos Delete, Insert, etc. de esa clase.

// Saludos
Responder Con Cita
  #3  
Antiguo 06-04-2007
Avatar de gulder
gulder gulder is offline
Miembro
 
Registrado: abr 2005
Ubicación: colombia-sucre
Posts: 384
Poder: 20
gulder Va por buen camino
Thumbs up grasias roman

grasias roman por contestar tan pronto yo entiendo lo que usted dice, lo que pasa es como hago para encontrar la palabra y eliminar toda esa linea sin importar de que esa linea tenga algo de mas escrito.

te explico lo que estoy haciendo tengo una aplicacion que me permite crear componentes en tiempo de ejecucion en tonces cuando creo u nuevo componente en un memo registro el nombre del componente y otras propiedades, el problema esta cuando el usuario elimina un componente debe eliminar del memo todo lo que tenga que ver con dicho componente entonces por eso tengo que buscar con el nombre del componente en el memo y eliminar la linea puesto que cuando creo un componente en el memo se inserta lo siguiente, ejemplo creo un boton entonces en el memo asigno

boton.nombre //aqui hay un comentario
boton.text //aqui hay un comentario
boton.letf //aqui hay un comentario
boton.caption //aqui hay un comentario

entonces cuando el usuario elimina el componente boton debe eliminar todas esas lineas del memo.

epero haberme explicado grasias de antemano gulder
Responder Con Cita
  #4  
Antiguo 06-04-2007
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
Para buscar la palabra puedes usar la función Pos aplicada a memo.text, o bien PosEx de la unidad StrUtils si quieres hacer búsquedas secuenciales. En ambos casos, la función te devolverá el índice (basado en 1) de donde empieza la palabra dentro del texto, o 0 si no se encuentra. Este índice lo puedes usar como parámetro al mensaje EM_LINEFROMINDEX para obtener el índice de la línea en el memo.

Ejemplo:

Código Delphi [-]
var
  i, j: integer;

begin
  i := Pos('palabra', Memo1.Text);
  Dec(i); // EM_LINEFROMCHAR usa el índice del caracter, basado en 0

  if i >= 0 then
  begin
    j := Memo1.Perform(EM_LINEFROMCHAR, i, 0);
    Memo1.Lines.Delete(j);
  end;
end;

// Saludos

Última edición por roman fecha: 06-04-2007 a las 21:39:49.
Responder Con Cita
  #5  
Antiguo 06-04-2007
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
Por otra parte, quizá quieras considerar otras opciones para lo que haces. Por ejemplo, en lugar de un archivo de texto plano, podrías usar un archivo INI. En lugar de guardar

Código:
boton.nombre //aqui hay un comentario
boton.text //aqui hay un comentario
boton.letf //aqui hay un comentario
boton.caption //aqui hay un comentario
cuando creas el boton, podrías guardar

Código:
[boton]
nombre = nombre del botón
text = texto del botón
letf = ...
caption = ...
es decir, todo lo relacionado a una componente, en una sección del archivo INI. Delphi cuenta con la clase TIniFile que trivializa el manejo de estos archivos.

// Saludos
Responder Con Cita
  #6  
Antiguo 06-04-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
Perdona roman por la intromisión:
EM_LINEFROMINDEX, no lo tengo documentado por ningún sitio.
Donde está definido ?
Lo mas parecido que he visto es EM_LINEINDEX
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #7  
Antiguo 06-04-2007
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
¡Ah! Tienes razón , es EM_LINEFROMCHAR no EM_LINEFROMINDEX.

// Saludos
Responder Con Cita
  #8  
Antiguo 06-04-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
Luego en el wparam, habría que pasarle el valor de la variable I, NO??
es decir
Código Delphi [-]
j := Memo1.Perform(EM_LINEFROMCHAR, I,0);
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO

Última edición por ArdiIIa fecha: 06-04-2007 a las 21:36:07.
Responder Con Cita
  #9  
Antiguo 06-04-2007
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
Je, je, muy cierto, ya lo he corregido en el original (ambos errores). Gracias

// Saludos
Responder Con Cita
  #10  
Antiguo 09-04-2007
Avatar de gulder
gulder gulder is offline
Miembro
 
Registrado: abr 2005
Ubicación: colombia-sucre
Posts: 384
Poder: 20
gulder Va por buen camino
Thumbs up grasias roman, ArdiIIa

grasias roman, ArdiIIa y disculpen la demora estoy mirando lo que dicen grasias
Responder Con Cita
  #11  
Antiguo 10-04-2007
Avatar de gulder
gulder gulder is offline
Miembro
 
Registrado: abr 2005
Ubicación: colombia-sucre
Posts: 384
Poder: 20
gulder Va por buen camino
Thumbs up grasias roman, ArdiIIa

grasias roman, ArdiIIa y disculpen la demora estube mirando lo que dicen y funciona de maravillas bueno estoy buscando de como remplazar una palabra del memo dependiendo de un string le agradeceria cualquier comentario grasias de antemano gulder
Responder Con Cita
  #12  
Antiguo 17-04-2007
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
para reemplazar palabras, en la unidad StrUtils existen algunas funciones para esta tarea, la que yo he utilizado es StringReplace de la unidad SysUtils. La utilizas de la siguiente forma

Código Delphi [-]

{ estructura de la función
function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string;

TReplaceFlags es un set que puede contener los siguientes dos valores:
rfReplaceAll = reemplaza todas las ocurrencias de OldPattern, si no la colocas en flags, entonces solo reemplazará la primera ocurrencia.

rfIgnoreCase = si la incluyes en "Flags" entonces no distinguirá entre mayúsculas y minúsculas.
}

StringReplace(Memo1.Text,'ReemplazarEsto','ReemplzarConEsto',[rfReplaceAll,rfIgnoreCase]

He nacido para ayudar a la humanidad. Ojala te sirva. bye.
Responder Con Cita
  #13  
Antiguo 22-04-2007
Avatar de gulder
gulder gulder is offline
Miembro
 
Registrado: abr 2005
Ubicación: colombia-sucre
Posts: 384
Poder: 20
gulder Va por buen camino
gracias D&W

gracias D&W me has dejado sorprendido puesto que habia hecho una funcion que hacia lo que me mencionastes he perdido tiempo valioso haciendo algo que delphi ya tenia jejeje
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
eliminar una linea de un txt st7 Varios 5 19-04-2011 13:14:33
eliminar una linea seleccionada de un ComboBox Goyo OOP 5 16-12-2006 13:57:37
Eliminar la ultima linea de un Memo MRSAM Varios 2 18-10-2005 21:02:37
Eliminar salto de linea de una cadena pablomg8 Varios 2 13-05-2005 15:35:44
Insertar Lineas en Memo por Abajo, y subir todas las demás, una linea. sase Varios 1 19-08-2003 23:03:25


La franja horaria es GMT +2. Ahora son las 07:52:27.


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