Ao lidarmos com a geração de arquivos texto a partir de um sistema legado, ou quando estamos exportando dados para outra base, facilmente nos depararemos com a necessidade de exportar dados em arquivos texto de grandes bases de dados.
Como posso automatizar o tamanho de um campo e automaticamente preenchê-lo com espaços ou zeros ao lado esquerdo ou direito?
Certamente demoraria algum tempo reunir todas essas características em uma só funcionalidade, mas para a sua alegria reuni-as em 2 funções. Espero que goste e possa utilizá-la de modo a ganhar bastante tempo no seu desenvolvimento.
A primeira função, FillSpace ([String], [Quantos dígitos a inserir],[boolean]) é capaz de retornar um valor com o número de espaços que desejarmos. E ainda podemos escolher se estes estarão à direita ou à esquerda.Parametrizado assim: FillSpace ("André Bernardes",20,True)Retornará isso: " André Bernardes"
Parametrizado assim: FillSpace ("André Bernardes",20,False)
Retornará isso: "André Bernardes "
A função FillSpace é assim:
Function FillSpace (nPar As Variant, nOccurs As Integer, L_R As Boolean) _As String' Author: Date: Contact:' André Bernardes 20/06/2012 11:50 bernardess@gmail.com https://sites.google.com/site/bernardescvcurriculumvitae/' Preenche com espaços.Dim nSize As IntegerDim nParticle As StringLet nSize = Len(Trim(nPar))' Informa se será preenchido na frente (LEFT) ou atrás (RIGHT).If L_R ThenLet nParticle = Space(nOccurs - nSize) & Trim(nPar)ElseLet nParticle = Trim(nPar) & Space(nOccurs - nSize)End IfLet FillSpace = nParticleEnd Function
A primeira função, FillZeros ([String], [Quantos dígitos a inserir],[boolean]) é capaz de retornar um valor com o número de zeros que desejarmos. E ainda podemos escolher se estes estarão à direita ou à esquerda.Parametrizado assim: FillZeros ("2500",10,False)Retornará isso: 2500000000Parametrizado assim: FillZeros ("25000",10,true)Retornará isso: 0000025000
A função FillZeros é assim:
Function FillZeros (nPar As Variant, nOccurs As Integer, L_R As Boolean) As String' Author: Date: Contact:' André Bernardes 20/06/2012 12:50 bernardess@gmail.com https://sites.google.com/site/bernardescvcurriculumvitae/' Preenche com zeros.Let FillZeros = Replace(FillSpace(nPar, nOccurs, L_R), " ", "0")End Function
Espero que possa usar bastante essas funções nas suas aplicações. Se desejarem, deixem comentários e novas sugestões de códigos.
Tags: VBA, Tips, espaço, zero, preenchendo, fill, Zed, Zeros, Space, preencher, completar