rodrigo biagioli Postado Janeiro 10, 2007 Denunciar Share Postado Janeiro 10, 2007 é o seguinte:: quando temos um codigo em numero e queremos que o mesmo tenha sempre 5 digitos podemos fazer da seguinte forma:formatfloat('00000',codigo);bom, não sei se existe um jeito melhor mas sempre faço assim.o problema é que preciso fazer algo parecido só que num codigo que contem LETRAS.consegui fazendu um for que concatenado '0' nele ateh preencher todos os 5 digitos,mas me achei um ignorante ao apelar para tal codigo grotesco;alguém pode me dizer se tem um jeito ou só na base da "programação orientada a gambiarras"?ah!!!!!!!!!!!!!e foi mal pelo "FROMATFLOAT" do titulo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 DELPHI-Man32 Postado Janeiro 11, 2007 Denunciar Share Postado Janeiro 11, 2007 kro amigo! formatfloat('00000',codigo); para esse questão, você pode usar a propriedade: DisplayFormat, assim você enxuga seu código, com certeza terá algumas linhas a menos de preocupação. Basta colocar a quantidade de dígitos e o Delphi faz o resto. Pelo menos uso assim nos campos "id" das minhas tabelas. Logo, o código 1 será mostrado assim: 00001.para a 2ª, crei que só criando uma função, que para ser sincero, nem sei por onde começar! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Kikonanet Postado Janeiro 11, 2007 Denunciar Share Postado Janeiro 11, 2007 Olá Rodrigo,Use a função Concat para concatenar os 0 em seu código.Exemplo: var S: string; begin S := Concat('ABC', 'DEF'); end; abs.Kiko Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rodrigo biagioli Postado Janeiro 11, 2007 Autor Denunciar Share Postado Janeiro 11, 2007 ateh daria certo isso ai.mas meu problema é que nem sempre sei a qtde de zeros que quero colocar.entende?pode ser que uma hora digite apenas 2 digitos e precise completar com 3, outra hora pode ser que tenha digitado 4 e falte apenas um para completar.obs: essa função concat faz a mesma coisa que issos := 'ABC'+'DEF'; ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Kikonanet Postado Janeiro 11, 2007 Denunciar Share Postado Janeiro 11, 2007 Olá Rodrigo,você pode fazer uma function para isso... Qual é o tamanho total da string?max - tamanho total que a string deve ser...Ex: 0000ABAcho que o exemplo pode te ajudar... function concatenar(s: string; max: integer); var max, tam: integer; begin tam:= length(s); while tam < max do begin s:= concat("0",s); tam:= tam + 1; end; concatenar:= s; end; Cara faz tempo que eu não mexo no Delphi... Não me lembro se o return da função é assim mesmo que faz (quem puder me relembrar eu agradeço...rs...rs...).abs.Kiko Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rodrigo biagioli Postado Janeiro 11, 2007 Autor Denunciar Share Postado Janeiro 11, 2007 é assim mesmo o return (função := valor)eu tava fazendo mais ou menos igual á sua funcao mas to uzandu um forqtd_zeros := max - length(s);for i := 1 to qtd_zeros do s := '0'+s; mas achei que tivesse alguma outra função pois achei mta ganbiarra esse código;mas beleza vlw kiko!!!! é assim mesmo o return (função := valor)eu tava fazendo mais ou menos igual á sua funcao mas to uzandu um forqtd_zeros := max - length(s);for i := 1 to qtd_zeros do s := '0'+s; mas achei que tivesse alguma outra função pois achei mta ganbiarra esse código;mas beleza vlw kiko!!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Kikonanet Postado Janeiro 11, 2007 Denunciar Share Postado Janeiro 11, 2007 mas achei que tivesse alguma outra função pois achei mta ganbiarra esse códigoNão acho que seja gambiarra... Eu tmb não lembro se no Delphi tem uma função dessa... O código que você fez não é nenhum absurdo...abs. e t+Kiko Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Churc Postado Janeiro 11, 2007 Denunciar Share Postado Janeiro 11, 2007 opana minha opinião esse código está perfeito...gambiarra não é, que as funções que você usa doDelphi fazem essas coisas é que você está acostumadoa utilizar funções pré-prontas de units como SysUtils,DateUtils, StrUtils mas nada mais nada menos elas fazema mesma coisa só que de maneiras diferentes, e as vezesaté pior ahuauh já vi várias coisas que podiam ser otimizadas...eu já tive esse negócio, de querer fazer tudo profissionalmente,cada função, cada linha achando que o que eu montava eragambiarra... no fim você acaba perdendo produtividade e aumentadoo tempo para entrega do programa... resumindo, só se fo** eheheabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rodrigo biagioli Postado Janeiro 15, 2007 Autor Denunciar Share Postado Janeiro 15, 2007 vlw mesmo heim pessoal!!!realmente tava perdendo um tempo desnecessario com isso.vlw... Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
rodrigo biagioli
é o seguinte:: quando temos um codigo em numero e queremos que o mesmo tenha sempre 5 digitos podemos fazer da seguinte forma:
formatfloat('00000',codigo);
bom, não sei se existe um jeito melhor mas sempre faço assim.
o problema é que preciso fazer algo parecido só que num codigo que contem LETRAS.
consegui fazendu um for que concatenado '0' nele ateh preencher todos os 5 digitos,
mas me achei um ignorante ao apelar para tal codigo grotesco;
alguém pode me dizer se tem um jeito ou só na base da "programação orientada a gambiarras"?
ah!!!!!!!!!!!!!
e foi mal pelo "FROMATFLOAT" do titulo
Link para o comentário
Compartilhar em outros sites
8 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.