Ir al contenido


Foto

Eliminar Titulos al exportar TDBadvGrid a un archivo ASCII


  • Por favor identifícate para responder
6 respuestas en este tema

#1 bcp9520

bcp9520

    Member

  • Miembros
  • PipPip
  • 18 mensajes

Escrito 10 septiembre 2013 - 01:50

Estimados buenas tardes.

Mi inconveniente es el siguiente, estoy ocupando un TDBadvGrid para mostrar los datos desde un procedimiento almacenado de SQL. Necesito exportar esta información a un archivo plano ASCII, hasta ahora funciona bien solo que el archivo aparece con los nombres de las columnas (encabezado) del SQL y no encuentro la forma de eliminarlo.

desde ya les agraedezco su apoyo.

saludos cordiales.

  • 0

#2 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 10 septiembre 2013 - 02:34

¿podrías decirnos como estás generando el archivo?
  • 0

#3 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.137 mensajes

Escrito 10 septiembre 2013 - 02:35

Solo identifica el índice de la línea en la que se encuentran los títulos, y pásala al siguiente procedimiento, igualmente la ruta en la que guardas el archivo.



delphi
  1. procedure BorrarLinea(Linea: integer; sFileName: string);
  2. var
  3.   Contenido: TStringList;
  4. begin
  5.   Contenido := TStringList.Create;
  6.   try
  7.     if FileExists(sFileName) then
  8.       Contenido.LoadFromFile(sFileName);
  9.     with Contenido do
  10.     begin
  11.       Delete(Linea);
  12.       SaveToFile(sFileName);
  13.     end; // with
  14.   finally
  15.     Contenido.Free;
  16.   end;
  17. end;



Saludos.
  • 0

#4 bcp9520

bcp9520

    Member

  • Miembros
  • PipPip
  • 18 mensajes

Escrito 10 septiembre 2013 - 03:17

Gracias por sus respuestas...
Es simple la forma como genero el archivo, les adjunto el codigo...Como les comentaba leo un procedimento almacenado desde SQL y se carga en forma automatica a un TDBadvGrid.



delphi
  1. procedure TForm1.GenerarArchivoElectronico1Click(Sender: TObject);
  2. begin
  3.   try
  4.     case CbxLibro.ItemIndex of
  5.       0 :
  6.       begin
  7.         Guardar.FileName := 'C:\201303'+'LD'+'.txt';
  8.         if Guardar.Execute then
  9.         begin
  10.           Grilla1.SaveToASCII(Guardar.FileName);
  11.         end;
  12.       end;
  13.       1 :
  14.       begin
  15.         Guardar.FileName := 'C:\201303'+'LM'+'.txt';
  16.         if Guardar.Execute then
  17.         begin
  18.           Grilla1.SaveToASCII(Guardar.FileName);
  19.         end;
  20.       end;
  21.       2 :
  22.       begin
  23.         Guardar.FileName := 'C:\201303'+'LV'+'.txt';
  24.         if Guardar.Execute then
  25.         begin
  26.           Grilla1.SaveToASCII(Guardar.FileName);
  27.         end;
  28.       end;....



gracias.

Wilson, gracias por tu información pero tengo que decirte que me cuesta un poco ver como inserto el codigo que me enviaste con el que ya tengo desarrollado.

  • 0

#5 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.137 mensajes

Escrito 10 septiembre 2013 - 03:32

Suponiendo que el título está en la primera línea todo se reduce a esto:



delphi
  1. procedure BorrarLinea(Linea: integer; sFileName: string);
  2. var
  3.   Contenido: TStringList;
  4. begin
  5.   Contenido := TStringList.Create;
  6.   try
  7.     if FileExists(sFileName) then
  8.       Contenido.LoadFromFile(sFileName);
  9.     with Contenido do
  10.     begin
  11.       Delete(Linea);
  12.       SaveToFile(sFileName);
  13.     end; // with
  14.   finally
  15.     Contenido.Free;
  16.   end;
  17. end;
  18.  
  19.  
  20. procedure TForm1.GenerarArchivoElectronico1Click(Sender: TObject);
  21. var
  22.   RutaArchivo: string;
  23. begin
  24.   case CbxLibro.ItemIndex of
  25.     0:
  26.       RutaArchivo := 'C:\201303' + 'LD' + '.txt';
  27.     1:
  28.       RutaArchivo := 'C:\201303' + 'LM' + '.txt';
  29.     2:
  30.       RutaArchivo := 'C:\201303' + 'LV' + '.txt';
  31.   end;
  32.   if Guardar.Execute then
  33.   begin
  34.     Guardar.FileName := RutaArchivo;
  35.     Grilla1.SaveToASCII(Guardar.FileName);
  36.     BorrarLinea(0, RutaArchivo);
  37.   end;
  38. end;



Ahora si Guardar es TSaveDialog, y ya sabes que los archivos van al C a una ruta determinada, pues ya no la necesitas,  y todo quedaría así:



delphi
  1. procedure BorrarLinea(Linea: integer; sFileName: string);
  2. var
  3.   Contenido: TStringList;
  4. begin
  5.   Contenido := TStringList.Create;
  6.   try
  7.     if FileExists(sFileName) then
  8.       Contenido.LoadFromFile(sFileName);
  9.     with Contenido do
  10.     begin
  11.       Delete(Linea);
  12.       SaveToFile(sFileName);
  13.     end; // with
  14.   finally
  15.     Contenido.Free;
  16.   end;
  17. end;
  18.  
  19. procedure TForm1.GenerarArchivoElectronico1Click(Sender: TObject);
  20. var
  21.   RutaArchivo: string;
  22. begin
  23.   case CbxLibro.ItemIndex of
  24.     0:
  25.       RutaArchivo := 'C:\201303' + 'LD' + '.txt';
  26.     1:
  27.       RutaArchivo := 'C:\201303' + 'LM' + '.txt';
  28.     2:
  29.       RutaArchivo := 'C:\201303' + 'LV' + '.txt';
  30.   end;
  31.   Grilla1.SaveToASCII(RutaArchivo);
  32.   BorrarLinea(0, RutaArchivo);
  33. end;


  • 0

#6 bcp9520

bcp9520

    Member

  • Miembros
  • PipPip
  • 18 mensajes

Escrito 11 septiembre 2013 - 07:32

Perfecto, muchas gracias Wilson ahora me quedo claro.

Lo pruebo y te comento.

saludos.

  • 0

#7 bcp9520

bcp9520

    Member

  • Miembros
  • PipPip
  • 18 mensajes

Escrito 11 septiembre 2013 - 07:50

!!!!!Exelente!!!!! funciono sin problemas el procedimiento, muchas gracias Wilson.

Saludos Cordiales.
  • 0




IP.Board spam blocked by CleanTalk.