FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Ayuda con archivo .tmp
Resulta que tengo que leer un archivo que no se que es, la extension es .tmp
declare un textFile y cuando leo con readln(File,Str) ,me lee todo el contenido como string, un ejemplo es asi 2344323454NANINO#$A23442455987887NINODI#$A el tema es que no puedo identificar que caracter es #$A ya que recorro el string Código:
while tot <= (Length(str)) do begin if str[tot] = '#$A' then begin tot:= tot + 3 ; memo1.Lines.Add(aux); aux:= ''; end else begin int:= Ord(str[tot]) ; aux:=aux + str[tot]; tot := tot + 1; end; end; el formato del archivo es numerocuilOtros#$AnumerocuilOtros#$AnumerocuilOtros#$A No puedo identificar el separador de los camposo sea que tipo de caracter es. En el if probe con comparar con # y no funciono,pregunte por #$A y tampoco. Supongo que es un cambio de parrafo o algo asi pero no lo puedo identificar. Si lo abro con notepad me muestra un string con todos los datos de corrido y en cambio el Word me los separa y me coloca un campo por linea como si reconociera el cambio de linea que indica #$A. Si alguien tiene alguna idea sera de mucha ayuda ya que no se tampoco si declare el archivo como textfile o file of byte, correctamente. Gracias!!! |
#2
|
||||
|
||||
¿Un salto de linea? Parece un enter de un sistema no-Windows. Delphi te lo está mostrando así porque es un caracter no imprimible (el 10, o $A, notación para hexadecimal A)
En Windows un salto de linea es #10#13. #10 solo es propio de ambientes Unix según entiendo. Debe ser por eso que el readln te lee todo entero, porque no reconoce #10 como enter completo (salto de linea + retorno de carro). Yo trataría de leer con otra función. Si mal no recuerdo, la clase TStringList tenía un método que te generaba una TStringList con texto separado por un separador que uno indicara (en tu caso el #10). Espero te sirva. Saludos. EDIT: Quizás también te convendría abrir el archivo con un editor hexadecimal, para ver bien cómo es por dentro. La versión de prueba del WinHex es altamente recomendable. Última edición por Lord Delfos fecha: 06-07-2011 a las 01:46:15. |
#3
|
|||
|
|||
Cita:
|
#4
|
|||
|
|||
WinHex
Lo pude abrir con win ex y lo que en delphi me tira #$A en WinHex me muestra un espacio en blanco. como puedo hacer para abrir ese hexadecimal desde delphi.
|
#5
|
|||
|
|||
Solucionado!!!
encontre la solucion gracias !!!
Código:
Reset(myFile); Memory.Active:=true; while not Eof(myFile) do begin text:=''; while length(text) < 21 do begin Read(myFile, letter) ; text:=text + letter ; end; Read(myFile, letter); Memory.Append; Memorycuil.Value :=copy(text,1,2)+'-'+copy(text,3,8)+'-'+copy(text,11,1); Memoryganancias.Value:=copy(text,12,2); Memoryiva.Value:=copy(text,14,2); Memorymonotibuto.Value:= copy(text,16,2); MemoryintegranteSo.Value:= copy(text,18,1); Memoryempleador.Value:=copy(text,19,1); MemoryactividadMono.Value:=copy(text,20,2); Memory.Post; end; |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
archivo de ayuda chm | fer21unmsm | Varios | 9 | 03-12-2012 15:35:47 |
Ayuda con archivo except.inc | boreg | Lazarus, FreePascal, Kylix, etc. | 4 | 15-02-2008 17:16:23 |
Archivo de ayuda. | REHome | Varios | 0 | 27-12-2004 17:14:01 |
Archivo de ayuda con F1 | Damisela | API de Windows | 1 | 17-05-2004 21:56:00 |
Archivo de ayuda .CHM | Marina | Varios | 1 | 09-04-2004 10:32:37 |
|