Ir para conteúdo
Fórum Script Brasil
  • 0

Como Converter Espaços Em "0" (zero)


Renato_agito10

Pergunta

6 respostass a esta questão

Posts Recomendados

  • 0

opa

adicione em Uses

StrUtils;

depois só você fazer exemplo

var

x: String;

begin

x := 'A B C D';

x := AnsiReplaceStr(x, ' ', '0');

//logo x ficou = A0B0C0D

Tem também o AnsiReplaceText a diferença é que o AnsiReplaceStr ele

faz diferenciação de maiúsculas para minúsculas já o AnsiReplaceText

ignora...

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Ola, Desculpe mais não fui muito claro na minha pergunta, a sua resposta esta correta mas preciso da seguinte forma:

Estou convertendo dados de uma tabela do oracle p/ txt, defino os campos txt por casas tipo:

Linha4 := Format('%3.3s', ['013']) +

Format('%35.35s',[''+(Modulo.CADCLIRAZSOC.Value)]) +

Format('%14.14s',[''+(Modulo.CADCLINUMCGC.Value)]) +

Format('%15.15s',[''+(Modulo.CADCLINUMINSEST.Value)]) +

WriteLn(Arquivo, Linha4);

Vou pergar de exemplo a 2ª linha são 35 casas a serem preenchidas conforme meu codigo acima,

as casas que não forem preenchidas ou ficarem com espaços concluir preenchendo de zeros.

Ex:

São 35 casas portanto

FULADODETAL000000000000000000000000

entendeu??

Link para o comentário
Compartilhar em outros sites

  • 0

opa

entendi sim, é só criar uma rotina pra preencher

com zeros tipo

procedure FillZeros(var szStr: String; iFillLength: Integer);

var

i: Integer;

begin

if Length(szStr) < iFillLength then

for i := Length(szStr) to iFillLength do

szStr := szStr + '0';

end;

pra usar, você deve passar a variavel que contém

o valor mais o tamanho do campo exemplo, se o

campo tem 35 caracteres e a escrita tem 11

var

x: String;

begin

x := 'FULANODETAL';

x := FillZeros(x, 35);

//Logo x vai ser = 'FULANODETAL' + os zeros preenchendo até completar 35 caracteres

Fiz a rotina fora do delphi pode ser que contenha pequenos

erros

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

opa

tenta assim

Function FillZeros(const szStr: String; iFillLength: Integer): String;

var

i: Integer;

begin

Result := szStr;

if Length(szStr) < iFillLength then

for i := Length(szStr) to iFillLength do

Result := Result + '0';

end;

agora é só passar direto sem usar variavéis tipo

Format('%35.35s',[''+(FillZeros(Modulo.CADCLIRAZSOC.Value, 35))])

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...