PadL e PadR, alinham ou preenchem?

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

PadL e PadR, alinham ou preenchem?

Mensagem por rochinha »

Amiguinhos,

Fiz o seguinte teste usando Harbour:

Código: Selecionar todos


function main()
  ? "PadL", padL( "JOSE CARLOS", 30, "_" )
  ? "PadR", padR( "JOSE CARLOS", 30, "_" )
  return .t.
Resultados:

Código: Selecionar todos

PadL, ___________________JOSE CARLOS
PadR, JOSE CARLOS___________________
Minha cabeça já esta a mil e o que eu quero é:

Alinhar uma string à esquerda preenchendo o resto com algum caracter qualquer, por isto usei PadL()
Alinhar uma string à direita preenchendo o resto com algum caracter qualquer, por isto usei PadR()

Ao alinhar um texto à direita usando PadR, obtive o contrário, ou seja, alinhou para esquerda e prencheu pela direita.

As funções Pad?() vão alinhar ou preencher, agora que fico louco mesmo.

Ajudem o bom velhinho aqui.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
kiko
Usuário Nível 3
Usuário Nível 3
Mensagens: 145
Registrado em: 08 Jul 2004 15:24
Localização: Cianorte

PadL e PadR, alinham ou preenchem?

Mensagem por kiko »

Bom dia.

As funções Pad???() vão completar a sua cadeia de caracteres até ficarem do tamanho que vc precisa. se vc omitir o ultimo parametro, será preenchido com espaços " ".

Citação do bom e velho Norton Guides:
PADC(), PADL(), e PADR() retornam o resultado de <exp> na forma de uma
cadeia de caracteres preenchida com <cCaracPreench>, para totalizar o
tamanho especificado por <nTamanho>.
seus exemplos ficariam assim:

Código: Selecionar todos

function main()
? "PadL", padL( "JOSE CARLOS", 30, "_" )
? "PadR", padR( "JOSE CARLOS", 30, "_" )
? "PadC", padC( "JOSE CARLOS", 30, "_" )
 return .t.

PadL, ___________________JOSE CARLOS
PadR, JOSE CARLOS___________________
PadC, __________JOSE CARLOS_________
Acho que vc esta precisando dormir....postou essa dúvida quase as 4 da madrugada.........hehehehehehe

Abs
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1297
Registrado em: 06 Jul 2004 00:44
Contato:

PadL e PadR, alinham ou preenchem?

Mensagem por ANDRIL »

Ja tive a mesma duvida quanto ao lado do alinhamento, o padR ficando na nossa Esquerda e o padL ficando na nossa Direita (um tanto quanto controverso). Para entender isso, fique de costas para seu monitor e verá que ai sim esta correto. Só assim comecei a entender onde o texto será alinhado, kkk.
Ate+
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

PadL e PadR, alinham ou preenchem?

Mensagem por Pablo César »

PadL e PadR, alinham ou preenchem?
Como ja disseram os colegas, essa função preenche com o caracter que for colocado no terceiro parâmetro e na quantidade de vezes que forem informado no segundo parâmetro e irá fazê-lo para a direita se for usar PADR e a esquerda com PADL. Eu também confundia, mas sempre checo e refaço quando vejo que escolhí o errado... rsrs Realmente parece fazer o contrário do que precisamos. Sempre usei essas funções, ja não me abalo mais...
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

PadL e PadR, alinham ou preenchem?

Mensagem por rochinha »

Amiguinhos,

Valeu mesmo, não achei que fosse bug mas sim confusão minha, pois uso estas funções na concatenação de arquivos TXT e só ontem, às 4:00hs é que me indaguei sobre isto.

Na verdade achei que ainda eram 2:00hs pois meu computador está atrasado no relógio.

Resolvi trocando uma pela outra.

Obrigadão a todos.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

PadL e PadR, alinham ou preenchem?

Mensagem por Eolo »

Rochinha, posso até parecer pedante ou algo do tipo, mas vou dar uma sugestão, que aliás pode ajudar mais gente, com esta e com outras funções e comandos: traduzir o significado com a ajuda dum dicionário, já que é tudo em inglês...

PAD (entre outras coisas) quer dizer almofada ou almofadar (colocar enchimento). Mouse Pad? 'Almofada' pro mouse. Ink Pad? Almofada de carimbo (acho que nem existe mais... hehehe).

PADear um string, então, é colocar algum "enchimento" nele. PAD-R = almofadar à direita (Right) e PAD-L = almofadar à esquerda (Left). Então, padL( "JOSE CARLOS", 30, "_" ) quer dizer: encha o string JOSE CARLOS com "_s", à esquerda, até chegar no tamanho 30. Quando for PADR, faça o mesmo, mas à direita.

E tem ainda o PADC, que Centraliza (Center) o JOSE CARLOS, dividindo os 11 caracteres que faltam pra 30, colocando 5 de cada lado. Ops, acho que ficam 6 do lado esquerdo, senão não fecha a conta.

A função PAD, então, não alinha nada. Aliás, alinha sim, se vc usar os mesmos parâmetros pra vários strings.


Um outro exemplo, que já foi dúvida aqui no forum: qual a diferença entre DBCOMMIT() e DBCOMMITALL()? Destrinchando o trem: DB Data Base, COMMIT Submeter, ALL Todos. Sabendo disso, talvez fique mais fácil entender que DBCOMMITTALL() passa a régua em todas as operações pendentes para todos os DBs abertos, enquanto que o outro só opera na área de trabalho ativa...

Abraço!
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

PadL e PadR, alinham ou preenchem?

Mensagem por rochinha »

Amiguinhos,

Pois é grande Eolo(Rei Eolo) e estava usando o mesmo para alinhar textos de arquivo como sintegra, etc.

Derepente ao olhar o conteudo de um arquivo e ver que tinha espaço de sobra, e do lado errado, o cabelo esquentou.

Depois de anos ainda dar umas pipocadas destas é dóse.

Hehehe!

Agora ta tudo certo.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

PadL e PadR, alinham ou preenchem?

Mensagem por Eolo »

Esquentou o cabelo? Então ainda tá bom. No meu caso, esquenta é a careca, porque os cabelos já se foram, 'levados pelos ventos da Eólia'... hehehe
Boogerman
Usuário Nível 1
Usuário Nível 1
Mensagens: 5
Registrado em: 04 Out 2010 13:15
Localização: Porto Alegre / RS

PadL e PadR, alinham ou preenchem?

Mensagem por Boogerman »

Bem Rochinha..
Acho que já ficou bem esclarecido a questão.. mas..deixa eu dar meu pitaco também..rsrsrsrs

Como o Eolo bem explicou.. não alinha nada.. ele completa a sua cadeia de string, e lógico que se usar PadL.. preencher a esquerda, sua cadeia de string automaticamente será jogada para o lado direito, e o contrário com PadR..
Então não esta errado.. apenas falta de atenção com relação ao lado que a sua cadeia de string irá ser jogada...

Abraços...
Ricardo Meneses
Clipper 5.2, Harbour 3.0, Asp, PHP, Html, MySql
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

PadL e PadR, alinham ou preenchem?

Mensagem por sygecom »

Mas bah Eolo, que nem tu não existe igual, Quando eu crescer quero ser que nem tu. Alias quero ter mais cabelo....rsrsrsrs,em Janeiro tomamos umas bereja... abraço por trás...
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder