Tá aí, Leandro,
Para transformar um campo Comp3 do COBOL em Integer do Pascal: Neste exemplo o campo hexa 09 17 20 14 0C foi convertido para 091720140 var Registro, CodigoCobol, CodigoDelphi: string; I, J, K, L: integer; F: file; Buf: array[0..79] of char; begin AssignFile(F,'C:\ArquivoCobol.arq'); Reset(F,1); BlockRead(F,Buf,SizeOf(Buf),NumRead); Registro := StrPas(Buf); while NumRead > 0 do begin CodigoDelphi := ''; for I := 0 to 4 do // Neste caso estou convertendo 5 caracteres begin CodigoCobol := Copy(Registro,1 + I,1); // Pega 1 byte de cada vez if CodigoCobol = '' then // É o caso do código $00 CodigoDelphi := CodigoDelphi + '00' Else Begin J := Ord(CodigoCobol[1]); // Acha o valor decimal do caracter correspondente K := Trunc(J / 16); L := J mod 16; if (L = 12) or (L = 13) or (L = 15) then // É o caso do código $0C (Sinal Positivo), $0D (Sinal Negativo) ou $0F (Sem Sinal) CodigoDelphi := CodigoDelphi + IntToStr(K) Else CodigoDelphi := CodigoDelphi + Format('%2.2d',[(K * 10) + L]); end; end; BlockRead(F,Buf,SizeOf(Buf),NumRead); Registro := StrPas(Buf); end; CloseFile(F); Abraços Mario Hardt Blumenau-SC ----- Original Message ----- From: Leandro To: delphi-br@yahoogrupos.com.br Sent: Tuesday, June 19, 2007 2:24 PM Subject: [delphi-br] Comp3 do Cobol para Numero Bom dia, Alguem tem alguma função Delphi que converte valor compactado do Cobol para valor numerico? Gerei txt´s das tabelas para importar no meu sistema, mas alguns campos estao compactados. Obrigado, Leandro [As partes desta mensagem que não continham texto foram removidas]