Dudu vb6 Postado Junho 23, 2010 Denunciar Share Postado Junho 23, 2010 (editado) estou com um problema pro seguinte codigo;fazer avançar naturalmente em um codigo com letra, acrescentando de 1 em 1, da seguinte maneira:m001m002...m009m010m011... e por ae vaitentei o seguinte codigo:'----------------------------------text1 = m001text2 = Mid(text1, 2, 3) + 1text3 = "m" & text2'----------------------------------(mudei as variaveis originais pra facilitar a compreensao.caso sirva, tentei assim:(...)indice = Mid(rec1("indice_questao"), 2, 3) + 1(...)rec1("indice_questao") = Mid(Combo1.Text, 1, 1) & indice(...)onde indice_questao esta guardando m001)só que na soma de "001" + "1" ele da como resposta "2".se ele me retornar "002", o codigo fica certo, mas não sei como fazer isso.caso alguém conheça uma forma mais fácil de fazer isso, ou como fazer que ele me retorne a resposta com os... "zeros à esquerda", ficarei muito grato. Editado Junho 23, 2010 por Dudu vb6 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Junho 23, 2010 Denunciar Share Postado Junho 23, 2010 tinha uma funcao no clipper chamada strzero() q fazia isso. como no visual basic nunca vi nd q faca isso, criei minha propria funcao strzero. esse é o codigo:Public Function StrZero(ByVal X As String, ByVal tam As Integer, ByVal char As String, Optional ByVal posicao As Integer = 0) As String Dim i As Integer StrZero = X If posicao = 0 Then For i = Len(StrZero) To tam Step Len(char) StrZero = char & StrZero Next StrZero = Right(StrZero, tam) ElseIf posicao = 1 Then For i = Len(StrZero) To tam Step Len(char) StrZero = StrZero & char Next StrZero = Left(StrZero, tam) End IfEnd Function[/code] ela funciona assim, você passa uma string, e ele insere determinado caracter na esquerda ou na direita (assim você pode trasnformar "2" em "002"). o primeiro parametro X é a string original. o segundo, tam, é o tamanho q você quer q a string fique (no seu caso 3 caracteres). o tercero, char é o caracter com q você quer preencher (no seu caso "0"). o quarto parametro posicao é opcional e determina se o caracter deve ser inserido na frente ou atras. se você passa 0, ele insere na frente, se passar 1, insere atras. se não passar nd, ele considera 0. no seu caso, você faria assim: [code]text3 = "m" & StrZero(text2, 3, "0") Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Dudu vb6 Postado Junho 23, 2010 Autor Denunciar Share Postado Junho 23, 2010 (editado) acho que isso me ajuda, vou tentar algo com esse código e edito aqui o resultado que deu.com uma variável guardando após o acréscimo de 1, por exemplo, "3", o transformo em "003" e jogo logo no pro banco de dados.problemas rídiculos como esse são os que mais dão dor de cabeça...sua solução foi certa, consegui.com o problema resolvido, agora é continuar com o projeto.muito obrigado mesmo pela sua ajuda. Editado Junho 23, 2010 por Dudu vb6 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Dudu vb6
estou com um problema pro seguinte codigo;
fazer avançar naturalmente em um codigo com letra, acrescentando de 1 em 1, da seguinte maneira:
m001
m002
...
m009
m010
m011
... e por ae vai
tentei o seguinte codigo:
'----------------------------------
text1 = m001
text2 = Mid(text1, 2, 3) + 1
text3 = "m" & text2
'----------------------------------
(mudei as variaveis originais pra facilitar a compreensao.
caso sirva, tentei assim:
(...)
indice = Mid(rec1("indice_questao"), 2, 3) + 1
(...)
rec1("indice_questao") = Mid(Combo1.Text, 1, 1) & indice
(...)
onde indice_questao esta guardando m001)
só que na soma de "001" + "1" ele da como resposta "2".
se ele me retornar "002", o codigo fica certo, mas não sei como fazer isso.
caso alguém conheça uma forma mais fácil de fazer isso, ou como fazer que ele me retorne a resposta com os... "zeros à esquerda", ficarei muito grato.
Editado por Dudu vb6Link para o comentário
Compartilhar em outros sites
2 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.