FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Exportar en un archivo txt
Hola, estoy intentando exportar de un TADO a un archivo de texto, el problema es que a la hora de guardarme los datos en el archivo sólo me guarda el primer registro, no entiendo el motivo por el cual se salta el While y se sale del bucle,. Si alguien pudiera ayudarme le estaría muy agradecido. GRAAACIASSS.
Código:
procedure TfrmClients.sbExportaClick(Sender: TObject); var NomArxiu: String; S:string; f:Textfile; begin If sdGuarda.Execute then Begin NomArxiu:=sdGuarda.Filename; AssignFile(F,'Dades.txt'); Rewrite(F); ADOTClient.First; While not ADOTClient.EOF do Begin s:='#'; s:=s+ADOTClient.FieldbyName('CodiT02').asString+'#'; s:=s+ADOTClient.FieldbyName('NomT02').asString+'#'; s:=s+AdoTClient.FieldbyName('DireccioT02').asString+'#'; s:=s+AdoTClient.FieldbyName('PoblacioT02').asString+'#'; s:=s+AdoTClient.FieldbyName('CodiPostalT02').asString+'#'; s:=s+AdoTClient.FieldbyName('ProvinciaT02').asString+'#'; s:=s+AdoTClient.FieldbyName('Telf1T02').asString+'#'; s:=s+AdoTClient.FieldbyName('Telf2T02').asString+'#'; s:=s+AdoTClient.FieldbyName('FaxT02').asString+'#'; Writeln(F,s); ADOTClient.Next; end; end; Closefile(F); end;
__________________
"La perseverancia es el camino del éxito" |
#2
|
||||
|
||||
Es más que probable que ese archivo se vaya a parar a c:\windows, ahí si debe estar todos los registros. El archivo que solo tiene un registro, será de pruebas anteriores.
Pasa siempre la ruta completa 'c:\dades.txt' Por cierto, el CloseFile, no está dentro del bloque del IF. Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#3
|
|||
|
|||
Sigue el error..., detallo más.
El error continua, he arreglado lo del Closefile (gracias Lepe) y lo de la ubicación del archivo, pero aún así sigue fallando. Lo que pasa es que entra en el bucle anterior pero sólo una vez, después se sale (sin respetar la condición).
__________________
"La perseverancia es el camino del éxito" |
#4
|
||||
|
||||
Por más vueltas que le doy al bucle no le veo fallo alguno. ¿Por qué no pones una rejilla conectada alADOTClient ?
No vaya a ser que por algún motivo solamente te esté devolviendo un registro. Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#5
|
|||
|
|||
¿Qué es una rejilla?.
Hola, y antes que nada agradezco tu ayuda, lo que pasa es que no sé a que te refieres con lo de la rejilla. ¿Me lo podria explicar alguien?. Muchas gracias.
__________________
"La perseverancia es el camino del éxito" |
#6
|
||||
|
||||
Rejilla es la traducción oficial para DBGRID
Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#7
|
|||
|
|||
Ya puse la rejilla y hace lo mismo.
No entiendo por qué se sale del bucle cuando la condición no se dá. En la rejilla pasa lo mismo, es decir que cuando ejecuto el programa me guarda el primer registro en el archivo y se me situa el cursor en la segunda fila, he provado con varios cambios en el bucle (cambiarlo por un for desde el primer registro hasta el último o un if) pero es el mismo problema. Es curioso porque en el libro de la cara oculta de Delphi 4, viene el bucle anterior como ejemplo para exportar archivo.
__________________
"La perseverancia es el camino del éxito" |
#8
|
||||
|
||||
Pruba a quitarle campos a ver si el tamaño de la cadena ocasiona algún problema.
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#9
|
|||
|
|||
Persiste el problema.
He reducido a uno el número de campos que exporto, pero aún así sólo me copia un registro al archivo (esto me terminará por volver loco)..Gracias foreros por la ayuda.
__________________
"La perseverancia es el camino del éxito" |
#10
|
|||
|
|||
lo he probao y funciona, app_path es el directorio donde se ejecuta la aplicacion
Última edición por marcoszorrilla fecha: 11-04-2005 a las 17:06:19. |
#11
|
||||
|
||||
Hola alfredo:
Bien, de todo lo anterior, deducimos que el bucle no es el problema, así que habrá que mirar por otro sitio. - Haces algo en los eventos beforeScroll, AfterScroll de la tabla ? - Tienes algun código escrito para el Datasource, OnStateChange,OnDataChange? - Algún código en los eventos de los campos, quizás en el OnGetText ? - Algún dato a exportar es nulo ? - Ocultas alguna excepción en tu aplicación ? Algo del estilo try ... except on e:except do ; - Cierras la tabla en algún momento ? Un saludo, y suerte!!
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
|
|