Disculpe que moleste de nuevo!:S

Iniciado por Sai-To, 4 Noviembre 2007, 23:44 PM

0 Miembros y 1 Visitante están viendo este tema.

Sai-To

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!

HaDeS, -

#1
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:
Código (vb) [Seleccionar]

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

Sai-To

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!!

HaDeS, -

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:
Código (vb) [Seleccionar]

texto = "archivo|1000kb|c:\"

y haces un split a ese texto:
Código (vb) [Seleccionar]

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:
Código (vb) [Seleccionar]

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!