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 - Eleкtro

#2561
Hola.

A ver si por casualidad hay algún aficionado al baloncesto en el foro y que sepa un poco de apuestas de baloncesto para poder resolver una duda básica que tengo...

Vamos a ver, tomando este partido como ejemplo:

-10 Equipo_A  vs. Equipo_B +10

Si yo apuesto en ese momento al Hándicap del Equipo_A, es decir -10, ¿cuales son las condiciones que se tienen que dar en el marcador final de puntos del partido para que mi apuesta resulte ganadora?.

Si yo apuesto por el Equipo_A con ese Hándicap de -10 puntos, lo que pienso o lo que interpreto desde mi completa ignorancia es que para que la apuesta resulte ganadora la única condición que se ha de dar es que el Hándicap del Equipo_A se mantenga en un valor negativo (-1) hasta el final del partido. Por ese motivo, yo lo que hago es esperar hasta la mitad del 4º tiempo del partido y si uno de los equipos tiene un Hándicap de digamos -20 puntos (de lo contrario no apuesto por ninguno de los equipos, diréctamente ignoro el partido), apuesto a ese equipo, y gano la apuesta (por que no le llegan a meter 20 puntos al equipo por el que yo aposté), esto no me ha fallado en las apuestas que he echo hasta ahora, pero creo que a pesar de estar ganando consecutivamente quizás sea la suerte del novato y no lo estoy haciendo bien ...con sensatéz, por que no sé muy bien a lo que estoy apostando la verdad, quizás me estoy equivocando con mi interpretación del Hándicap en las apuestas de baloncesto.

Quiero aclarar que no tengo demasiado claro el concepto del Hándicap, y he mirado el siguiente video pero sigo teniendo mis dudas al respecto:

[youtube=640,360]https://www.youtube.com/watch?v=s3Qv9Ph87pA[/youtube]

...y digo que tengo dudas despues de haber visto el video, por que lo que se explica en ese video (la suma/resta en el marcador final de puntos) en mi opinión no concuerda con lo que yo he visto en las apuestas que he ganado, o tal vez si, ¡no sé!, yo solo veo que solo gano la apuesta si apuesto por un equipo con un buen hándicap negativo (ej. -20) y si ese hándicap se mantiene en valor negativo la apuesta sale vencida. Tengo la cabeza echa un lío. Vuelvo a repetir la pregunta:

Si yo apuesto en ese momento al Hándicap del Equipo_A, es decir -10, ¿cuales son las condiciones que se tienen que dar en el marcador final de puntos del partido para que mi apuesta resulte ganadora?.

Gracias por adelantado.
#2562
Cita de: aspiazu en  8 Abril 2017, 11:09 AMcomo puedo hacer que busque png y jpg? y lo mismo con exe y lnk?

En el caso de que Unity permita el uso de LINQ (.NET Framework +3.5):

