Resultados 1 al 8 de 8

Tema: necesito sus sugerencias

  1. #1 necesito sus sugerencias 
    Avanzado
    Fecha de ingreso
    Feb 2002
    Mensajes
    161
    Descargas
    15
    Uploads
    0
    Hola a todos aqui ando de nuevo.

    La cuestion es que tengo un MDIForm con el siguiente codigo

    Código:
    Option Explicit
    
    Private Sub MDIForm_Load()
     Form1.Show
     Form2.Show
     Form3.Show
    End Sub

    y este codigo se repite en los siguientes form1, form2 y form3

    Código:
    Option Explicit
    
    Dim ContenidoTextoRecibido As String
    
    Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
     Dim TextoRecibido As String
     Winsock1.GetData TextoRecibido
     ContenidoTextoRecibido = ContenidoTextoRecibido + TextoRecibido
     If Right(TextoRecibido, 7) <> "/\Fin/\" Then Exit Sub
     TextoRecibido = ContenidoTextoRecibido
     ContenidoTextoRecibido = ""
     'Procedimiento con el texto que se descargo
    End Sub
    
    Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
     Winsock1.Close
     Winsock1.Connect "168.15.6.X", 6584
    End Sub
    En el load de los form1 es donde hace la primera vez la conexion del socket

    Creen que existe un problema al usar este codigo, respecto a la variable
    ContenidoTextoRecibido ...
    PD: la Ip es inventada pero variaria no es la misma para todos
    Última edición por proteo1; 31-05-2008 a las 22:30
    Citar  
     

  2. #2  
    Medio
    Fecha de ingreso
    May 2002
    Ubicación
    Buenos Aires, Argent
    Mensajes
    95
    Descargas
    0
    Uploads
    0
    La verdad que no sabria ayudarte ya que no se Cual es el fin de lo que quieres Hacer.-

    Explica un poco mejor asi pueda ayudarte.-

    Salu2.-
    ŞαדαתђэớЪα
    ψ Hεll ψ Ω Heaven Ω
    Citar  
     

  3. #3  
    Moderador Global Avatar de hystd
    Fecha de ingreso
    Jul 2005
    Ubicación
    1, 11, 21, 1211...
    Mensajes
    1.596
    Descargas
    58
    Uploads
    0
    Buenas! No utilizo VB, y desconozco algunos aspectos... pero viendo el código tampoco hay que ser un as... está claro que la variable ContenidoTextoRecibido la usas como el almacen final para ir guardando (lo vas concatenando), con lo que llega del Socket en la variable TextoRecibido, que la usas como un bufer para ir cogiendo lo que llega.

    Entonces, veo algo extraño como es, asignar al bufer el contenido total (ContenidoTextoRecibido), luego limpias ContenidoTextoRecibido que es donde lo tenias todo guardado. Si has hecho el trabajo de ir guardandolo todo en ContenidoTextoRecibido, para qué lo limpias ahora? En tal caso, si en el procedimiento que usas para tratar el texto haces referencia a ContenidoTextoRecibido evidentemente no verás nada.

    Personalmente las lineas:

    TextoRecibido = ContenidoTextoRecibido
    ContenidoTextoRecibido = ""
    'Procedimiento con el texto que se descargo
    Lo pondría así:

    La primera linea desaparece;
    'Procedimiento con el texto que se descargo, usando la variable ContenidoTextoRecibido'
    ContenidoTextoRecibido="";

    Un saludo
    El optimista tiene ideas, el pesimista... excusas

    Citar  
     

  4. #4  
    Moderador HH
    Fecha de ingreso
    Mar 2003
    Ubicación
    Galiza
    Mensajes
    3.919
    Descargas
    8
    Uploads
    1
    Siguiendo por la linea de hystd, tu tienes esto:
    Dim TextoRecibido As String
    Winsock1.GetData TextoRecibido
    ContenidoTextoRecibido = ContenidoTextoRecibido + TextoRecibido
    If Right(TextoRecibido, 7) <> "/\Fin/\" Then Exit Sub
    TextoRecibido = ContenidoTextoRecibido
    ContenidoTextoRecibido = ""
    'Procedimiento con el texto que se descargo
    pues ya haría un pequeño cambio:
    Dim TextoRecibido As String
    ContenidoTextoRecibido = ""
    Winsock1.GetData TextoRecibido
    ContenidoTextoRecibido = ContenidoTextoRecibido + TextoRecibido
    If Right(TextoRecibido, 7) <> "/\Fin/\" Then Exit Sub
    TextoRecibido = ContenidoTextoRecibido
    'Procedimiento con el texto que se descargo
    Aunque con lo poco que muestras a lo mejor ya puede que hayas inicializado la variable (que en teoría te debería funcionar, pero si esta vacía -Empty- puede darte problemas)... en otro lugar, por ello hay la opción:

    Dim TextoRecibido As String
    Winsock1.GetData TextoRecibido
    if not(ContenidoTextoRecibido<>Empty) then
    ContenidoTextoRecibido=""
    End If
    ContenidoTextoRecibido = ContenidoTextoRecibido + TextoRecibido
    If Right(TextoRecibido, 7) <> "/\Fin/\" Then Exit Sub
    TextoRecibido = ContenidoTextoRecibido
    ContenidoTextoRecibido = ""
    'Procedimiento con el texto que se descargo
    Así si la variable no se uso nunca, pues la inicializas, y si ya fue inicializada pues no haces nada

    Un Saludo

    PD: hago lo de variable<>Empty y no variable=Empty, porque me encontre que esto me daba muchos problema en VBA y en VB6 también tuve un par de veces problemas con ello, por eso siempre uso la otra forma.
    He conocido muchos dioses. Quien niegue su existencia está tan ciego como el que confía en ellos con una fe desmesurada. Robert E. Howard
    La suerte ayuda a la mente preparada.
    Citar  
     

  5. #5  
    Avanzado
    Fecha de ingreso
    Feb 2002
    Mensajes
    161
    Descargas
    15
    Uploads
    0
    Hola a todos y gracias por sus opiniones.

    quizas me apresure poniendo, jejeje

    el caso es que esto:

    If Right(TextoRecibido, 7) <> "/\Fin/\" Then Exit Sub
    TextoRecibido = ContenidoTextoRecibido
    ContenidoTextoRecibido = ""
    El caso es que digamos que cada HIJO recibe un archivo de 300kb o mas, y sabe que ha terminado cuando le llega al ultimo la cadena /\Fin/\ ahi es cuando se que ha terminado de llegar lo que se envio, asi que asigno la variable a otra y limpio en donde llega todo porque lo que llego, llego y ahi es donde procede todo

    aqui

    TextoRecibido = ContenidoTextoRecibido
    ContenidoTextoRecibido = ""
    Paso el contenido a la variable TextoRecibido y libro la de ContenidoTextoRecibido, para llamar a otra funcion y dejar limpia la variable por si estoy procesando o guardando lo que llego y no me preocupo de que llegen datos de mas.

    en si la pregunta seria: creen que exista problema entre las variables de ContenidoTextoRecibido entre los demas HIJOS???

    grax por sus comentarios se los agradesco mucho. y los considero para usar una variable menos y cargar todo en el mismo SUB
    Citar  
     

  6. #6  
    Medio
    Fecha de ingreso
    May 2002
    Ubicación
    Buenos Aires, Argent
    Mensajes
    95
    Descargas
    0
    Uploads
    0
    Yocreo que si que vas a tener problemas ... solo prueba.. en su defecto puedes usar un modulo y ahi usas ese modulo para llamar a la variable y Obviamente solo usas una sola variable para todos los "hijos" ...

    EJ:
    en un modulo llamado RECIBIDO(o como quieras llamarlo) poner :
    Código:
    Option Explicit
    Public ContenidoTextoRecibido As String
    Luego en los furmularios "hijos" usas como normalmente usarias la variable "ContenidoTextoRecibido" pero llamando al modulo:
    Código:
    If Right(TextoRecibido, 7) <> "/\Fin/\" Then Exit Sub
    TextoRecibido = RECIBIDO.ContenidoTextoRecibido
    RECIBIDO.ContenidoTextoRecibido = ""
    Verifica y despues dinos..
    SALUDOS.-
    ŞαדαתђэớЪα
    ψ Hεll ψ Ω Heaven Ω
    Citar  
     

  7. #7  
    Avanzado
    Fecha de ingreso
    Feb 2002
    Mensajes
    161
    Descargas
    15
    Uploads
    0
    Cita Iniciado por Satanheoba Ver mensaje
    Yocreo que si que vas a tener problemas ... solo prueba.. en su defecto puedes usar un modulo y ahi usas ese modulo para llamar a la variable y Obviamente solo usas una sola variable para todos los "hijos" ...
    hola que tal, no estoy usando ningun modulo.

    el caso poniendolo de otra forma, estoy haciendo un server, que controla varios clientes y al conectarse cada uno de los clientes.

    estos mandan un archivo digamos de 1 mega aprox de un KEYLOGER, entonces cada cliente manda un archivo diferente que ocupara procesar de manera independiente, asi que cada FORM1 FORM2 y FORM3 recibe archivos diferentes y en algun dado caso que se conecten los tres al mismo tiempo creen que tenga problemas con la variable ContenidoTextoRecibido que esta dada de alta en cada FORM....

    para asi al recibir el archivo completo que finaliza cuando llega esto "/\Fin/\" y pueda procesarse y mostrarse.

    creen que exista algun problema porque en los FORMs existe una variable del mismo nombre pero es privada porque no la usao en ningun MODULO sino solo en cada FORM....

    gracias por sus comentarios se los agradesco bastantes, y todos son considerados, para poder continuar con esto
    Citar  
     

  8. #8  
    Moderador HH
    Fecha de ingreso
    Sep 2003
    Mensajes
    1.384
    Descargas
    21
    Uploads
    5
    Cita Iniciado por proteo1 Ver mensaje
    creen que exista algun problema porque en los FORMs existe una variable del mismo nombre pero es privada porque no la usao en ningun MODULO sino solo en cada FORM....

    Creo que te estas contestando vos mismo, si la variable es privada, no hay forma de accederla desde otro modulo o formulario.
    Incluso hasta podrias declararla como public, y de esta manera accederla como Form1.ContenidoTextoRecibido sin miedo de que se modifique ContenidoTextoRecibido en Form2 o Form3.


    Saludos
    - Me desagrada
    - ¿Por qué?
    - No estoy a su altura.
    ¿Ha respondido así alguna vez un hombre?

    Friedrich Nietzsche



    Citar  
     

Temas similares

  1. Sugerencias para pillar a un estafador.
    Por joroma en el foro INTRUSION
    Respuestas: 3
    Último mensaje: 24-08-2012, 20:44
  2. comprar una deco. dudas y sugerencias
    Por ROCKBOY en el foro TV CABLE
    Respuestas: 0
    Último mensaje: 15-04-2009, 17:13
  3. Deco con TDT, sugerencias
    Por Jack2000 en el foro DIGITAL+
    Respuestas: 6
    Último mensaje: 08-05-2007, 19:17
  4. Críticas y Sugerencias: página web!
    Por Lazaro en el foro OFF-TOPIC
    Respuestas: 30
    Último mensaje: 25-08-2003, 18:37
  5. Pido Sugerencias.
    Por Lazaro en el foro JUEGOS
    Respuestas: 8
    Último mensaje: 04-02-2003, 22:00

Marcadores

Marcadores

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •