Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-06-2014
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Poder: 22
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Todo indica que está asumiendo que todo es una misma columna.

Te propongo una prueba mas:
Genera el fichero con la función TIBOutputDelimitedFile

De esta manera te asegurarías de que quien escribe el fichero y quien lo lee es el "mismo componente".
Una vez lo hayas exportado, compara los fichero para ver dónde está la diferencia.
Quizás espera un espacio entre campos o necesita que los strings estén entre comillas o alguna cosa de esas.

Ya nos informarás de si esto ha servido...
Responder Con Cita
  #2  
Antiguo 16-06-2014
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 585
Poder: 20
jafera Va por buen camino
Buenas de nuevo.

Retomo el hilo para comentaros los avances, o no.

He creado el fichero mediante el uso de un IBSQL tal y como me recomendasteis, el resultado del proceso es un fichero txt exactamente igual que el creado mediante el proceso antiguo.

Al importar este fichero en el ejecutable hecho con XE5, sigue mostrando el error -303, si me llevo el txt tanto el creado mediante IBSQL como el anterior al ejecutable generado con Delphi 6, se importa perfectamente.

Yo creo que voy a dejar este proyecto congelado en Delphi 6 ya que no se que más mirar, ni si puedo poner un visor para ver donde se para exactamente ya que con el F8 se queda en la linea del BatchInput(F).

Código Delphi [-]
F_ModulDades.Act_Girona_Temp.Close;
F_ModulDades.Act_Girona_Temp.Open;
F_ModulDades.Act_Girona_Temp.Append;
F_Importa.IBSQLImporta.SQL.Text := 'Insert into RE0006AGTEMP values(:ID, :ID_REBUT, :ID_ARBITRE, :NOM, ATA, :TITOL, :CODI_CLUB, :CANON, :ID_USUARI)';
F := TIBInputDelimitedFile.Create;
    try
          F.ColDelimiter := ';';
          if OpenDialog1.Execute then
          begin
                   F.Filename := OpenDialog1.FileName;
          end;
          F_Importa.IBSQLImporta.BatchInput(F);
finally
          F.Free;
end;

Lo único que se me ocurre es que si alguien quiere hacer un teamviewer conmigo pues estaré encantado de mostrar el proceso que me lleva de craneo y verlo "fallar" los dos a la vez.

Gracias a todos

Saludos

Josep

Nota esta es una de las lineas creadas con el proceso normal:

43;12;1;FERNANDEZ ALBERTI, Josep Antoni;22/08/2010;ESCALADA CASTELL BLANES;626;1.5;2

Solo me queda dudar de que interprete el espacio entre apellidos como final de linea........

Última edición por jafera fecha: 16-06-2014 a las 15:12:10.
Responder Con Cita
  #3  
Antiguo 16-06-2014
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Poder: 22
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Por lo que entiendo, en este último mensaje, utilizas Delphi 6 para generar la exportación y Delphi XE5 para la importación.
Este podría ser el problema. A partir de Delphi 2009 (creo) se trabaja con Unicode. Deberías ver la posibilidad de crear la exportación con Delphi XE5 y ver si el fichero es igual al exportado con Delphi 6.
En un fichero de texto, los primeros bytes te dicen si en qué formato está. Mira BOM
Responder Con Cita
  #4  
Antiguo 16-06-2014
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 585
Poder: 20
jafera Va por buen camino
Gracias por la respuestas.

Igual no me he explicado bien, el fichero lo genero en XE5 y no lo importo en XE5 pero si en D6, que es lo que me tiene la mosca en la oreja.

Saludos

Josep
Responder Con Cita
  #5  
Antiguo 16-06-2014
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Poder: 22
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Entonces sería al contrario... mira como se codifica el fichero que sale de Delphi XE5. Si lo miras byte a byte, podrás ver si tiene algo delante (BOM).
Por ejemplo, podría ser que el fichero empiece con EF BB BF si se tratara de UTF8 y que Delphi 6 los interpretaría como 3 caracteres que se deben procesar. Así, el primer campo de la importación sería "43" que daría un error de conversión si se espera un número.

Podrías preprocesar el fichero con algo así y generar un fichero temporal que luego importarás.
Código Delphi [-]
var
  Registro : string;
  Datos : TextFile;
[...]
           AssignFile(Datos,  OpenDialog1.FileName);
           Reset(Datos);
           CaracteresIgnorar := 0;
           try
              while not EOF(Datos) do
              begin
                 ReadLn(Datos, Registro);
                 {En la primera linea debo ver si es un archivo UTF y ver cuantos caracteres debo ignorar}
                 if (PrimeraLinea) then
                 begin
                    if (Ord(Registro[1]) = $EF) and (Ord(Registro[2]) = $BB) and (Ord(Registro[3]) = $BF) then {Posiblemente UTF8}
                       CaracteresIgnorar := 3;

                    Registro := copy(Registro,CaracteresIgnorar, Length(Registro));
                 end;
                 // Agrego Registro a un StringList
                 sl.Add(Registro);
              end; // while
              // Grabo el StringList a un fichero Temporal
              sl.SaveToFile(FicheroTemporal);

              // importo el fichero temporal
[...]

Última edición por duilioisola fecha: 16-06-2014 a las 16:00:08.
Responder Con Cita
  #6  
Antiguo 16-06-2014
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 585
Poder: 20
jafera Va por buen camino
Ok, pero como se mira un fichero txt para ver esta codificación?

He mirado el enlace que me has puesto y estoy más perdido que un pulpo en un garaje.

Saludos

Josep
Responder Con Cita
  #7  
Antiguo 16-06-2014
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 585
Poder: 20
jafera Va por buen camino
Y una duda que me queda para la prueba, "sl" como se declara?

Es una variable?

Josep
Responder Con Cita
Respuesta



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
DELPHI6 Importar fichero codificado UTF-8 a Dbase Jose Manuel Varios 0 16-05-2011 18:46:14
Importar fichero XML cincosoft OOP 1 08-02-2009 10:29:58
Importar fichero .dat desde cobol julian_ch Varios 0 08-08-2005 17:43:17
Error al importar dll mguixot Varios 2 08-07-2005 15:47:26
importar fichero consumo telefonica tonid Varios 3 11-09-2003 09:49:28


La franja horaria es GMT +2. Ahora son las 01:23:10.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi