Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   De una tabla a un archivo texto (https://www.clubdelphi.com/foros/showthread.php?t=4335)

robero espinoza 11-10-2003 02:17:52

De una tabla a un archivo texto
 
Hola a todos espero esten bien, quiero ver si me pueden ayudar con un problema que tengo, quiero pasar de una tabla a un archivo texto los registros que contiene la tabla esto para ese archivo texto me funcione en una importacion que tengo que hacer, asea que tomar la informacion de la tabla y crear un archivo texto y que ahi contenga la informacion de la tabla pero en el archivo, espero me entiendan y me puedan ayudar.
muchas gracias y saludos....

roman 11-10-2003 02:47:26

Una forma rápida de implementarlo sería recorriendo la tabla y por cada registro agregar una línea al archivo de texto formada por los valores de los campos separados por comas:

Código:

var
  Lineas: TStringList;
  Linea: String;

begin
  Lineas := TStringList.Create;

  while not Table.Eof do
  begin
    Linea := '';
    for I := 0 to Table.Fields.Count - 1 do
      if Linea = ''
        then Linea := Table.Fields[i].AsString
        else Linea := Linea + ',' + Table.Fields[i].AsString;

    Lineas.Add(Linea);
    Table.Next;
  end;

  Lineas.SaveToFile('tuarchivo.txt');
  Lineas.Free;
end;

De esta manera obtienes un archivo CSV (Comma Separated Values) que pueden leer muchos programas como por ejemplo Excel.

// Saludos

marcoszorrilla 11-10-2003 18:43:15

Supongo que te hayas dado cuenta que a nuestro amigo y moderador Román se le olvidó declarar la variable I.

Código:

var
  Lineas: TStringList;
  Linea: String;
  I:Integer;
....

Un Saludo.

roman 12-10-2003 05:50:39

Nada, lo que sucede es que me gusta ahorrar índices y por ello uso uno solo declarado en una variable global.

:D :D

// Saludos

marcoszorrilla 12-10-2003 10:01:15

Yo también trabajo de esa manera para situaciones en las que necesito repetidamente ciertas variables, las declaro como globales, aunque hay gente que es contraria a esta idea.

Un Saludo,

Mick 12-10-2003 16:50:49

No tiene sentido usar una variable global porque no se ahorra nada.
El hecho de definir una variable local dentro de la funcion no hace que el programa sea mas lento ni que ocupe mas memoria, es más, el uso de variables globales si que puede hacer que el ejecutable sea mas grande.
Otros problemas de usar esas variables globales:
-Hacen menos entendibles los programas.
-Las funciones que las usen no son Thread Safe.
-El tamaño del ejecutable y la memoria usada es mayor.
-En determinados casos podria ser mas lenta la ejecucion del codigo.

En definitiva, no se gana absolutamente nada por usar variables globales, sino que al contrario se pierde.


Salud2 !!!

marcoszorrilla 12-10-2003 17:21:04

Cita:

El hecho de definir una variable local dentro de la funcion no hace que el programa sea mas lento
En mi caso, me refiero a que por ejemplo si utilizo una variable llamada estado, que permite saber cuando abro un formulario si estoy:
  • Añadiendo
  • Modificando
  • Consultando

Simplemente antes de llamar al formulario le paso un valor a esta variable que es de tipo global y esta en unit a parte, y dicha variable me sirve para todos los formularios de toda la aplicación, en mi caso busco la unicidad y la simplicidad, y este es el motivo de trabajar así.

Un Saludo.

roman 13-10-2003 00:05:09

Cita:

Posteado originalmente por mi mismo
Nada, lo que sucede es que me gusta ahorrar índices y por ello uso uno solo declarado en una variable global.

:D :D

Noten por favor las caritas sonrientes: yo no uso variables globales para índices. Sin embargo, para casos como el que indica marcoszorrilla sí que las uso. Por ejemplo, en un sistema en el que deseo mantener el id del usuario para poder verificar los derechos que tiene para cada módulo, una variable global me parece apropiada.

Hace poco vi (no recuerdo dónde, quizá aquí mismo) un truquito que no he puesto en práctica pero me pareció ingenioso: este tipo de variables globales que luego no recordamos bien cuáles son, podemos meterlas dentro de una clase:

Código:

unit VarGlobales;

interface

type
  TGlobales = class
    UsuarioId: Integer;
    Estado: Boolean;
    Etcetera: Char;
  end;

var
  Globales: TGlobales;

implementation

initialization
  Globales := TGlobales.Create;

finalization
  Globales.Free;
end.

Des esta manera, incluyendo la unidad VarGlobales en cada módulo qua las necesite, al escribir

Globales.

en el editor de Delphi, se desplegará la lista de donde seleccionaremos la que necesitemos. Así además, en el código quedará claroque estamos usando una variable global:

Globales.Estado

// Saludos


La franja horaria es GMT +2. Ahora son las 07:25:33.

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