Hola bueno como sabran estoy comenzando de nuevo a Estudiar VB y veo que no se varias cosas pero disculpen que los vuelva a molestar, pero necesito una ayuda en este codigo! :huh:
Private Sub ws_DataArrival(ByVal bytesTotal As Long)
On Error Resume Next
Dim datos As String, dato As Variant
ws.GetData datos
If datos = "enviar" Then
ws.SendData filedata
End If
If datos = "recibido" Then
'ws.SendData "cierra"
End If
If Left(datos, 7) = "archivo" Then
send = True
dato = Split(datos, "|")
filesize = dato(1)
path = dato(2)
ws.SendData "enviar"
datos2 = ""
Else
If Len(datos2) <> filesize And send = True Then
datos2 = datos2 + datos
End If
If Len(datos2) = filesize And send = True Then
ws.SendData "recibido"
Open path For Binary As #1
Put #1, 1, datos2
Close #1
End If
End If
If Left(datos, 5) = "coger" Then
datos = Mid(datos, 6)
Open datos For Binary As #1
filedata = Input(LOF(1), 1)
Close #1
filesize = Len(filedata)
ws.SendData "archivo" & filesize
End If
End Sub
Bueno en la parte de:
Citardato = Split(datos, "|")
Me dice que no tiene Function o Sub, osea la Variable que no declare la Variable!
Disculpen mi ESTUPIDA Ignorancia y pregunta, pero como lo soluciono no encuentro manera! :huh:
Salu2's!
Depronto es que no hay ningún "|" en los datos que mandas al winsock.
Si si los mandas, postea el código entero, o mandamelo por pm lo reviso bien :P
Saludos!
Editado:
Private Sub subb(datos)
If Left(datos, 7) = "archivo" Then
dato = Split(datos, "|")
filesize = dato(1)
Path = dato(2)
MsgBox filesize
MsgBox Path
End If
End Sub
Private Sub Command1_Click()
subb "archivo|1000kb|c:\"
End Sub
Me funciona al 100% :P
Saludos hades bueno mira disculpa que no te haya especificado!:S pero me muestra que no declare la variable en esto:
CitarSplit
en el Split, que tendria que hacer aqui el mismo procedimiento que me dijistes al comienzo?
Salu2's!
Y disculpa las molestias!!
Lo que hace el split es separar los datos teniendo un delimitador, en este caso es que delimita los datos es el "|".
Si tenes esto:
texto = "archivo|1000kb|c:\"
y haces un split a ese texto:
split(texto, "|")
el texto se dividirá en varias partes.
la primera parte contendrá: "archivo", la segunda "1000kb" y la tercera "c:\"
El split es una función que trae el visual y no tenes porque declararla, lo que te había dicho antes, era que de seguro no estabas mandando una cadena con "|", ya que si el split no encuentra algún "|" en la parte del código que es:
filesize = dato(1)
Path = dato(2)
sale un error diciendo que el subíndice está fuera del intervalo.
bueno, espero me haya explicado bien.
si tenes option explicit al principio del proyecto, quitáselo y mira a ver si te funciona.
Saludos!