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 30-11-2006
zvf zvf is offline
Miembro
 
Registrado: abr 2006
Posts: 158
Poder: 19
zvf Va por buen camino
Abrir, leer y escribir un archivo de texto

Hola a todos!!!

Me gustaria saber que funciones utilizar y como declarar la variable para abrir un archivo de texto.

Lo que voy a hacer es abrir ese archivo y buscar dentro de el todas las lineas en donde esta contenida la palabra Email, y copiar desde Email hasta el enter, toda esa linea en otro archivo de texto.

Si tienen alguna sugerencia y me pueden ayudar, muchas gracias!!

Nunca he trabajado con archivos de texto desde delphi, asi que necesito conocer lo basico.

GRACIAS!!!!
Responder Con Cita
  #2  
Antiguo 30-11-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Hola, puedes usar varios modos.

Uno puede ser el clásico:
Crear una variable del tipo TextFile
Realizar un Assign para asignar a la variable anterior el fichero de texto
Luego puedes hacer un append del fichero y luego un readln para leer linea a linea del fichero.
Voy a escribirlo de memoria, así que es probable que no compile a la primera
Código Delphi [-]
var f : TextFile;
     lineaactual : string;
begin
  AssignFile('c:\test.txt', f);
  try
    Append(f);
    while not Eof do begin
      Readln(f, lineaactual);  //creo que es así, busca en la ayuda de Delphi para asegurarte
      //aqui haces lo que quieras con lineaactual
    end;
  finally
    Closefile(f);
  end;
end;

Otra manera más como para hacer, puede ser usando un objeto TMemo.
Lo arrastras a tu form y pones lo siguiente:

Código Delphi [-]
Memo1.Lines.LoadFromFile(c:\test.txt);

Ya tienes el fichero cargado en el memo.

Código Delphi [-]
var l : integer;
     linea : string;
begin
  for l := 0 to memo1.lines.count - 1 do begin
    linea := memo1.lines.strings[l];
    if Pos('Email', linea) = 0 then //sino aparece la palabra email en la linea la borramos del memo
       memo1.lines.strings[l] := '';   //debe haber algo mejor que esto,porque te dejará una linea entera en blanco quizá asi: memo1.lines.strings[l] := Trim(memo1.lines.strings[l]); pero no estoy seguro

  end;
  Memo1.Lines.SaveToFile(c:\Final.txt);
end;

Bueno como ves hay un par de alternativas, y seguro que puedes encontrar más.

Saludos
Responder Con Cita
  #3  
Antiguo 30-11-2006
zvf zvf is offline
Miembro
 
Registrado: abr 2006
Posts: 158
Poder: 19
zvf Va por buen camino
Muchisimas Gracias!!!

Voy A Probarlo :d
Responder Con Cita
  #4  
Antiguo 30-11-2006
zvf zvf is offline
Miembro
 
Registrado: abr 2006
Posts: 158
Poder: 19
zvf Va por buen camino
Hola!!

Oye, fijate que si funciona, pero quiero hacer un ciclo, hasta que el archivo termine para que me busque todas las lineas con Email, y me las mande al otro archivo, pero lo intento hacer y me marca un error.

Y otra cosa, en el codigo, que es lo que hace Count???

MUCHAS GRACIAS POR SU ATENCION Y AYUDA
DE VERDAD SE LOS AGRADEZCO MUCHISIMO
Responder Con Cita
  #5  
Antiguo 30-11-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
¿Que código te marca error el mio o el de Bicho? ¿Y seria también interesante que pusieras cual es el error?
Responder Con Cita
  #6  
Antiguo 01-12-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Cita:
Empezado por seoane
Caramba Bicho, eres un agonioso
Hombre, no vas a acaparar aquí todo el código que se escriba en éste foro, no?
Deja que los demás escribamos algo, tambien.

Además de que te quejas, ha usado tú código, tú eres el que ha puesto el Count en el ejemplo, no yo. Aunque el mio compiló a la primera

Cita:
Empezado por zvf
Oye, fijate que si funciona, pero quiero hacer un ciclo, hasta que el archivo termine para que me busque todas las lineas con Email, y me las mande al otro archivo, pero lo intento hacer y me marca un error.

Y otra cosa, en el codigo, que es lo que hace Count???

MUCHAS GRACIAS POR SU ATENCION Y AYUDA
DE VERDAD SE LOS AGRADEZCO MUCHISIMO
Bueno, te digo lo mismo que seoane, muestranos el mensaje de error que te lanza y el "cacho" de codigo que has escrito para ver donde falla.
Por ciero el count, es una propiedad que tienen los objetos que tienen propiedades te tipo lista, y contiene el numero de elementos que contiene esa lista. En este caso, contiene el numero de elemento que hay en TStringList

Saludos
Responder Con Cita
  #7  
Antiguo 30-11-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Caramba Bicho, eres un agonioso

Código Delphi [-]
var
  i,j: integer;
begin
  with TStringList.Create do
  try
    LoadFromFile('d:\prueba.txt');
    i:= 0;
    while i < Count do
    begin
      j:= Pos('EMAIL',Uppercase(Strings[i]));
      if j > 0  then
      begin
        Strings[i]:= Copy(Strings[i],j,MAXINT);
        inc(i);
      end else
        Delete(i);
    end;
    SaveToFile('d:\resultado.txt');
  finally
    Free;
  end;
end;
Responder Con Cita
  #8  
Antiguo 26-06-2010
jls1988 jls1988 is offline
Registrado
 
Registrado: jun 2010
Posts: 1
Poder: 0
jls1988 Va por buen camino
Gracias por la solucion

Última edición por jls1988 fecha: 26-06-2010 a las 17:41:21.
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
Sobre Escribir un archivo de texto mangel Varios 7 04-06-2012 22:29:04
Sin saber leer ni escribir D-MO Humor 3 13-09-2006 08:47:43
Como leer un archivo de texto por codigo Shidalis Varios 2 03-09-2005 05:54:34
leer y escribir en BD SqlServer con ADOStoredProc marctonyus Gráficos 1 17-07-2005 22:13:12
Leer un TQuery y armar un archivo de texto Oscar25 Conexión con bases de datos 1 01-09-2004 16:21:51


La franja horaria es GMT +2. Ahora son las 00:31:36.


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