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 02-02-2008
intercubo intercubo is offline
Miembro
 
Registrado: feb 2008
Posts: 11
Poder: 0
intercubo Va por buen camino
Post Leer archivo txt letra por letra

hola:


soy nuevo en delphi y quisiera saber como puedo leer un archivo de texto .txt letra por letra en un ciclo.

entre mas explicitos sean mejor, les agradezco mucho!
Responder Con Cita
  #2  
Antiguo 02-02-2008
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.084
Poder: 18
juanelo Va por buen camino
Cita:
Empezado por intercubo Ver Mensaje
hola:


soy nuevo en delphi y quisiera saber como puedo leer un archivo de texto .txt letra por letra en un ciclo.

entre mas explicitos sean mejor, les agradezco mucho!
Hola Intercubo, te invito a que leas la guia de estilo de club, y porque no muestras el código que ya tienes (porque supongo que ya lo intentaste hacer) y en base a eso te podremos ayudar.
Saludos
Responder Con Cita
  #3  
Antiguo 02-02-2008
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
Con un archivo de tipo. Concretamente Char. Sería algo así.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  N: Integer;
  C: Char;
  F: File Of Char;
begin
  AssignFile(F, Edit1.text);
  Reset(F);
  for N:=0 to FileSize(F) - 1 do
    begin
      Seek(F, N);
      Read(F, C);
      Memo1.Text:=Memo1.Text+C;
    end;
  CloseFile(F);
end;

Pero aviso, esto ya lo he hecho, y para archivos considerablemente granes es muy lento. Incluso si haces Memo1.Lines.BeginUpdate antes de empezar, y Memo1.Lines.EndUpdate después de acabar, sigue siendo lento para archivos de varios Megabytes.

Por cierto, intercubo, bienvenido al club. Haz caso de lo que dice juanelo la próxima vez.


Salu2.
Responder Con Cita
  #4  
Antiguo 02-02-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
He editado mi post porque no era instructivo.

El anterior código de ixMike funciona a la perfeccioón, sin embargo no es necesario hacer el Seek antes de cada lectura si es que el resultado esperado debe es secuencial y no aleatorio. Las funciones de lectura en la mayoria de los casos (si no es en todos), se encargan de realizar dicha opertación internamente.

Saludos

Última edición por cHackAll fecha: 02-02-2008 a las 01:24:07. Razón: No era un post claro
Responder Con Cita
  #5  
Antiguo 06-02-2008
intercubo intercubo is offline
Miembro
 
Registrado: feb 2008
Posts: 11
Poder: 0
intercubo Va por buen camino
Post

hola:

me marca un error I/O 103 en el siguiente codigo:

Código Delphi [-]
 
procedure TForm1.Button1Click(Sender: TObject);
var
  Col: Integer;
  Edo: Integer;
  N: Integer;
  C: Char;
  F: File Of Char;
  x: Integer;
begin
  Col:=0;
  Edo:=1;
  AssignFile(F, Edit1.text);
  Reset(F);
  for N:=0 to FileSize(F) - 1 do
    begin
     Read(F, C);
      for x:=0 to 25 do
        begin
          if C=Matriz[0][x] then
            begin
              Col:=x;
              Edo:=StrToInt(Matriz[Edo][Col]);
            end;
            Memo1.Text:=Memo1.Text+Matriz[Edo][Col];
        end;
  CloseFile(F);
    end;
end;

estuve leyendo que el problema es que no se use el Reset(F) pero yo si lo tengo, de un momento a otro comenzo a fallar no se que hice mal.

gracias!
Responder Con Cita
  #6  
Antiguo 06-02-2008
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
Me parece que ese error se produce cuando el archivo no existe. Es decir, el archivo escrito en Edit1.Text tiene que existir. Prueba con esto:

Código Delphi [-]
If not FileExists(Edit1.Text) then
  begin
  ShowMessage('El archivo "'+Edit1.text+'" no existe.');
  Exit;
  end;
AsignFile(F, Edit1.text);
{...}
Responder Con Cita
  #7  
Antiguo 11-02-2008
intercubo intercubo is offline
Miembro
 
Registrado: feb 2008
Posts: 11
Poder: 0
intercubo Va por buen camino
Post

el archivo si existe y tiene caracteres, he tratado cambiando el nombre de archivo pero sigue pasando lo mismo. cambio de nombre en edit1.text y en el archivo. y como dije antes si existe y la ruta es correcta.

agradeceria que me dijeran otras opciones porfavor.

mil 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
Cargar archivo de tipo de letra TTF dabas Varios 5 18-06-2010 20:40:09
Canal de Letra en Archivo Midi cacuna Varios 2 17-03-2005 20:01:54
Pulsar una letra en un DBgrid y que vaya al campo que empiece por esa letra Nbull SQL 8 16-12-2004 17:58:01
De número a letra samame Varios 1 10-03-2004 17:31:41
color y letra en un archivo .ini VolaRe Varios 4 05-02-2004 21:36:29


La franja horaria es GMT +2. Ahora son las 00:14:10.


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