Usuário com melhor resposta
Acrescentar ZERO a esquerda com ToString

Pergunta
-
Olá,
Preciso de um suporte ao sistema em VB.NET que estou utilizado, que ele pega os dados de um Excel , faz a leitura e depois cria um e-mail em HTML para enviar para os destinatários.
Porem, em umas das colunas do Excel onde ele colhe os dados é composto por números com 4 dígitos e é por esses números que o sistema pega para enviar e-mail.
Só que um algumas colunas tem ZERO na esquerda e o Excel acaba tirando e fica com 3 números e alguns com 2 números com isso não irá enviar o e-mail, pois preciso dos 4 números
Se eu coloco o Excel no modo texto e acrescento os ZERO's ele aparece valor NULL no sistema, ou seja preciso criar um IF / ELSE para ele acrescentar ZERO quando não houver, Mais já fiz varias tentativas e pesquisas e não consigo.
Caso tenham alguma sugestão eu agradeceria muito.
Respostas
Todas as Respostas
-
-
Amigo,
Utilize o método PADLEFT, exemplo:
String.PadLeft(4,'0')
Espero ter ajudado...boa sorte!
Não esqueça de marcar como útil uma resposta que te ajude.
"A diversão é a alma do negócio"- Sugerido como Resposta Diacov Informatica sexta-feira, 15 de março de 2019 17:35
-
-
-
Coloquei este IF e vou testar agora , mais não sei se vai funcionar!!
Dim numero As String
For i As Integer = 0 To dt.Rows.Count - 2
numero = dt.Rows.Item(i).Item(2).ToString
If numero Then
dt.Rows.Item(i).Item(2).ToString()
Else
numero = dt.Rows.Item(i).Item(2).ToString.PadLeft(4, "0")
End If- Editado Guilherme_SM segunda-feira, 31 de agosto de 2015 17:26
-
-
-
-
Bom dia,
Vocês me ajudaram bastante com as informações , mais não esta funcionando ele não acrescenta o ZERO a esquerda para que o e-mail seja enviado.
Caso tenham mais alguma informação eu agradeço.
Usei o:
String.PadLeft(4,'0')
numero = dt.Rows.Item(i).Item(2).ToString("D4")
Porem assim que a mensagem esta enviando a barra de progresso para no meio conforme a imagem abaixo e só é enviado as 2 primeiras pois tem os 4 números a ultima não envia.
-
-
Prezado,
Tente esta função, para mim dá certo
Public Function FormataZerosEsq(ByVal Valor As String, ByVal nZeros As String)
FormataZerosEsq = Valor.PadLeft(nZeros, "0")
End FunctionExemplo:
Dim NewVal as String
NewVal = FormataZerosEsq(NewVal,6)
Resultado -> 000001
Vê se é isto que você quer.
Elmo
Elmo
-
Perfeito cara, fiz aqui seguindo o teu exemplo, e adaptei da forma abaixo e funcionou direitinho:
DataSet.Tables(0).Rows(x).Item("CAMPO").ToString.PadLeft(4, "0")
Ele pega o numero que está no CAMPO ex: 25 e transforma em 0025
perfeito, muito obrigado pela resposta"
Diacov Informatica