Fórum db para txt #181965
13/09/2003
0
Amigos do Forum.
Estou com um pequeno problema que está ficando grande demais.
Tenho uma tabela paradox com a seguinte estrutura:
codigo A 10 *
codreg A 10
codfun A 15
nome A 15
fix A 6
Prezaciso gerar um arquivo txt só que ele não pode ficar com os caracteres juntos, precisam ocupar toda a extensão do campo da tabela, por exemplo:
1 152141 9565214125141 SAMARA RAMOS AVD545
Podem me ajudar a fazer esta exportação?
Estou com um pequeno problema que está ficando grande demais.
Tenho uma tabela paradox com a seguinte estrutura:
codigo A 10 *
codreg A 10
codfun A 15
nome A 15
fix A 6
Prezaciso gerar um arquivo txt só que ele não pode ficar com os caracteres juntos, precisam ocupar toda a extensão do campo da tabela, por exemplo:
1 152141 9565214125141 SAMARA RAMOS AVD545
Podem me ajudar a fazer esta exportação?
Cjscjs
Curtir tópico
+ 0
Responder
Posts
13/09/2003
Paganato
Eu tenho uma função que o proprio nome ja diz tudo ´CompletaSTR´
Ela esta com parametros em PCHAR pois eu a utilizo em uma DLL,
voce de substituir o PCHAR por STRING para utiliza-la nas units.
Os parametros são:
- Lado : qual o lado que voce quer preencher pode ser: (d)ireita, (e)squerda e (c)entro.
- OQue : o character que voce quer que seja utilizado para o preenchimento.
- StrOriginal : a sua string que sera preenchida.
- AteQuanto : o tanho que voce quer que a string tenha.
//Função que completa uma string
function CompletaSTR(Lado, OQue : Char; StrOriginal : PChar ; AteQuanto : Integer): PChar;
var tam : Integer;
Pronta,lc : String;
begin
lc := ´d´;
tam := Length(StrOriginal);
pronta := StrOriginal;
if lado = ´d´ then
begin
while tam < AteQuanto do
begin
pronta := pronta + OQue;
tam := tam + 1;
end;
end
else if lado = ´e´ then
begin
while tam < AteQuanto do
begin
pronta := OQue + pronta;
tam := tam + 1;
end;
end
else
begin
while tam < AteQuanto do
begin
if lc = ´d´ then
begin
lc := ´e´;
pronta := pronta + OQue;
tam := tam + 1;
end
else
begin
lc := ´d´;
pronta := OQue + pronta;
tam := tam + 1;
end;
end;
end;
Result := PChar(Pronta);
end;
Espero que seja util.
Ela esta com parametros em PCHAR pois eu a utilizo em uma DLL,
voce de substituir o PCHAR por STRING para utiliza-la nas units.
Os parametros são:
- Lado : qual o lado que voce quer preencher pode ser: (d)ireita, (e)squerda e (c)entro.
- OQue : o character que voce quer que seja utilizado para o preenchimento.
- StrOriginal : a sua string que sera preenchida.
- AteQuanto : o tanho que voce quer que a string tenha.
//Função que completa uma string
function CompletaSTR(Lado, OQue : Char; StrOriginal : PChar ; AteQuanto : Integer): PChar;
var tam : Integer;
Pronta,lc : String;
begin
lc := ´d´;
tam := Length(StrOriginal);
pronta := StrOriginal;
if lado = ´d´ then
begin
while tam < AteQuanto do
begin
pronta := pronta + OQue;
tam := tam + 1;
end;
end
else if lado = ´e´ then
begin
while tam < AteQuanto do
begin
pronta := OQue + pronta;
tam := tam + 1;
end;
end
else
begin
while tam < AteQuanto do
begin
if lc = ´d´ then
begin
lc := ´e´;
pronta := pronta + OQue;
tam := tam + 1;
end
else
begin
lc := ´d´;
pronta := OQue + pronta;
tam := tam + 1;
end;
end;
end;
Result := PChar(Pronta);
end;
Espero que seja util.
Responder
Gostei + 0
13/09/2003
Mmtoor
Prezado amigo:
Seu arquivo é um arquivo parametrizado. tipo cnab. Proceda assim:
coloque no seu form um btn, table (o ideal é uma query para que possa gerar arquivos resultantes de consulta também) e um datasource.
No evento onclick do btn faça assim:
procedure TForm1.Button1Click(Sender: TObject);
var arq: TextFile;
linha: String;
begin
AssignFile ( arq, ´C:\Diretoria\cnab.txt´ );
Rewrite ( arq );
table1.First;
while not table1.Eof do
begin
Write ( arq, AjustaStr ( table1.FieldByName ( ´Codigo´ ).AsString,10 ) );
Write ( arq, AjustaStr ( table1.FieldByName ( ´CodReg´ ).AsString,10 ) );
Write ( arq, AjustaStr ( table1.FieldByName ( ´CodFun´ ).AsString,15 ) );
Write ( arq, AjustaStr ( table1.FieldByName ( ´Nome´ ).AsString,15 ) );
Write ( arq, AjustaStr ( table1.FieldByName ( ´Fix´ ).AsString,6 ) );
WriteLn ( arq );
table1.Next;
end;
CloseFile ( arq );
end;
Seu arquivo é um arquivo parametrizado. tipo cnab. Proceda assim:
coloque no seu form um btn, table (o ideal é uma query para que possa gerar arquivos resultantes de consulta também) e um datasource.
No evento onclick do btn faça assim:
procedure TForm1.Button1Click(Sender: TObject);
var arq: TextFile;
linha: String;
begin
AssignFile ( arq, ´C:\Diretoria\cnab.txt´ );
Rewrite ( arq );
table1.First;
while not table1.Eof do
begin
Write ( arq, AjustaStr ( table1.FieldByName ( ´Codigo´ ).AsString,10 ) );
Write ( arq, AjustaStr ( table1.FieldByName ( ´CodReg´ ).AsString,10 ) );
Write ( arq, AjustaStr ( table1.FieldByName ( ´CodFun´ ).AsString,15 ) );
Write ( arq, AjustaStr ( table1.FieldByName ( ´Nome´ ).AsString,15 ) );
Write ( arq, AjustaStr ( table1.FieldByName ( ´Fix´ ).AsString,6 ) );
WriteLn ( arq );
table1.Next;
end;
CloseFile ( arq );
end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)