Programación General > Visual Basic para principiantes
Podrian Publicar funciones para procesar Cadena de texto
Jimbenit:
Moskito no se donde tiene la cabeza, su funcion tiene un error es el siguiente ejemplo:
--- Código: Text ---print convertstring("1")
Parece que no acostumbra a verificar su funcion antes de postearla
Mi función tiene un error cuando el numero de caracteres sobrepasa cierto limite, como anoto Nebire
--- Citar --- if len(cadenanormal)>16383 then
msgbox "Existen posibilidades de que se produzca un error..."
end if
--- Fin de la cita ---
Nuevamente, F_Tanori... muy bien por la función inversa.
B) :good:
Jimbenit:
Cuando digo:
--- Citar ---Nuevamente, F_Tanori... muy bien por la función inversa.
--- Fin de la cita ---
No quiero decir que la de F_Tanori sea perfecta, de hecho no lo es...
miremos el siguiente codigo... comparemos.
--- Código: Text ---print ConvertString_FTanori("4,89,65,73,82,15,65"),,cadenanormal("4,89,65,73,82,15,65")YAIRA YAIR
A la izquierda la de Tanori; a la derecha, la mia
¿Que paso?, parece que la de Tanori no usa el primer numero (4) como parametro de cantidad de lectura de la función
Ahora si ven por que no es perfecta?
Jimbenit:
Error Tanori
Miremos el sigueinte codigo:
--- Código: Text ---For i = LBound(AsciiCode) + 1 To UBound(AsciiCode) 'El limite superior no es el primer numero de la cadena?, o acaso es el numero de comas??
F_Tanori:
--- Cita de: "Nilson Yair" ---Cuando digo:
--- Citar ---Nuevamente, F_Tanori... muy bien por la función inversa.
--- Fin de la cita ---
No quiero decir que la de F_Tanori sea perfecta, de hecho no lo es...
miremos el siguiente codigo... comparemos.
--- Código: Text ---print ConvertString_FTanori("4,89,65,73,82,15,65"),,cadenanormal("4,89,65,73,82,15,65")YAIRA YAIR
A la izquierda la de Tanori; a la derecha, la mia
¿Que paso?, parece que la de Tanori no usa el primer numero (4) como parametro de cantidad de lectura de la función
Ahora si ven por que no es perfecta?
--- Fin de la cita ---
Por supuesto que ninguna programacion es perfecta, ahora en mensajes anteriores quedo claro que
"4,89,65,73,82" daba como resultado YAIR (esta cadena incluye la longitud de la cadena en texto) y en el ejemplo de este mensaje estas colocando otra palabra
"4,89,65,73,82,15,65"
Aqui da como resultado YAIR
ConvertString_FTanori("4,89,65,73,82")
Aqui da como resultado YAIRA
ConvertString_FTanori("4,89,65,73,82,15,65") ' Ya que hay 2 caracteres de mas y el 15 "es el cuadrito" 65 es "A" que se ve al final
Arreglo (0) = 4
Arreglo (1) = 89
Arreglo (2) = 65
Arreglo (3) = 73
Arreglo (4) = 82
Arreglo (5) = 15
Arreglo (6) = 65
Estariamos hablando de una cadena de longitud 6 por lo tanto la posicion cero que es la longitud de la cadena miente porque dice 4
Tu funcion daria el mismo resultado de esta manera
cadenanormal("6,89,65,73,82,15,65")
YAIRA
Saludos
F_Tanori:
--- Cita de: "Nilson Yair" ---Error Tanori
Miremos el sigueinte codigo:
--- Código: Text ---For i = LBound(AsciiCode) + 1 To UBound(AsciiCode) 'El limite superior no es el primer numero de la cadena?, o acaso es el numero de comas??
--- Fin de la cita ---
--- Código: Text ---LBound(AsciiCode) Dara como resultado 0 que es la posicion que guarda la longitud de la cadena
--- Código: Visual Basic ---LBound(AsciiCode) + 1
Solo la posicion 0 y despues convierte los caracteres de la cadena pasada como parametro, pero si hay que generar solo la longitud que viene en la cadena aqui esta el SP 1 :P
--- Código: Text ---Function ConvertString_FTanori(ByRef as_Cadena As String) As StringOn Error GoTo xError Dim i As Integer, AsciiCode AsciiCode = Split(as_Cadena, ",") For i = LBound(AsciiCode) + 1 To AsciiCode(0) If AsciiCode(i) <> Empty Then ConvertString_FTanori = ConvertString_FTanori & Format(Chr(AsciiCode(i)), " ") End If Next i xError: If Err.Number > 0 Then ConvertString_FTanori = Err.Description Err.Clear End IfEnd Function
Saludos
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa