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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-04-2005
alfredosg19 alfredosg19 is offline
Miembro
 
Registrado: ene 2005
Ubicación: Barcelona
Posts: 91
Poder: 20
alfredosg19 Va por buen camino
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"
Responder Con Cita
  #2  
Antiguo 10-04-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
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.
Responder Con Cita
  #3  
Antiguo 10-04-2005
alfredosg19 alfredosg19 is offline
Miembro
 
Registrado: ene 2005
Ubicación: Barcelona
Posts: 91
Poder: 20
alfredosg19 Va por buen camino
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"
Responder Con Cita
  #4  
Antiguo 10-04-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
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:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 11-04-2005
alfredosg19 alfredosg19 is offline
Miembro
 
Registrado: ene 2005
Ubicación: Barcelona
Posts: 91
Poder: 20
alfredosg19 Va por buen camino
¿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"
Responder Con Cita
  #6  
Antiguo 11-04-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
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.
Responder Con Cita
  #7  
Antiguo 11-04-2005
alfredosg19 alfredosg19 is offline
Miembro
 
Registrado: ene 2005
Ubicación: Barcelona
Posts: 91
Poder: 20
alfredosg19 Va por buen camino
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"
Responder Con Cita
  #8  
Antiguo 11-04-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
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:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #9  
Antiguo 11-04-2005
alfredosg19 alfredosg19 is offline
Miembro
 
Registrado: ene 2005
Ubicación: Barcelona
Posts: 91
Poder: 20
alfredosg19 Va por buen camino
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"
Responder Con Cita
  #10  
Antiguo 11-04-2005
oscorm oscorm is offline
Miembro
 
Registrado: ago 2004
Ubicación: Alcorcón
Posts: 59
Poder: 20
oscorm Va por buen camino
lo he probao y funciona, app_path es el directorio donde se ejecuta la aplicacion
Código Delphi [-]
 function app_path: String;
 begin
      Result := ExtractFilePath(Application.ExeName);
 end;
 
  
 procedure Tmiform.Button1Click(Sender: TObject);
 var S: string; f: Textfile;
 begin
      AssignFile(F,app_path + 'Dades.txt');
      Rewrite(F);
      coches.First;
      While not coches.EOF do Begin
            s:='#';
            s:=s+coches.FieldbyName('Interno').asString+'#';
            s:=s+coches.FieldbyName('Referencia').asString+'#';
            Writeln(F,s);
            coches.Next;
      end;
      Closefile(F);
 end;

Última edición por marcoszorrilla fecha: 11-04-2005 a las 17:06:19.
Responder Con Cita
  #11  
Antiguo 11-04-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
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.
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


La franja horaria es GMT +2. Ahora son las 07:27:52.


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
Copyright 1996-2007 Club Delphi