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 10-05-2006
nenufer nenufer is offline
Miembro
 
Registrado: dic 2005
Posts: 90
Poder: 19
nenufer Va por buen camino
Question copiar un TMemo en un .txt

Hola a tod@ otra vez!! Vereis quiero copiar el contenido de un TMemo en un .txt y que no me lo sobreescriba. Yo utilizaba el savetofile y vi en el foro que el reset y append era lo que yo buscaba.
Cada vez que yo le doy a un boton en el Memo se introduce una linea(contenido de un campo). Y quiero q todo eso quede registrado en el .txt
El problema viene cuando yo ejecuto y en la misma ejecucion apreto las veces que sea el boton y se escriben,tantaas lineas como veces e pulsado el boton, en el memo, pero en el .txt al no sobreescribirse me lo copia todo repetido. Si x ejem se introduce:
1º -linea1
2º -linea2

En txt se escribe
linea1
linea1
linea2

Pero si utilizo el savetofile y salgo de la ejecucion y vuelvo a entrar pues se sobreescribe el .txt. Hay alguna forma de poder hacerlo sin que al iniciar se sobreescriba y mientras este en ejecucion no? Si a alguien se el ocurre algo, de verdad muxisimas gracias.
Espero haberlo explicado bien.
Responder Con Cita
  #2  
Antiguo 10-05-2006
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Cita:
Empezado por nenufer
Cada vez que yo le doy a un boton en el Memo se introduce una linea(contenido de un campo). Y quiero q todo eso quede registrado en el .txt
El problema viene cuando yo ejecuto y en la misma ejecucion apreto las veces que sea el boton y se escriben,tantaas lineas como veces e pulsado el boton, en el memo, pero en el .txt al no sobreescribirse me lo copia todo repetido.
Me parece que no pasa por como guardes la información en el archivo de texto, sino pasa pro mantejer banderas como para que si no cambio el texto no guardes los cambios.

Código Delphi [-]
procedure AppendToFile(AStrings: TStrings; FileName: TFileName);
var
  Stream: TStream;
  wMode: Word;
begin
  if FileExists(FileName) then
    wMode := fmOpenWrite
  else
    wMode := fmCreate;

  Stream := TFileStream.Create(FileName, wMode);
  try
    Stream.Seek(0, soEnd);
    AStrings.SaveToStream(Stream);
  finally
    Stream.Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if Memo1.Modified then
  begin
    Memo1.Modified := False;
    AppendToFile(Memo1.Lines, 'C:\MiArchivo.txt');
  end;
end;

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 11-05-2006
nenufer nenufer is offline
Miembro
 
Registrado: dic 2005
Posts: 90
Poder: 19
nenufer Va por buen camino
Cita:
Empezado por delphi.com.ar
Me parece que no pasa por como guardes la información en el archivo de texto, sino pasa pro mantejer banderas como para que si no cambio el texto no guardes los cambios.
Buenos dias!! Gracias x contestar. Me hace lo mismo. El problema es q si que cambio el texto, porque si es la 1º vez que yo ejecuto el programa, bien porque no sobreescribe y me lo pone al final, pero si le doy otra vez,como modifico el texto (lo que he escrito anteriormente sigue en el memo) me vuelve a escribir la linea de antes,bueno que no es una linea solo, y lo siguiente que se ha escrito y asi cada vez que pulso el boton se escribe todo otra vez.
Habia pensado en borrar cada vez el memo, pero.... Si hay otra forma, mejor.
Gracias otra vez.
Responder Con Cita
  #4  
Antiguo 11-05-2006
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Cita:
Empezado por nenufer
El problema es q si que cambio el texto, porque si es la 1º vez que yo ejecuto el programa, bien porque no sobreescribe y me lo pone al final, pero si le doy otra vez,como modifico el texto (lo que he escrito anteriormente sigue en el memo) me vuelve a escribir la linea de antes,bueno que no es una linea solo, y lo siguiente que se ha escrito y asi cada vez que pulso el boton se escribe todo otra vez.
Perooo... no es lo que querías???.. .cuál sería la lógica??.. cuando se cambia el texto se guarda a continuación... o pretendes que el programa adivine cuando verdaderamente quieres que se guarde???
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #5  
Antiguo 11-05-2006
nenufer nenufer is offline
Miembro
 
Registrado: dic 2005
Posts: 90
Poder: 19
nenufer Va por buen camino
Hola!! Se guardaba xa todo entero y me lo repetia.
ej:
1º bloke1
2º bloke2.

pero me grababa .
blok1
bloke1
bloke2
Bueno lo tengo ya solucionado, gracias. Cuando apretaba al boton me hacia un seguimiento y me grababa todas las lineas en el archivo. Pero guardaba el memo entero. Entonces he optado por guardarlo linea a linea con el append.

Código Delphi [-]
procedure TForm1.GrabarEnArchivo(AsString : String; Nombre : TFileName);
var
  F : TextFile;
begin
  assignfile(F,Nombre);
  if FileExists(Nombre)
    then append(F)
  else
    rewrite(F);
  writeln(F,AsString);
  closefile(F);
end;

De todas formas lo que me has puesto me ha servido de mucho. Porque no es q controle esto como puedes ver y he aprendido cosillas interesantes. Muchas gracias.
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
buscar en un TMemo aranel Varios 2 04-08-2005 17:33:48
Tmemo gontxalo OOP 1 30-07-2005 12:01:43
imagen en un tmemo gontxalo OOP 0 13-06-2005 21:15:10
Uso de TMemo Luli Varios 3 21-04-2005 22:15:15
TRichEdit vs TMemo shaktale Varios 2 19-09-2003 20:58:57


La franja horaria es GMT +2. Ahora son las 08:20:43.


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