Código (csharp) [Seleccionar]
DirectoryInfo dir = new DirectoryInfo(@"C:\Directory\");
IEnumerable<FileInfo> files =
   from file in dir.EnumerateFiles("*.*", SearchOption.AllDirectories)
   where new string[] { ".png", ".jpg" }.Contains(file.Extension, StringComparer.OrdinalIgnoreCase)
   select file;

foreach (FileInfo file in files) {
   Console.WriteLine(file.FullName);
}


En el caso contrario:
Código (csharp) [Seleccionar]
DirectoryInfo dir = new DirectoryInfo(@"C:\Directory\");
FileInfo[] files =
    Array.FindAll(dir.GetFiles("*.*", SearchOption.AllDirectories),
                  file => new string[] { ".png",".jpg" }.Contains(file.Extension, StringComparer.OrdinalIgnoreCase));

foreach (FileInfo file in files) {
   Console.WriteLine(file.FullName);
}


¡Saludos!
#2563
La que estás liando, jeje.

Cita de: LeandroA en  7 Abril 2017, 07:07 AMsupongo que hay una forma mas profesional de hacer una desinstalacion desatendida.

Para llevar a cabo una desinstalación desatendida ya no de forma profesional, sino de forma sensata, lo primero que debiste hacer es documentarte sobre los argumentos command-line que acepta el tipo de desinstalador en cuestión; no es necesario llevar a cabo metodologías rebuscadas con la API de Windows, tan solo buscar información sobre cual es la forma guiada que un installer-builder proporciona para desinstalar un producto de forma desatendida.




Los archivos con nombre "unins000" hacen referencia a un desinstalador creado por el installer-builder Inno Setup, por ende puedes pasarle el argumento /s o también /silent (ambos argumentos completamente en minúscula) para desinstalarlo de forma silenciosa:
"unins000.exe" /silent

...Esto seguirá mostrando la UI, pero sin interacción con el usuario. Si quieres ocultar la ventana es decisión tuya.




Cita de: LeandroA"C:\ProgramData\Package Cache\{246dcb72-b18c-4ab9-9de9-8a996296b01d}\vcredist_x86.exe"  /uninstall

Para los desinstaladores de Microsoft (MSI) en la mayoría de los casos puedes utilizar la siguiente sintaxis:
"vcredist_x86.exe"  /uninstall /quiet
"setup.msi"         /uninstall /quiet

...Puedes reemplazar el argumento /quiet por /passive si prefieres mostrar una UI con el progreso de desinstalación, sin interacción con el usuario.

Puedes llamar al desinstalador pasándole el argumento "/?" para mostrar los argumentos disponibles por defecto:
"setup.msi" /?

...Ten en cuenta que eso no incluye argumentos creados por el autor del instalador.




Cita de: LeandroAMsiExec.exe /X{1D8E6291-B0D5-35EC-8441-6616F567A0F7}

Para una desinstalación usando la versión command-line de MSI, MsiExec.exe, puedes usar la siguiente sintaxis:

MsiExec.exe /quiet /X {1D8E6291-B0D5-35EC-8441-6616F567A0F7}

...y de nuevo también puedes pasarle el argumento /passive si lo prefieres.




Cita de: LeandroAC:\Program Files (x86)\InstallShield Installation Information\{9D3D8C60-A5EF-4123-B2B9-172095903AB}\Install.exe -uninst -l0xA

Para los desinstaladores de InstallShield se requiere un poco más de esfuerzo realizando el siguiente paso previo a la desinstalación:




Etcétera con el resto de tipos de instaladores. Si no estás seguro de a que tipo de instalador pertenece un executable, puedes intentar pasarle argumentos de ayuda al executable a ver si te muestra algo (-h | --h | -help | --help | /?) o puedes analizar el PE con cualquier software dedicado a ello como por ejemplo TridNet o PEInfo, y a partir de eso cuando averigues el tipo de instalador te documentas en Google sobre los argumentos de desinstalación desatendida, o diréctamente en la web del producto.




Cita de: LeandroA en  8 Abril 2017, 08:07 AMNo se porque movieron el tema a este foro si era de programacion no buco un progama de terceros

Yo no moví el post, pero aunque el planteamiento inicial de tu pregunta estuvo enfocada a la programación, en mi opinión (desde mi punto de vista personal) la solución no tiene que ver con la programación, sino más bien con el entendimiento del uso básico de un software dedicado a la creación de instaladores, lo cual se podría catalogar como una duda de software bajo Windows (desde mi punto de vista personal, insisto).

¡Saludos!
#2564
Cita de: Astergoth en  8 Abril 2017, 00:12 AMidiomas

Cita de: Astergoth en  8 Abril 2017, 00:12 AMpodeis dar algun consejo

Hola.

Mi primer consejo es que en lo referente a la programación debes intentar empezar a hablar con propiedad de la palabra. Si vas a una entrevista de trabajo y dices que sabes 3 idiomas y uno de ellos es Python, te van a tomar por burro.

Según la RAE, el término Idioma se refiere sólamente a la lengua verbal de un pueblo o nación.

Esto no son idiomas, son lenguajes de programación.




Cita de: Astergoth en  8 Abril 2017, 01:09 AMuso un teclado de los pequeños inalambricos y no puedo hacer los ejercicios de while a causa de que no encuento el simbolo "<" xD.

Pues empezamos bien...

Si vas a introducirte en el inmenso mundo de la programación, cómprate un teclado normal que disponga de un acceso fácil a los típicos símbolos reservados que comparten la mayoría de lenguajes de programación. < > ( ) { } / \ [ ] = + - * # " ' % etc...

No sé que sentido puede tener darte ningún consejo en plan serio sobre la programación mientras sigas limitándote a ti mismo de esa manera, ya que no puedes programar si no puedes escribir la sintaxis del lenguaje...




Cita de: Astergoth en  8 Abril 2017, 01:09 AMAprendiendo python me seria mas facil aprender después otros idiomas?

Te facilitaría la comprensión al manejo de otros lenguajes de la misma manera que si aprendieras cualquier otro lenguaje de programación. Simplemente irías con algunos conceptos aprendidos.

Python es una buena elección para empezar, pero no caigas en el error de atribuirle a Python la etiqueta de "el mejor lenguaje", no hay ningún "mejor lenguaje".

¡Saludos!
#2565
Determinar si dos colores son similares

Código (vbnet) [Seleccionar]
   ''' ----------------------------------------------------------------------------------------------------
   ''' <summary>
   ''' Determines whether two colors are similar.
   ''' <para></para>
   ''' It compares the RGB channel differences to match inside the range of the specified tolerance values.
   ''' </summary>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <param name="color1">
   ''' The first color to compare.
   ''' </param>
   '''
   ''' <param name="color2">
   ''' The second color to compare.
   ''' </param>
   '''
   ''' <param name="toleranceR">
   ''' The tolerance of the Red color channel.
   ''' From 0 to 255.
   ''' </param>
   '''
   ''' <param name="toleranceG">
   ''' The tolerance of the Green color channel.
   ''' From 0 to 255.
   ''' </param>
   '''
   ''' <param name="toleranceB">
   ''' The tolerance of the Blue color channel.
   ''' From 0 to 255.
   ''' </param>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <returns>
   ''' <see langword="True"/> if the colors are similar,
   ''' this means the RGB differences matches inside the range of the specified tolerance value,
   ''' <see langword="False"/> otherwise.
   ''' </returns>
   ''' ----------------------------------------------------------------------------------------------------
   Public Shared Function IsColorSimilar(ByVal color1 As Color, ByVal color2 As Color,
                                         ByVal toleranceR As Byte, ByVal toleranceG As Byte, ByVal toleranceB As Byte) As Boolean

       Return Math.Abs(CInt(color1.R) - color2.R) <= toleranceR AndAlso
              Math.Abs(CInt(color1.G) - color2.G) <= toleranceG AndAlso
              Math.Abs(CInt(color1.B) - color2.B) <= toleranceB

   End Function


Modo de empleo:
Código (vbnet) [Seleccionar]
Dim areSimilar As Boolean = IsColorSimilar(Color.FromArgb(0, 0, 0), Color.FromArgb(0, 0, 1),
                                          toleranceR:=0, toleranceG:=0, toleranceB:=1)
' Result: True


Código (vbnet) [Seleccionar]
   ''' ----------------------------------------------------------------------------------------------------
   ''' <summary>
   ''' Determines whether two colors are similar.
   ''' <para></para>
   ''' It compares the RGB channel difference to match inside the range of the specified tolerance value.
   ''' </summary>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <param name="color1">
   ''' The first color to compare.
   ''' </param>
   '''
   ''' <param name="color2">
   ''' The second color to compare.
   ''' </param>
   '''
   ''' <param name="tolerance">
   ''' The global tolerance of the RGB color channels.
   ''' From 0 to 255.
   ''' </param>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <returns>
   ''' <see langword="True"/> if the colors are similar,
   ''' this means the RGB differences matches inside the range of the specified tolerance value,
   ''' <see langword="False"/> otherwise.
   ''' </returns>
   ''' ----------------------------------------------------------------------------------------------------
   Public Shared Function IsColorSimilar(ByVal color1 As Color, ByVal color2 As Color, ByVal tolerance As Byte) As Boolean

       Return (Math.Abs(CInt(color1.R) - color2.R) +
               Math.Abs(CInt(color1.G) - color2.G) +
               Math.Abs(CInt(color1.B) - color2.B)) <= tolerance

   End Function


Modo de empleo :

Código (vbnet) [Seleccionar]
Dim result1 As Boolean = IsColorSimilar(Color.FromArgb(0, 0, 0), Color.FromArgb(0, 0, 1), tolerance:=1)
' Result: True
'  Logic: Blue channel difference = 1, which is equal than the specified tolerance value.

Dim result2 As Boolean = IsColorSimilar(Color.FromArgb(0, 0, 0), Color.FromArgb(0, 1, 1), tolerance:=1)
' Result: False
'  Logic: Red channel + Blue channel differences = 2, which is a bigger value than the specified tolerance value.





Voltear una imagen

Código (vbnet) [Seleccionar]
''' ----------------------------------------------------------------------------------------------------
''' <summary>
''' Specifies a flip type operation to perform for an image.
''' </summary>
''' ----------------------------------------------------------------------------------------------------
Public Enum FlipType As Integer

   ''' <summary>
   ''' Horizontal flip.
   ''' </summary>
   Horizontal = 1

   ''' <summary>
   ''' Vertical flip.
   ''' </summary>
   Vertical = 2

   ''' <summary>
   ''' Both a horizontal and vertical flip.
   ''' </summary>
   Both = 3

End Enum

public module ImageExtensions

''' ----------------------------------------------------------------------------------------------------
''' <summary>
''' Flips an <see cref="Image"/>.
''' </summary>
''' ----------------------------------------------------------------------------------------------------
''' <param name="sender">
''' The source <see cref="Image"/>.
''' </param>
'''
''' <param name="fliptype">
''' The flip type operation to perform.
''' </param>
''' ----------------------------------------------------------------------------------------------------
''' <returns>
''' The resulting <see cref="Image"/>.
''' </returns>
''' ----------------------------------------------------------------------------------------------------
<Extension>
<DebuggerStepThrough>
<EditorBrowsable(EditorBrowsableState.Always)>
Public Function Flip(ByVal sender As Image, ByVal fliptype As FlipType) As Image

   Dim flippedImage As New Bitmap(sender.Width, sender.Height, sender.PixelFormat)

   Using g As Graphics = Graphics.FromImage(flippedImage)

       Dim m As Matrix = Nothing
       Select Case fliptype
           Case FlipType.Horizontal
               m = New Matrix(-1, 0, 0, 1, 0, 0)
               m.Translate(flippedImage.Width, 0, MatrixOrder.Append)

           Case FlipType.Vertical
               m = New Matrix(1, 0, 0, -1, 0, 0)
               m.Translate(0, flippedImage.Height, MatrixOrder.Append)

           Case FlipType.Both
               m = New Matrix(-1, 0, 0, -1, 0, 0)
               m.Translate(flippedImage.Width, flippedImage.Height, MatrixOrder.Append)
       End Select

       ' Draw
       g.Transform = m
       g.DrawImage(sender, 0, 0)

       'clean up
       m.Dispose()
   End Using

   Return flippedImage

End Function

end module


Modo de empleo:

Código (vbnet) [Seleccionar]
dim img as image = image.fromfile("C:\file.png")
dim flipped as image=  imf.Flip(FlipType.Vertical)





Cifrado XOR

Código (vbnet) [Seleccionar]
''' ----------------------------------------------------------------------------------------------------
''' <summary>
''' Encrypts or decrypts a string using XOR algorithm.
''' </summary>
''' ----------------------------------------------------------------------------------------------------
''' <param name="text">
''' The text to encrypt.
''' </param>
'''
''' <param name="key">
''' The key to use for encryption of decryption.
''' </param>
''' ----------------------------------------------------------------------------------------------------
''' <returns>
''' The encrypted string.
''' </returns>
''' ----------------------------------------------------------------------------------------------------
<DebuggerStepThrough>
Public Shared Function XorEncryptOrDecrypt(ByVal text As String, ByVal key As Integer) As String

   Dim sb As New StringBuilder(text.Length, text.Length)
   For Each c As Char In text
       ' Get the ASCII value of the character.
       Dim charValue As Integer = Convert.ToInt32(c)
       ' XOR the value.
       charValue = (charValue Xor key)
       ' Convert back to string.
       sb.Append(Char.ConvertFromUtf32(charValue))
   Next
   
   Return sb.ToString()

End Function


Modo de empleo:
Código (vbnet) [Seleccionar]
Dim str As String = "Hello World"
Dim encrypted As String = XorEncryptOrDecrypt(str, 1)       ' Result: "Idmmn!Vnsme"
Dim decrypted As String = XorEncryptOrDecrypt(encrypted, 1) ' Result: "Hello World"





Obtener un array con los bytes del archivo de la aplicación actual

Código (vbnet) [Seleccionar]
''' ----------------------------------------------------------------------------------------------------
''' <summary>
''' Gets the bytes of the local file that points to the running assembly.
''' </summary>
''' ----------------------------------------------------------------------------------------------------
''' <value>
''' A <see cref="Byte()"/> array containing the bytes of the local file that points to the running assembly.
''' </value>
''' ----------------------------------------------------------------------------------------------------
Public Shared ReadOnly Property SelfBytes As Byte()
   <DebuggerStepThrough>
   Get
       Using fs As FileStream = File.OpenRead(System.Windows.Forms.Application.ExecutablePath)
           Dim exeBytes As Byte() = New Byte(CInt(fs.Length - 1)) {}
           fs.Read(exeBytes, 0, exeBytes.Length)
           Return exeBytes
       End Using
   End Get
End Property


Modo de empleo:
Código (vbnet) [Seleccionar]
Dim selfBytes As Byte() = SelfBytes()




Obtener recursos embedidos en un ensamblado .NET

Código (vbnet) [Seleccionar]
Partial Public NotInheritable Class ResourceUtil

   ''' ----------------------------------------------------------------------------------------------------
   ''' <summary>
   ''' Gets an embedded resource in the specified <see cref="Assembly"/>.
   ''' </summary>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <param name="name">
   ''' The name of the resource.
   ''' </param>
   '''
   ''' <param name="ass">
   ''' The <see cref="Assembly"/> to look for the resource.
   ''' </param>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <returns>
   ''' A <see cref="Byte()"/> array containing the bytes of the embedded resource.
   ''' </returns>
   ''' ----------------------------------------------------------------------------------------------------
   Public Shared Function GetEmbeddedResource(ByVal name As String, ByVal ass As Assembly) As Byte()

       name = ResourceUtil.FormatResourceName(name, ass)

       Using resx As Stream = ass.GetManifestResourceStream(name)

           If (resx Is Nothing) Then
               Throw New Exception("Resource not found in the specified .NET assembly.")

           Else
               Dim content As Byte() = New Byte(CInt(resx.Length - 1)) {}
               resx.Read(content, 0, content.Length)
               Return content

           End If

       End Using

   End Function

   ''' ----------------------------------------------------------------------------------------------------
   ''' <summary>
   ''' Gets an embedded resource in the calling assembly.
   ''' </summary>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <param name="name">
   ''' The name of the resource.
   ''' </param>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <returns>
   ''' A <see cref="Byte()"/> array containing the bytes of the embedded resource.
   ''' </returns>
   ''' ----------------------------------------------------------------------------------------------------
   Public Shared Function GetEmbeddedResource(ByVal name As String) As Byte()

       Return ResourceUtil.GetEmbeddedResource(name, Assembly.GetCallingAssembly())

   End Function

   ''' ----------------------------------------------------------------------------------------------------
   ''' <summary>
   ''' Gets an embedded resource of type <see cref="String"/> in the specified <see cref="Assembly"/>.
   ''' </summary>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <param name="name">
   ''' The name of the resource.
   ''' </param>
   '''
   ''' <param name="ass">
   ''' The <see cref="Assembly"/> to look for the resource.
   ''' </param>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <returns>
   ''' The embedded resource as <see cref="String"/>.
   ''' </returns>
   ''' ----------------------------------------------------------------------------------------------------
   Public Shared Function GetEmbeddedResourceAsString(ByVal name As String, ByVal ass As Assembly, Optional ByVal enc As Encoding = Nothing) As String

       If (enc Is Nothing) Then
           enc = Encoding.Default
       End If

       name = ResourceUtil.FormatResourceName(name, ass)

       Using resx As Stream = ass.GetManifestResourceStream(name)

           If (resx Is Nothing) Then
               Throw New Exception("Resource not found in the specified .NET assembly.")
           Else
               Using reader As New StreamReader(resx, enc)
                   Return reader.ReadToEnd()
               End Using
           End If

       End Using

   End Function

   ''' ----------------------------------------------------------------------------------------------------
   ''' <summary>
   ''' Gets an embedded resource of type <see cref="String"/> in the calling assembly.
   ''' </summary>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <param name="name">
   ''' The name of the resource.
   ''' </param>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <returns>
   ''' The embedded resource as <see cref="String"/>.
   ''' </returns>
   ''' ----------------------------------------------------------------------------------------------------
   Public Shared Function GetEmbeddedResourceAsString(ByVal name As String, Optional ByVal enc As Encoding = Nothing) As String

       Return ResourceUtil.GetEmbeddedResourceAsString(name, Assembly.GetCallingAssembly(), enc)

   End Function

   ''' ----------------------------------------------------------------------------------------------------
   ''' <summary>
   ''' Gets an embedded resource of type <see cref="Image"/> in the specified <see cref="Assembly"/>.
   ''' </summary>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <param name="name">
   ''' The name of the resource.
   ''' </param>
   '''
   ''' <param name="ass">
   ''' The <see cref="Assembly"/> to look for the resource.
   ''' </param>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <returns>
   ''' The embedded resource as <see cref="Image"/>.
   ''' </returns>
   ''' ----------------------------------------------------------------------------------------------------
   Public Shared Function GetEmbeddedResourceAsImage(ByVal name As String, ByVal ass As Assembly) As Image

       name = ResourceUtil.FormatResourceName(name, ass)

       Using resx As Stream = ass.GetManifestResourceStream(name)

           If (resx Is Nothing) Then
               Throw New Exception("Resource not found in the specified .NET assembly.")
           Else
               Using ms As New MemoryStream()
                   resx.CopyTo(ms)
                   Return Image.FromStream(ms)
               End Using

           End If

       End Using

   End Function

   ''' ----------------------------------------------------------------------------------------------------
   ''' <summary>
   ''' Gets an embedded resource of type <see cref="Image"/> in the calling assembly.
   ''' </summary>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <param name="name">
   ''' The name of the resource.
   ''' </param>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <returns>
   ''' The embedded resource as <see cref="Image"/>.
   ''' </returns>
   ''' ----------------------------------------------------------------------------------------------------
   Public Shared Function GetEmbeddedResourceAsImage(ByVal name As String) As Image

       Return ResourceUtil.GetEmbeddedResourceAsImage(name, Assembly.GetCallingAssembly())

   End Function

   ''' ----------------------------------------------------------------------------------------------------
   ''' <summary>
   ''' Formats a resource name.
   ''' </summary>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <param name="name">
   ''' The name of the resource.
   ''' </param>
   '''
   ''' <param name="ass">
   ''' The assembly that contains the resource.
   ''' </param>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <returns>
   ''' The resulting formatted resource name.
   ''' </returns>
   ''' ----------------------------------------------------------------------------------------------------
   Private Shared Function FormatResourceName(ByVal name As String, ByVal ass As Assembly) As String

       Return String.Format("{0}.{1}", ass.GetName().Name, name.Replace(" ", "_").
                                                                Replace("\", ".").
                                                                Replace("/", "."))

   End Function

End Class


Ejemplo de uso para la aplicación actual:
Código (vbnet) [Seleccionar]
Dim data As Byte() = GetEmbeddedResource("file.txt")
Dim dataAsString As String = Encoding.Default.GetString(data)

Dim str As String = GetEmbeddedResourceAsString("file.txt", Encoding.Default)

Dim img As Image = GetEmbeddedResourceAsImage("file.png")


Ejemplo de uso con un ensamblado específico:
Código (vbnet) [Seleccionar]
Dim data As Byte() = GetEmbeddedResource("file.txt", Assembly.GetCallingAssembly())
Dim dataAsString As String = Encoding.Default.GetString(data)

Dim str As String = GetEmbeddedResourceAsString("file.txt", Assembly.GetCallingAssembly(), Encoding.Default)

Dim img As Image = GetEmbeddedResourceAsImage("file.png", Assembly.GetCallingAssembly())





Todas estas funcionalidades y muchísimas más las podrán encontrar en mi Framework ElektroKit.
#2566
Cita de: dato000 en  7 Abril 2017, 00:44 AMyo discrepo en una cosa:

Eso es digamos, tecnicamente recomendable, sino embargo en muchos casos...

En muchos casos si, por supuesto, pero no en este. Por eso escribí lo que no citaste, lo que puse entre paréntesis para remarcar que solo me estaba refiriendo a este ejemplo:

Cita de: ElektroY las clases no deben ser declaradas dentro de otra clase (en ese ejemplo que has escrito no).

¡Saludos!
#2567
Cita de: P3N1CH3 en  6 Abril 2017, 03:18 AMLo deje de jugar como por 2 años y un amigo que anda en las mismas que yo me pidio mi cuenta y me dijo que me pagaria por ella, intente acceder desde la pagina oficial y no puedo entrar! Me manda a error.

Si no mencionas que tipo de eror te da, no sé que ayuda esperas conseguir. No somos adivinos.

Muchas compañias de videojuegos online (al menos de juegos tipo MMORPG) suelen borrar cuentas inactivas al cabo de 12 meses aproximádamente. No sé si será el caso de Minecraft, pero la única opción para averiguar lo que sucede con tu cuenta es que contactes con el servicio de soporte/atención al cliente que ellos ofrezcan.

Saludos!
#2568
El compañero @MCKSys Argentina ya te lo ha dicho todo. data_out es un objeto de tipo cola (Queue), algo parecido a la representación abstracta de una pila (Stack) en .NET, cuando se añade un elemento a la cola, la propiedad Count del objeto aumenta, evidéntemente.

Cita de: Nolohagan en  6 Abril 2017, 11:29 AMen este metodo SendPacket..... que es lo que se hace para que se aumente el dato_out?

Se añade un nuevo elemento ( byte[] ) al final de la cola, por ende, la cola (data_out) aumenta.

Cita de: Nolohagan en  6 Abril 2017, 11:29 AM
Código (csharp) [Seleccionar]
while (this.data_out.Count > 0)

Esa instrucción viene a decir: "Mientras exista algún elemento en la cola..."

PD: ¿Es esto lo que preguntabas?.

¡Saludos!
#2569
Hola.

En el ejemplo que has mostrado, para obtener el elemento de la colección primero estás seleccionándolo en el control (y en ningún momento restauras la selección anterior), estás alterando el comportamiento del control y eso puede crear resultados imprevistos ya que no es una metodología 100% segura, si por ejemplo se controlase el evento SelectedIndexChanged para elegir otro item (por poner un ejemplo de mil cosas que se podrian hacer intencionadamente o por error para evitar que obtuvieses el valor/item esperado).
En resumen, no deberías hacerlo de esa manera. Se debe interactuar lo más mínimo con el control para obtener su información...

Para obtener el último elemento tan solo tienes que usar el indexer de la colección:

Código (csharp) [Seleccionar]
string item = (string)(this.comboBox1.Items[this.comboBox1.Items.Count - 1]);




Para partir una cadena de texto puedes llamar a la función String.Split().


Código (csharp) [Seleccionar]
string value = "Hola,padre,nuestro";
string[] tokens = value.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);

foreach (string token in tokens) {
   Console.WriteLine(token);
}


¡Saludos!
#2570
.NET (C#, VB.NET, ASP) / Re: Toolbox en C#
5 Abril 2017, 17:51 PM
Cita de: Nolohagan en  5 Abril 2017, 10:40 AMHe podido apreciar en tu codigo que tu hiciste que los elementos o nodos del Treeview se cargan recien cuando el programa corre. Y yo los nodos los puse de antemano.

Los nodos los creé en tiempo de ejecución basicamente por que de otra forma habría sido imposible mostrarte un ejemplo práctico de como hacerlo (de como inicializar cada nodo y con qué tipo de valores). Si yo hubiese añadido los nodos en tiempo de diseño, ¿qué código te habría enseñado en vez del que te mostré?:
Cita de: Elektro
Código (csharp) [Seleccionar]
// Los nodos hijos de controles.
static TreeNode[]  childControlNodes = {
   new TreeNode("Label") { Tag = typeof(Label) },
   new TreeNode("ListBox") { Tag = typeof(ListBox) },
   new TreeNode("ListView") { Tag = typeof(ListView) },
   new TreeNode("TextBox") { Tag = typeof(TextBox) }
};
...No habría podido desarrollar y mostrar un código funcional si no hubiese añadido los elementos en tiempo de ejecución para construir el contenido del TreeView.

SI hubiese añadido los nodos en tiempo de diseño a través del editor de nodos del TreeView, entonces tendría que haberte mostrado el código auto-generado por Visual Studio en el archivo Form1.Designer.cs ...lo cual podría haber generado confusión y desde luego no habría sido un ejemplo tan practico para mostrar:

Código (csharp) [Seleccionar]
private void InitializeComponent()
{
// ...
//
//TreeView1
//
this.TreeView1.Location = new System.Drawing.Point(130, 104);
this.TreeView1.Name = "TreeView1";
TreeNode1.Name = "NodeListBox";
TreeNode1.Tag = typeof(ListBox);
TreeNode1.Text = "ListBox";
TreeNode2.Name = "NodeTextBox";
TreeNode2.Tag = typeof(TextBox);
TreeNode2.Text = "TextBox";
TreeNode3.Name = "NodeLabel";
TreeNode3.Tag = typeof(Label);
TreeNode3.Text = "Label";
this.TreeView1.Nodes.AddRange(new System.Windows.Forms.TreeNode[] { TreeNode1 });
this.TreeView1.Size = new System.Drawing.Size(121, 97);
this.TreeView1.TabIndex = 0;
//
//Form1
//
// ...
}


Aparte, el editor en tiempo de diseño de nodos del TreeView solo acepta un valor de tipo String en la propiedad Tag  (-> TreeNode1.Tag = "ListBox"; ), por lo que deberías hacer modificaciones manuales en el código auto-generado de Visual Studio como yo he echo aquí arriba (-> TreeNode1.Tag == typeof(ListBox); ) para adaptarlo a tus necesidades... lo cual sería una necesidad un poco "engorrosa".




Cita de: Nolohagan en  5 Abril 2017, 10:40 AMEs normal que los programadores hacen como tu o fue solo una decision personal?

En general lo común sería añadir los elementos de cualquier colección de items de un control (en este caso los nodos de un TreeView) en tiempo de diseño, de esta forma podemos representar el contenido de dicho control al instante, en tiempo de diseño (valga la redundancia), sin la necesidad de compilar el proyecto.

Pero si la intención es mostrar un ejemplo didáctico de como crear/añadir elementos, entonces logicamente la mejor decisión es añadir los elementos en tiempo de ejecución para mostrar como se deben añadir. Si la intención es crear elementos de forma dinámica, o a través de un DataSource.

Si lo prefieres puedes añadir los nodos en el editor de nodos en tiempo de diseño, de la siguiente manera:



Y luego desarrollar una simple función para resolver el typename en tiempo de ejecución de forma dinámica:

Código (vbnet) [Seleccionar]
Type t = TypeNameResolver(treeView1.Nodes("NodeListBox").Tag); // Type = System.Windows.Forms.ListBox

Código (vbnet) [Seleccionar]
private Type TypeNameResolver(string winFormsControlName) {
string fullName = typeof(Form).AssemblyQualifiedName;
fullName = fullName.Substring(fullName.IndexOf(","));
fullName = string.Format("System.Windows.Forms.{0}{1}", winFormsControlName, fullName);

return Type.GetType(fullName, throwOnError: true, ignoreCase: true);
}


Así sería como yo lo haria, pero eso son cosas que logicamente seria irrelevante mostrarlas en un ejemplo práctico como el que te mostré en mi otra respuesta.

Saludos!