Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/01/2010, 16:03
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 18 años, 9 meses
Puntos: 29
Respuesta: Ayuda con Winsock!!!

No tengo experiencia con winsock, pero despues de mas o menos descifrar tu código se me ocurre que quizá algún grupo de datos contiene los caracteres "LAR" o "EMA".
Quizá si añades al comienzo de los datos algo nuevo como "DAT" y lo usas para reconocer los datos consigas al menos evitar esa posibilidad.
Lo demás, si el nombre y longitud te aparecen bien con la funcion infoarchivo y el fichero que mandas tiene la longitud debida no veo donde puede fallar.
Con la longitud debida me refiero a que esta parte:

Código vb:
Ver original
  1. Open urlFile.Text For Binary As #1
  2.             barra.Min = 0
  3.             barra.Max = LOF(1)
  4.             Do While Not EOF(1)
  5.                 DoEvents
  6.                 Get #1, , Buf
  7.                 Todo = Todo & Buf
  8.                 If Len(Todo) <= barra.Max Then barra.Value = Len(Todo)
  9.             Loop
  10.         Close
La cambiaria por un simple:

Código vb:
Ver original
  1. Open urlFile.Text For Binary As #1
  2.             Todo = Input(LOF(1), 1)
  3.         Close
porque los loops esos nunca me han gustado

Suerte

PD: Lo del "DAT" puede que no se pueda hacer si los datos vienen en bloques aunque los mandes de una sola vez, (ya digo que no tengo experiencia, aunque si algunos conocimientos en comunicaciones), de modo que el DAT no se puede poner, pero deberías poder saltar las comparaciones de "LAR" y "EMA" cuando se supone que solo van a venir datos.

Algo asi:

Código vb:
Ver original
  1. Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
  2.     Dim Texto As String
  3.    
  4.     Winsock1.GetData Texto
  5.    
  6.   If Len(Archivo) >= Largo Then
  7.  
  8.     If Mid(Texto, 1, 3) = "EMA" Then
  9.         infoarchivo (Texto)
  10.         Exit Sub
  11.     End If
  12.  
  13.   Else  
  14.  
  15.   ' Si Len(Archivo) < Longitud es que ya hay nombre y longitud y esperamos datos
  16.  
  17.     Archivo = Archivo & Texto
  18.    
  19.     If Len(Archivo) >= Largo Then
  20.         Common.DialogTitle = "Guardar archivo..."
  21.         Common.FileName = nameFile.Caption
  22.         Common.ShowSave
  23.         Open Common.FileName For Binary As #1
  24.             Put #1, , Archivo
  25.             Largo = 0
  26.             Archivo = ""
  27.         Close #1
  28.     End If
  29.  
  30.   End If
  31.  
  32. End Sub
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!

Última edición por pkj; 15/01/2010 a las 16:26