Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-08-2012
ASAPLTDA ASAPLTDA is offline
Miembro
 
Registrado: jun 2003
Ubicación: COLOMBIA-CALI
Posts: 639
Poder: 24
ASAPLTDA Va por buen camino
Smile Problemas Lectura Archivo CSV

Apreciados Foristas,
He recibido un archivo de texto. El archivo es la exportacion de un sistema de SQLSERVER 2008 y los campos vienen delimitados con punto y coma (
Cuando los veo los con el editor de Notepad ++ se ven bien, cada registro tiene su registro final con CRLF indicando el final del registro , despues del ultimo registro no tiene campos de control visibles con notepad ++.
Para leer el archivo de datos utilizo el siguiente codigo utilizando delphi 5
Código:
  Readln(w_F, w_string);
  w_string := Trim(w_string)  ;
  While not (Eof(w_F)) OR (w_string  > '') do begin
     Inc(g_leidos);
    //LOAD_MEMO(W_STRING);
    LOAD_DATASET(W_STRING);
    w_string:='';
    Readln(w_F, w_string);
  end;
  CloseFile(w_F);
Pero no lee los registros , como si no los reconociera
Abri el Archivo con notepad++ copie los datos al clickboard y los copie a un notepad microsoft salve la informacion con otro nombre y ejecute de nuevo la lectura de datos, y ahi si funciono en forma correcta

Abri el archivo usando

Código Delphi [-]
  MemoCSV.Lines.Clear;  // PRUEBAS
  OpenDialog1.FileName:= '*.CSV';
  OpenDialog1.Execute;
  MemoCSV.Lines.LoadFromFile(OpenDialog1.FileName);

y como resultado obtengo solo 3 caracteres en el campo memo, pero son campos como de control

Ahora utilice el codigo usando delphi xe2
Código Delphi [-]
  MemoCSV.Lines.Clear;  // PRUEBAS
  OpenDialog1.FileName:= '*.CSV';
  OpenDialog1.Execute;
  MemoCSV.Lines.LoadFromFile(OpenDialog1.FileName);
y los datos aparecen en el campo memo en forma normal los cuales son comno 1500 registros

No uso delphi Xe2 ya que estamos apenas estamos migrando a esta nueva version de delphi

Puede alguno de ustedes darme alguno idea o si ha tenido el mismo problema y su solucion

Gracias

Adjunto una oparte del texto a importar
Cita:
RE;146 ;16208018-5 ;GOMEZ VELASQUEZ RAMIRO ;2012-06-21 00:00:00.000;CRA 9 # 9-17 ;(052 ) 211 38 38 ;CARTAGO ;VALLE ;11:20;455019515110 ;195/60 R15 88H KR10 ;BOD6
;2.0000000;1;
Responder Con Cita
  #2  
Antiguo 15-08-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Me pierdo en la descripción de tu problema. ¿Qué es el primer código? ¿Qué es eso de LOAD_MEMO, LOAD_DATASET? ¿Quieres leer el archivo con ese código (que no entiendo qué hace) o en un Memo con LoadFromFile?

// Saludos
Responder Con Cita
  #3  
Antiguo 16-08-2012
ASAPLTDA ASAPLTDA is offline
Miembro
 
Registrado: jun 2003
Ubicación: COLOMBIA-CALI
Posts: 639
Poder: 24
ASAPLTDA Va por buen camino
Ampliacion Codigo

Gracias Roman por contestar:

El primer codigo es para ller el archivo que voy a importar y declaro un archivo texto, el cual leo linea a linea, una vez que leo una linea lo que hago es descomponer el registro en campos.

Código Delphi [-]
procedure forma1.leer_texto;
var
  w_F          :TextFile;
  w_string     :string   ;
begin
 Readln(w_F, w_string);
  w_string := Trim(w_string)  ;
  While not (Eof(w_F)) OR (w_string  > '') do begin
    descomponer_texto_en_campos(); 
   w_string:='';
    Readln(w_F, w_string);
  end;
  CloseFile(w_F);

Con el anterior el programa no lee registros ya que el while esta condicionado con eof(w_f) , tal como lo anote en la descripcion si el archivo lo copio a otro archivo usando copy parte y salvarlo el archivo si es procesado en forma normal

En el siguiente formato, uno puede grabar la inormacion de un archivo de texto dentro de un campo memo. La prueba conv delhi 5 solo trae 3 caracteres que no se que son, usando delphi xe2 con el mimo codigo si funciona,

Código Delphi [-]
 MemoCSV.Lines.Clear;  // componente tipo memo en la forma
  OpenDialog1.FileName:= '*.CSV';
  OpenDialog1.Execute;
  MemoCSV.Lines.LoadFromFile(OpenDialog1.FileName);  // grabar a un campo memo toda la informacion del archivo a importar

Creo que existe algo en el archivo que no deja que se lea normalmente, pero a su vez existe alguna diferencia en la forma que se lee un load fromfile entre delphi 5 y delphi xe

Gracias por su atencion
Responder Con Cita
  #4  
Antiguo 16-08-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
No entiendo la explicación, ¿quieres decir que el fichero de texto tiene un formato especial?, ¿que no es texto 'normal'?

¿Es posible que pongas aquí un trozo de fichero para que le echemos un vistazo?
Responder Con Cita
  #5  
Antiguo 16-08-2012
ASAPLTDA ASAPLTDA is offline
Miembro
 
Registrado: jun 2003
Ubicación: COLOMBIA-CALI
Posts: 639
Poder: 24
ASAPLTDA Va por buen camino
Smile archivo csv

Cita:
Empezado por Casimiro Notevi Ver Mensaje
No entiendo la explicación, ¿quieres decir que el fichero de texto tiene un formato especial?, ¿que no es texto 'normal'?

¿Es posible que pongas aquí un trozo de fichero para que le echemos un vistazo?
Gracias casimiro por tu interes, Voy a envia el archivo original y el archivo copia usando el clipboard para que puedan observar alguna difrencia que no he podido hallar.
El archivo que tiene las letras xxxx al final es la copia usando el copy a clipboard

Usdo delphi 5

Última edición por ASAPLTDA fecha: 21-03-2018 a las 14:44:13.
Responder Con Cita
  #6  
Antiguo 16-08-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
El archivo original está en unicode que no puede leer delphi 5 directamente pero sí delphi xe. Tendrías que convertir primero el archivo antes de poder leerlo.

// Saludos
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
Lectura de archivo en paralelo jars OOP 0 19-12-2011 14:31:10
Ayuda con Lectura de archivo fleming Varios 14 07-09-2010 10:22:56
Lectura de un archivo plano josem Varios 2 13-09-2006 23:06:39
Lectura continua de Archivo friendspark API de Windows 2 02-02-2006 16:27:52
lectura lenta de un archivo .DAT, ¿por que? URBANO Varios 3 09-12-2003 21:07:16


La franja horaria es GMT +2. Ahora son las 22:06:34.


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