Club Delphi  
    Paypal   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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-07-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por force1758 Ver Mensaje
Ok pero como podría hacer para escojer en el ciclo las lineas una por una o si tienes algun ejemplo que pueda probar
Hola.

Como te mencionó Casimiro con cualquiera de los modos que te han sugerido antes. Ahora, si lo que sucede es que no deseas almacenar las líneas en TStrings, podrías usar un arreglo dinámico.

Ejemplo:
Código Delphi [-]
var
  f: TextFile;
  lineas: array of string;
begin
  AssignFile(f, 'C:\nombre.txt');
  Reset(f);
  while not eof(f) do
  begin
    SetLength(lineas, Length(lineas)+1);
    Readln(f, lineas[High(lineas)]);
  end;
  CloseFile(f);
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #2  
Antiguo 12-07-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
force1758,

Cita:
Empezado por force1758

...cargar de aun archivo de texto(txt), linea por linea...separando cada linea colocare un valor que contenga esa linea..

...necesito es cojer la información de cada linea y colocarle una variable...

...lo que quiero en si es crear una función que lea cada linea del archivo luego separar esas lineas en valores sin utilizar tmemo, ni form , ni edit ya que esta es una DLL la cual yo utilizarlo...

...y utilizar esos valores obtenido en otro procedimientos...

...pero como podría hacer para escojer en el ciclo las lineas una por una...
Te comento:

1- Cualquiera de las opciones sugeridas anteriormente funciona en un DLL.

2- En un DLL se pueden incluir componentes visuales.

Revisa este código:
Código Delphi [-]
library DLLFileProcess;

uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;

var
   FileVector : Array of String;
   FileInput : String;

{$R *.res}

// Carga un Archivo Línea a Línea en el Arreglo FileVector
function ReadTextFile(FileName : PChar) : Boolean; Stdcall;
var
   F : TextFile;
   i : Integer;
   Buffer : String;

begin

   if FileName = EmptyStr then
   begin
      MessageDlg('El Nombre del Archivo No Puede Estar en Blanco', mtInformation, [mbOK], 0);
      Result := False;
      Exit;
   end;

   if not FileExists(FileName) then
   begin
      MessageDlg('El Archivo no Existe en el Path Indicado', mtInformation, [mbOK], 0);
      Result := False;
      Exit;
   end;

   FileInput := FileName;

   try
      FileMode := fmOpenRead;
      AssignFile(F, FileName);
      Reset(F);
      i := 1;
      while not Eof(F) do
      begin
         Readln(F, Buffer);
         SetLength(FileVector,i);
         FileVector[i-1] := Buffer;
         Inc(i);
      end;
      CloseFile(F);
      Result := True;
   except
      MessageDlg('Error de I/O', mtInformation, [mbOK], 0);
      Result := False;
   end;

end;

// Genera un Archivo de Salida con la Información del Arreglo FileVector
function WriteTextFile() : Boolean; Stdcall;
var
   FileOutput : String;
   F : TextFile;
   i : Integer;
   Buffer : String;

begin

   FileOutput := ExtractFilePath(FileInput) + 'FileOutPut.txt';

   if Length(FileVector) = 0 then
   begin
      MessageDlg('El Arreglo No Contiene Información', mtInformation, [mbOK], 0);
      Result := False;
      Exit;
   end;   

   try
      FileMode := fmOpenWrite;
      AssignFile(F, FileOutput);
      Rewrite(F);
      for i:= low(FileVector) to High(FileVector)  do
      begin
         Buffer := 'LN-' + IntToStr(i+1) + ' ' + FileVector[i];
         Writeln(F, Buffer);
      end;
      CloseFile(F);
      Result := True;
   except
      MessageDlg('Error de I/O', mtInformation, [mbOK], 0);
      Result := False;
   end;

end;

Exports
   ReadTextFile,
   WriteTextFile;
   
begin
end.
El código anterior lee un archivo de texto línea x línea en un DLL, almacena su contenido en un arreglo y genera un nuevo archivo con el arreglo como ejemplo de procesamiento del mismo.

Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  function ReadTextFile(FileName : PChar) : Boolean; Stdcall; External 'DLLFileProcess.dll';
  function WriteTextFile() : Boolean; Stdcall; External 'DLLFileProcess.dll';
  
var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
   OpenDialog : TOpenDialog;

begin
   OpenDialog := TOpenDialog.Create(self);
   OpenDialog.InitialDir := 'C:\';
   OpenDialog.Options := [ofFileMustExist];
   OpenDialog.Filter := '*.txt';

   if OpenDialog.Execute then
   begin

      if ReadTextFile(PChar(OpenDialog.FileName)) then
         MessageDlg('Archivo Procesado Exitosamente', mtInformation, [mbOK], 0)
      else
         MessageDlg('Error en Procesamiento de Archivo', mtInformation, [mbOK], 0)

   end
   else
      MessageDlg('No Se Selecciono Ningún Archivo', mtInformation, [mbOK], 0);

   OpenDialog.Free;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin

   if WriteTextFile() then
      MessageDlg('Archivo Generado Exitosamente', mtInformation, [mbOK], 0)
   else
      MessageDlg('Error en Generación de Archivo', mtInformation, [mbOK], 0)

