Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-04-2007
Avatar de Lester
Lester Lester is offline
Miembro
 
Registrado: may 2003
Ubicación: Cienfuegos, Cuba.
Posts: 106
Poder: 21
Lester Va por buen camino
Exclamation Leer fichero texto palabra por palabra...

Hola, un saludo para todos. Mi problema es el siguiente:

Deseo realizar una aplicación que lea un fichero texto que las columnas están separadas por uno o más espacios en blanco para poder llenar un StringGrid, pero cómo puedo leer un fichero texto palabra por palabra e irlas ubicando en cada una de las celdas de un StringGrid???

Desde ya muchas gracias...
__________________
Lester Espinosa Martínez

[ Guía de estilo | La otra guía de estilo | Buscador | Trucos | My personal blog ]
Responder Con Cita
  #2  
Antiguo 03-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
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
Const
Separador = ' '; //Este es el caracter que utilizamos de separador;
Var
Fichero : TStrings;
Sig : Integer;
Pos : Integer;
Copy_Ini : Integer;
Copy_Fin : Integer;
Longitud : Integer;
cTemp : String;
I, J, K : Integer;
////////////////////
Function pos_str(Cad : String; Car: Char; Ini : Integer) : Integer;
var
Cnt :Integer;
Longitud :Integer;
begin
Result := 0;
Longitud := Length(cad);
Cnt := Ini;
repeat
    Inc(Cnt);
    //Controlamos el separador y saltos de línea
    if (Cad[Cnt]=Car) or (Cad[Cnt]=#10) or (Cad[Cnt]=#13) then
    begin
        Result := Cnt -Ini;
        break;
    end;
until (Cnt > longitud) ;
end;
///////////////////////
begin
Fichero := TStringList.Create;
Fichero.LoadFromFile('Unit1.pas');  // Fichero a procesar
Longitud:=Length(Fichero.Text);
cTemp := Fichero.Text;
Fichero.Clear;
Pos:=0;

repeat
    Sig := Pos_Str(cTemp,Separador,Pos);
    if (sig=0) then break;
    Inc(pos,sig);
    copy_ini:=(pos-sig)+1;
    copy_fin:=sig-1;
    Fichero.Add(Trim(copy(cTemp,copy_ini,copy_fin)) );
until (sig=0);
//Acomodamos el StringGrid a la longitud del fichero, dependiendo del número de columnas.
StringGrid1.RowCount := (Fichero.Count -1) div StringGrid1.ColCount -1;
//Efectuamos el relleno del StringGrid

  K := 0;
  with StringGrid1 do
    for I := 0 to ColCount - 1 do
      for J:= 0 to RowCount - 1 do
        begin
          Cells[I,J] := Fichero[K]; 
          inc(K);
        end;

Fichero.Free;
end;

Creo que el procedimiento se explica por sí solo.
Espero que te sea de utilidad.

Saludos.
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #3  
Antiguo 03-04-2007
Avatar de Lester
Lester Lester is offline
Miembro
 
Registrado: may 2003
Ubicación: Cienfuegos, Cuba.
Posts: 106
Poder: 21
Lester Va por buen camino
Thumbs up Respuesta para ArdiIIa

Muchas gracias ArdiIIa, el código está muy interesante..., lo voy a revisar y luego te digo cómo me fue..., nuevamente un millón de gracias...
__________________
Lester Espinosa Martínez

[ Guía de estilo | La otra guía de estilo | Buscador | Trucos | My personal blog ]
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Leer palabra por palabra en Word solecito Servers 0 12-03-2007 20:58:13
leer fichero de texto davidgaldo Varios 1 08-11-2005 15:05:12
Buscar palabra en una String diegofhernando Varios 10 23-05-2003 02:33:13
Significados de la palabra WEB obiwuan Humor 0 06-05-2003 22:06:42


La franja horaria es GMT +2. Ahora son las 06:09:04.


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