Fórum Arquivo TXT #224518

05/04/2004

0

Tenho um sistema para exportar um arquivo TXT. e tenho q seguir um layout.
Minha duvida consiste em :
Meu bco de dados (dbf) tem um campo (Nome) com o tamnha de 60 caracteres... mas nem sempre o nome preenche todos os espacos.
na hora da exportação para o arquivo TXT ele exporta apenas o que ta escrito o restanto que esta em branco no campo nome ele não aparece assim não dando certo segue um simples exemplo

001 Eduardo Almeida teste
na exportacao teria q sair assim
001eduardo almeida teste001
mas ta saindo assim
001eduardo almeidateste001
o espaco final naum sai ... o q faco ??
outra duvida é tem alguns lugares do layot que tenho q preencher com espacos (tipo uns 300 espacos) tem algo mais simples do que digitar espaco por espaco ?
agradeco
Edu


Deusem

Deusem

Responder

Posts

05/04/2004

Aroldo Zanela

Colega,

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Math, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
// Criação da classe
  TAjustarLinha = Class
    cLineSource: String;
    nLength: Integer;
    cCharPad: Char;
    cPadRight: String;
    cPadLeft: String;
    cPadZeros: String;
    procedure Clear; 
    procedure Execute; 
  end;
var
  Form1: TForm1;

implementation

{$R *.DFM}

{ TAjustarLinha }

procedure TAjustarLinha.Clear;
begin
  cLineSource  := ´´;
  nLength := 0;
  cCharPad := #32;
  cPadRight := ´´;
  cPadLeft := ´´;
  cPadZeros := ´´;
end;

procedure TAjustarLinha.Execute;
var nFill: Integer;
begin
nFill:= nLength - Length(cLineSource);
  If (nLength < nFill) then
  begin
    cPadRight  := cLineSource;
    cPadLeft   := cLineSource;
    cPadZeros  := cLineSource;
  end else
  begin
    cPadRight  := cLineSource + StringOfChar(cCharPad, nFill);
    cPadLeft   := StringOfChar(cCharPad, nFill) + cLineSource;
    cPadZeros  := cLineSource + StringOfChar(´0´, nFill);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
With TAjustarLinha.Create do
  begin
    Clear;
    cLineSource:= ´Teste de preenchimento´; // Nome do campo
    nLength:= 40; // Tamanho do campo no leiaute
    cCharPad:= ´B´; // Normalmente brancos e não B 
    Execute;

    ShowMessage(cPadRight);
    ShowMessage(cPadLeft);
    ShowMessage(cPadZeros);

    Free;
  end;
end;

end.



Responder

Gostei + 0

05/04/2004

Eduardo_lcouto

procedure TForm1.Button1Click(Sender: TObject); var meutxt : TextFile; begin AssignFile(meutxt,´c:\windows\desktop\teste.txt´); Rewrite(meutxt); Table1.First; while not table1.Eof do begin Write(meutxt,format(´¬-50s´,[Table1Company.Value])); Write(meutxt,format(´¬-100s´,[Table1city.Value])); Write(meutxt,format(´¬-100s´,[Table1addr1.Value])); Writeln(meutxt); Table1.Next; end; CloseFile(meutxt); end;


´¬-100s´, ´¬-20s´;

no lugar dos numeros coloque a quantidade de caracteres que vc queira que o seu campo tenha. 8)


Responder

Gostei + 0

08/04/2004

Spooner

Desculpe Interromper mas, como eu faço para importar os dados do arquivo txt, para a minha tabela?


Responder

Gostei + 0

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

Aceitar