end;

end.
El código anterior permite llamar a las funciones del DLL del ejemplo precedente para el procesamiento de un archivo de texto.

Todo el código comentado esta disponible en el link: http://terawiki.clubdelphi.com/Delph...ileProcess.rar

Te sugiero revisar el ejemplo del link como todos los ejemplos sugeridos anteriormente, de seguro te serán de utilidad en tu proyecto.

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 12-07-2013 a las 02:21:02.
Responder Con Cita
  #3  
Antiguo 12-07-2013
force1758 force1758 is offline
Miembro
 
Registrado: jul 2010
Posts: 37
Poder: 0
force1758 Va por buen camino
Gracias a todos por ayudarme en especial nlsgarcia por su src que me sirvió mucho de ejemplo pero mi ignorancias es indescriptible pero haber si me ayudan a pasarla a funcion se lo agradecería muchísimo aquí esta el codigo que trabaja perfecto a lo que buscaba solo que lo quiero en funtion



Código Delphi [-]
var
FileVector :  Array [0..6] of String;

procedure TForm1.Button1Click(Sender: TObject);
var
   F : TextFile;
   i : Integer;
   Buffer : String;
begin
try
AssignFile(F,'C:\nombre.txt');
Reset(F);
      i := 0;
      while not Eof(F) do
      begin
         Readln(F, Buffer);
         SetLength(FileVector[6],i);
         FileVector[i+1] := Buffer;
         Inc(i);
      end;
      except
end;
 label1.Caption := (FileVector[1]);
 label2.Caption := (FileVector[2]);
 label3.Caption := (FileVector[3]);
 label4.Caption := (FileVector[4]);
      end;

trabaja como quiero solo aunque ahora lo quiero es hacerlo en una funtion no con evento onclick espero que tambien le sirva a alguien para lo que quiera y si tienen otra idea a demas de esta pueden colocarla

Saludos y Gracias
Responder Con Cita
  #4  
Antiguo 12-07-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
force1758,

Cita:
Empezado por force1758
...me ayudan a pasarla a función...
Revisa esta código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  TArrayStr = Array of String;

var
  Form1: TForm1;
  FileVector : TArrayStr;

implementation

{$R *.dfm}

// Lee un archivo de texto y lo devuelve como un arreglo.
function ReadTextFile(FileName : String) : TArrayStr;
var
   F : TextFile;
   i : Integer;
   Buffer : String;

begin

   try

      FileMode := fmOpenRead;
      AssignFile(F, FileName);
      Reset(F);

      i := 1;
      while not Eof(F) do
      begin
         Readln(F, Buffer);
         SetLength(Result,i);
         Result[i-1] := Buffer;
         Inc(i);
      end;

      CloseFile(F);

   except

      MessageDlg('Error de I/O', mtInformation, [mbOK], 0);

   end;

end;

// Modifica el caption de los TLabel en función de las entradas de un archivo de texto.
procedure TForm1.Button1Click(Sender: TObject);
var
   i : Integer;

begin

   FileVector := ReadTextFile('C:\TestFile.txt');
   for i := Low(FileVector) to High(FileVector) do
   begin
      // Solo se modifican los Caption de los Tlabel que esten definidos en el Form independientemente
      // de la cantidad de elementos de FileVector (Registros del Archivo de Texto)
      TLabel(FindComponent(Format('Label%d',[i+1]))).Caption := FileVector[i];
   end;

end;

end.
El código anterior lee por medio de una función un archivo de texto línea x línea y carga su contenido en un arreglo el cual es retornado como resultado de la función y utilizado posteriormente para modificar la propiedad Caption de los Componentes TLabel de un Form.

Te sugiero consultar este link, te sera útil como información general de Delphi:
Cita:
Delphi Basics : http://www.delphibasics.co.uk/
Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 12-07-2013 a las 23:02:23.
Responder Con Cita
  #5  
Antiguo 13-07-2013
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 947
Poder: 25
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Ponga algo de esfuerzo amigazo...Así nunca saldra de la ignorancia...

"...aquí esta el codigo que trabaja perfecto a lo que buscaba solo que lo quiero en funtion "...

Alguna otra casita...
Responder Con Cita
  #6  
Antiguo 13-07-2013
force1758 force1758 is offline
Miembro
 
Registrado: jul 2010
Posts: 37
Poder: 0
force1758 Va por buen camino
Gracias a todo por estos ejemplo me quedare con el que puse de ultimo, me sirve para lo que necesito hacer Gracias y hasta la próxima amigos:....
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 4 Lineas de dos Archivo .txt wcbs Varios 13 05-09-2012 15:05:36
Leer lineas en blanco Val C++ Builder 1 13-02-2008 23:17:47
Leer archivo de texto y extraer lineas de el mp3968 API de Windows 1 19-05-2007 20:27:53
Saber cantidad de lineas que se van a leer de un fichero texto... Lester Varios 4 04-04-2007 17:57:02
Ningun registro al utilizar LIKE *texto* Tecnic2 SQL 3 19-04-2005 19:53:32


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


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi