Problemas com variáveis do Tipo String.
Olá pessoal,
vou explicar minha situação.
Tenho que gerar um arquivo de textos, porém esse arquivo tem que respeitar a um layout no qual fala sobre campos com tamanho x. Bueno, todos os campos criei como String[x];
Meu problema é o seguinte, se tenho um campo CODIGO do tamanho 5 (String[5]), e meu codigo do sistema ocupa somente uma posição no arquivo de texto depois ele imprime o CODIGO mas ocupando apenas uma posição, e não as 5 posições que deveria, preciso disso porq depois do código vem por exemplo o NOME que começa na posição 6. Não se fui claro, mas gostaria de saber como posso fazer para preencher com espaços em branco a direita do que está na variável, se possui alguma fuñção pra isso, ou tipo de campo que faça isso, estou usando TStringList para gerar o txt.
Valeu.
vou explicar minha situação.
Tenho que gerar um arquivo de textos, porém esse arquivo tem que respeitar a um layout no qual fala sobre campos com tamanho x. Bueno, todos os campos criei como String[x];
Meu problema é o seguinte, se tenho um campo CODIGO do tamanho 5 (String[5]), e meu codigo do sistema ocupa somente uma posição no arquivo de texto depois ele imprime o CODIGO mas ocupando apenas uma posição, e não as 5 posições que deveria, preciso disso porq depois do código vem por exemplo o NOME que começa na posição 6. Não se fui claro, mas gostaria de saber como posso fazer para preencher com espaços em branco a direita do que está na variável, se possui alguma fuñção pra isso, ou tipo de campo que faça isso, estou usando TStringList para gerar o txt.
Valeu.
Gtts
Curtidas 0
Respostas
Massuda
24/09/2007
Declarar os campos como sendo String[x] não resolve seu problema pois isso apenas avisa ao compilador que seu campo é uma string que [b:6face71bae]pode[/b:6face71bae] conter até 5 caracteres.
Para fazer o que você pretende, acho que o jeito mais fácil é formatar a string que vai para o arquivo usando a função Format da unit SysUtils. Por exemplo......gera uma string formatada onde Campo1 ocupa 5 caracteres, Campo2 ocupa 13 caracteres e Campo3 ocupa 2 caracteres.
Para fazer o que você pretende, acho que o jeito mais fácil é formatar a string que vai para o arquivo usando a função Format da unit SysUtils. Por exemplo...
var S: string; Campo1, Campo2, Campo3: string; ... S := Format(´¬5.5s¬13.13s¬2.2s´, [Campo1, Campo2, Campo3]); ...
GOSTEI 0
Paulo
24/09/2007
function TFrmMenu.AjustaStr( str : string; tam: integer) : string;
begin
while length( str ) tam do
str := str + ´ ´;
if length(str) > tam then
str := copy(str, 1, tam);
result := str;
end;
begin
while length( str ) tam do
str := str + ´ ´;
if length(str) > tam then
str := copy(str, 1, tam);
result := str;
end;
GOSTEI 0