Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Sai-To en 4 Noviembre 2007, 23:44 pm



Título: Disculpe que moleste de nuevo!:S
Publicado por: Sai-To en 4 Noviembre 2007, 23:44 pm
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:

Código:
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:

Citar
    dato = 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!


Título: Re: Disculpe que moleste de nuevo!:S
Publicado por: HaDeS, - en 5 Noviembre 2007, 01:52 am
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
  1. Private Sub subb(datos)
  2. If Left(datos, 7) = "archivo" Then
  3. dato = Split(datos, "|")
  4. filesize = dato(1)
  5. Path = dato(2)
  6. MsgBox filesize
  7. MsgBox Path
  8. End If
  9. End Sub
  10.  
  11. Private Sub Command1_Click()
  12. subb "archivo|1000kb|c:\"
  13. End Sub
  14.  
Me funciona al 100% :P


Título: Re: Disculpe que moleste de nuevo!:S
Publicado por: Sai-To en 5 Noviembre 2007, 22:28 pm
Saludos hades bueno mira disculpa que no te haya especificado!:S pero me muestra que no declare la variable en esto:

Citar
Split

en el Split, que tendria que hacer aqui el mismo procedimiento que me dijistes al comienzo?

Salu2's!

Y disculpa las molestias!!


Título: Re: Disculpe que moleste de nuevo!:S
Publicado por: HaDeS, - en 5 Noviembre 2007, 23:26 pm
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
  1. texto = "archivo|1000kb|c:\"
  2.  
y haces un split a ese texto:
Código
  1. split(texto, "|")
  2.  
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
  1. filesize = dato(1)
  2. Path = dato(2)
  3.  
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!