SoloCodigo
CLR: .Net / Mono / Boo / Otros CLR => VB .NET => Mensaje iniciado por: JosPonce en Miércoles 13 de Septiembre de 2006, 21:54
-
El sub String no me deja almasenarlo
Lo que quiero es sacar solo una parte de la cadena y convertirla en entero
q estara mal?
dim i as interger = 8
dim chaDe1 as String
For largo = Len(rut) To 0 Step -1
'el largo hasta llegar a 0 en descenso 1 en 1
chaDe1 = rut.Substring(i, largo)
i = i - 1
Contiene1Digito = Convert.ToInt32(chaDe1)
' es aqui donde saco solo una parte de al cadena y la dejo en chaDe1
-
1ero esto es sobre vb6 hay un subforo sobre vb.net
http://foros.solocodigo.com/index.php?showforum=53 (http://foros.solocodigo.com/index.php?showforum=53)
2do no se entiende lo que preguntas ¿Que es lo que quieres hacer?
substring saca un pedazo de una cadena
3.- que contiene la variable rut
bueno cuando fromules bien tu pregunta, posteala antes no
-
asi es quiero una parte de el string rut
y dejarlo en chaDe1 que es de el mismo tipo comprendes
-
oki ;)
pero lo que quiero saber es que contiene rut, o te marca un error o que onda, xq de ahi esta bien
-
si es un error en TE
es este
Excepción no controlada del tipo 'System.ArgumentOutOfRangeException' en mscorlib.dll
Información adicional: El índice y la longitud deben hacer referencia a una ubicación en la cadena.
pero yo encuentro que esta bien...
por lo menos en lo visual
este es el codigo cmopleto
Function ValidarRut(ByVal rut As String, ByVal dv As String) As Boolean
Dim numero = 2
Dim numero2 = 2
Dim largo As Integer
Dim i As Integer
i = 8
For largo = Len(rut) To 0 Step -1 'el largo hasta llegar a 1 en descenso 1 en 1
chaDe1 = rut.Substring(i, largo)
i = i - 1
Contiene1Digito = Convert.ToInt32(chaDe1)
If largo = 3 Then
ContineResultado = ContineResultado + (Contiene1Digito * numero2)
numero2 = numero2 + 1
Else
ContineResultado = ContineResultado + (Contiene1Digito * numero)
numero = numero + 1
End If
Next
ContineResultado = ContineResultado Mod 11
ContineResultado = ContineResultado - 11
If Convert.ToInt32(dv) = ContineResultado Then
Return True
Else
Return False
End If
End Function
-
si el error te lo da aqui:
chaDe1 = rut.Substring(i, largo)
prueba viendo que tiene en ese momento rut
o si no me imagino que i=8 es porque la cadena puede tener mas o menos 8 caracteres porque no le haces asi:
i=len(rut) - 1
y lo checas
si no me avisas
-
chaDe1 = Nothing
-
yo te decia que hicieras algo asi
For largo = Len(rut) To 1 Step -1 'el largo hasta llegar a 1 en descenso 1 en 1
chaDe1 = rut.Substring(largo - 1, largo)
porque por lo que veo evaluabas caracter a caracter no?
ahora otra cosa que te pregunte es que contenia rut porque imaginate si rut era menor de 8 caracteres siempre te iba a dar nada