Fórum Criar arquivo txt colunado... #272286

14/03/2005

0

Boa tarde a todos,

Sou novato em Delphi e necessito da seguinte ajuda:

Tenho um arquivo txt com diversos campos separados por ;
Com base nesse arquivo, gostaria de criar um novo arquivo txt com os campos colunados num tamanho que posso definir
Exemplo:

[b:902b629545]Arquivo original: [/b:902b629545]

Nome;Endereço;Bairro;Cidade;Estado
Victor Reis;R Tal nº 888;Ipiranga;São Paulo;SP
Maria José;R X nº 555;Jaçana;São Paulo;SP

[b:902b629545]Arquivo a ser criado:[/b:902b629545]


Nome Endereco Bairro Cidade Estado
Victor Reis Rua Tal nº 888 Ipiranga São Paulo SP
Maria José Rua X nº 555 Jaçana São Paulo SP

Desde já agradeço.

Abraxs... :D [/b]


Victor Morgani

Victor Morgani

Responder

Posts

14/03/2005

Massuda

Use a função [url=http://www.delphibasics.co.uk/RTL.asp?Name=Format]Format[/url] da unit SysUtils para gerar uma string formatada e salve essa string no arquivo. Por exemplo:
var
  S: string;
...
  S := Format(´¬20.20s¬20.20s¬10.10s¬10.10s¬2.2s´,
    [Nome, Endereço, Bairro, Cidade, Estado]); // strings com os dados
gera strings desse tipo:
Victor Reis     Rua Tal nº 888     Ipiranga  São Paulo SP 
Maria José      Rua X nº 555       Jaçana    São Paulo SP 
Se qualquer uma das strings for maior que o espaço reservado para ela, ela será truncada.

Os tamanhos podem ser também parametrizados:
var
  S: string;
  Tamanho: Integer;
...
  Tamanho := 20;
  S := Format(´¬*.*s´, [Tamanho, Tamanho, Nome]);
  // equivale a 
  // S := Format(´¬20.20s´, [Nome]);



Responder

Gostei + 0

14/03/2005

Victor Morgani

Obrigadão pela ajuda Massuda...

Vou testar...

Abraxs 8)


Responder

Gostei + 0

15/03/2005

Victor Morgani

Valew pela ajuda ajuda Massuda, porém o procedimento q vc me passou tenho q especificar o tamanho exato dos campos separados por ;
Andei pesquisando... será q teria como eu fazer utilizando [b:aefe554100]Record?[/b:aefe554100]

Estrutura = Record
ws_nome : string[080];
ws_endereco : string[100];
ws_bairro : string[040];
ws_cidade : string[040];
ws_estado : string[002];
ws_cep : string[008];
end;

Grato

:!: :wink: :?: [/b]


Responder

Gostei + 0

15/03/2005

Massuda

Eu costumo fazer assim:
const
  TAM_NOME = 80;
  TAM_ENDERECO = 100;
  ...

type
  TXyz= record
    ws_nome: string[TAM_NOME]; 
    ws_endereco: string[TAM_ENDERECO]; 
    ...
  end;

....

var 
  S: string; 
  X: TXyz;
... 
  S := Format(´¬*.*s´, [TAM_NOME, TAM_NOME, X.ws_nome]);
Assim, se algum dia alguém resolver mudar o tamanho de algum dos campos, eu só mudo o const. Mas talvez exista alguma outra forma de fazer isso.


Responder

Gostei + 0

15/03/2005

Victor Morgani

Valew novamente Massuda...

Acho q agora o bonde anda...rs

Abraço :)


Responder

Gostei + 0

18/01/2007

Saraujo

Olá Pessoal

Preciso alinhar os campos nome,endereço,etc à esquerda, do jeito que fiz abaixo ele está a direita o que devo fazer???? Qual parâmetro que devo usar??? Aproveitando o ensejo existe alguma apostila ou tutorial dos parâmetros do Format, onde encontrar???? :?:


var
S: string;
...
S := Format(´¬20.20s¬20.20s¬10.10s¬10.10s¬2.2s´,
[Nome, Endereço, Bairro, Cidade, Estado]); // strings com os dados


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar