Que tal muchachos,
Acontinuacion le presento un codigo que utilizo para seleccionar varias filas de un DBGrid y apartir de estas filas seleccionadas me crea un archivo TXT, todo lo hace perfecto, el unico problemas es que me procesa primero la ultima linea seleccionada en el dbgrid y luego sube a la primera hasta que finaliza.
Es necesario que me procese la primera linea, luego la segunda y asi sucesivamente.
Se que le estoy dando poca informacion pero ustedes son bueno en esto...
Código Delphi
[-]
procedure TfLecturaArchivo.bFaileCheckTronicClick(Sender: TObject);
var F : textfile;
var sArchivo, line, nombres : string;
var i, j, l : integer;
begin
if (DBGSolicitud.SelectedRows.Count > 1) and (frac((DBGSolicitud.SelectedRows.Count / 3)) > 0) then
begin
Showmessage('La cantidad de depositante no es multiplo de 3...!');
exit;
end;
sd.Execute;
sArchivo := sd.FileName;
AssignFile( F, sArchivo);
Rewrite(F);
dm.qCliente.Open;
line := '';
j := 0;
l := 0;
with DBGSolicitud.DataSource.DataSet do
begin
For i := 0 to DBGSolicitud.SelectedRows.Count -1 do
begin
j := j+1;
l := l+1;
if (dm.qSolicitudesSegundoNombre.Text = '') and (dm.qSolicitudesTercerNombre.Text = '') and (dm.qSolicitudesCuartoNombre.Text = '')then
Nombres := dm.qSolicitudesPrimerNombre.Text
+chr(13)+ dm.qSolicitudesCuentaRegional.Text
+chr(13)+chr(13)+chr(13)+chr(13)+chr(13)+chr(13);
if (dm.qSolicitudesSegundoNombre.Text <> '') and (dm.qSolicitudesTercerNombre.Text = '') and (dm.qSolicitudesCuartoNombre.Text = '')then
Nombres := dm.qSolicitudesPrimerNombre.Text
+chr(13)+dm.qSolicitudesSegundoNombre.Text
+chr(13)+ dm.qSolicitudesCuentaRegional.Text
+chr(13)+chr(13)+chr(13)+chr(13)+chr(13);
if (dm.qSolicitudesSegundoNombre.Text <> '') and (dm.qSolicitudesTercerNombre.Text <> '') and (dm.qSolicitudesCuartoNombre.Text = '')then
Nombres := dm.qSolicitudesPrimerNombre.Text
+chr(13)+dm.qSolicitudesSegundoNombre.Text
+chr(13)+dm.qSolicitudesTercerNombre.Text
+chr(13)+dm.qSolicitudesCuentaRegional.Text
+chr(13)+chr(13)+chr(13)+chr(13);
if (dm.qSolicitudesSegundoNombre.Text <> '') and (dm.qSolicitudesTercerNombre.Text <> '') and (dm.qSolicitudesCuartoNombre.Text <> '')then
Nombres := dm.qSolicitudesPrimerNombre.Text
+chr(13)+ dm.qSolicitudesSegundoNombre.Text
+chr(13)+dm.qSolicitudesTercerNombre.Text
+chr(13)+ dm.qSolicitudesCuartoNombre.Text
+chr(13)+ dm.qSolicitudesCuentaRegional.Text
+chr(13)+chr(13)+chr(13);[/i]
line := line+ nombres
+chr(13)+IntToStr(dm.qSolicitudesChequeFinal.Value+1)
+chr(13)+dm.qClienteCodigoPais.Text
+dm.qClienteNoIntermediacion.Text
+'T'
+ dm.qSolicitudesCuenta.Text
+ 'O'
+'NNNN'
+copy(dm.qSolicitudesCuentaRegional.Text,3,2)
+chr(13);
GotoBookMark(Pointer(DBGSolicitud.selectedRows.items[i]));
if (frac(j / 3) = 0) then
line := line + '\^'
else
line := line + '|';
if (j = 1) then
line := '000001' + line;
if (frac(j / 3) = 0) and (j < (DBGSolicitud.SelectedRows.Count)) then
line := line + '000001';
end;
line := stringreplace(line, 'Ñ', '[', ([rfreplaceall]));
end;
WriteLn(f, line);
closeFile(F);
showmessage('Archivo Creado con exito...');
end;