Renato_agito10 Postado Fevereiro 7, 2007 Denunciar Share Postado Fevereiro 7, 2007 Estou com um problema e queria converter espaços em 0, alguém tem alguma solução?Obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Churc Postado Fevereiro 7, 2007 Denunciar Share Postado Fevereiro 7, 2007 opaadicione em UsesStrUtils;depois só você fazer exemplovarx: String;beginx := 'A B C D';x := AnsiReplaceStr(x, ' ', '0');//logo x ficou = A0B0C0DTem também o AnsiReplaceText a diferença é que o AnsiReplaceStr elefaz diferenciação de maiúsculas para minúsculas já o AnsiReplaceTextignora...abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Renato_agito10 Postado Fevereiro 7, 2007 Autor Denunciar Share Postado Fevereiro 7, 2007 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 portantoFULADODETAL000000000000000000000000entendeu?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Churc Postado Fevereiro 7, 2007 Denunciar Share Postado Fevereiro 7, 2007 opaentendi sim, é só criar uma rotina pra preenchercom zeros tipoprocedure FillZeros(var szStr: String; iFillLength: Integer);vari: Integer;beginif Length(szStr) < iFillLength thenfor i := Length(szStr) to iFillLength doszStr := szStr + '0';end;pra usar, você deve passar a variavel que contémo valor mais o tamanho do campo exemplo, se ocampo tem 35 caracteres e a escrita tem 11varx: String;beginx := 'FULANODETAL';x := FillZeros(x, 35);//Logo x vai ser = 'FULANODETAL' + os zeros preenchendo até completar 35 caracteresFiz a rotina fora do delphi pode ser que contenha pequenoserrosabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Renato_agito10 Postado Fevereiro 9, 2007 Autor Denunciar Share Postado Fevereiro 9, 2007 Ola amigo, Tentei de todas as formas usar o procedure fillzeros, mas não consegui sempre da erro. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Churc Postado Fevereiro 9, 2007 Denunciar Share Postado Fevereiro 9, 2007 opatenta assimFunction FillZeros(const szStr: String; iFillLength: Integer): String;vari: Integer;beginResult := szStr;if Length(szStr) < iFillLength thenfor i := Length(szStr) to iFillLength doResult := Result + '0';end;agora é só passar direto sem usar variavéis tipoFormat('%35.35s',[''+(FillZeros(Modulo.CADCLIRAZSOC.Value, 35))])abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Renato_agito10 Postado Fevereiro 9, 2007 Autor Denunciar Share Postado Fevereiro 9, 2007 Agora funcionou 100%...Valeu msmo... Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Renato_agito10
Estou com um problema e queria converter espaços em 0, alguém tem alguma solução?
Obrigado.
Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
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.