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

#2551
Windows / Re: PATH Windows 8
12 Abril 2017, 02:18 AM
Cita de: Randomize en 11 Abril 2017, 15:52 PMdíme algo así como: Rando eres un tío malo malo malo, tás muy visto y deberías descansar (más).

No pienso eso, pero si que podría decirte: Rando, eres un tio muy cachondo y sueles vacilar (en el buen sentido) a los demás en público, pero hay días que te cuesta tolerar una broma inofensiva cuando te la hacen a ti :P

PD: Ya, no desviemos más este tema.

¡Saludos!
#2552
Cita de: FuturoIng en 11 Abril 2017, 18:50 PM
Gracias pero ese KON-BOOT cuesta dinero el cual no quiero gastar
alguna otra manera ?

Fíjate bien en el enlace que compartió el compañero @Simorg en su comentario...

De todas formas ya te digo, una persona que quiera obtener cierto programa de forma gratuita (leer: pirata) no debería tener muchas dificultades para encontrarlo por Google/Torrents...

¡Saludos!
#2553
Windows / Re: PATH Windows 8
11 Abril 2017, 13:51 PM
Cita de: Randomize en 11 Abril 2017, 12:09 PMÉsto debería estar en programación.

Es una duda sobre Windows; está preguntando como restaurar el valor por defecto de una variable de entorno del sistema operativo.

PD: No es una regañina, sino una aclaración.
#2555
Windows / Re: Favoritos
11 Abril 2017, 06:17 AM
Para evitar confusiones a Zorronde:
No confundir con la carpeta de Favoritos la cual si pertenece al sistema operativo: C:\Users\{USUARIO}\Favorites

¡Saludos!
#2556
Windows / Re: PATH Windows 8
11 Abril 2017, 06:13 AM
Valor por defecto:
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;

EDITO: Y para Python, simplemente añades la ruta al directorio donde tengas el archivo py.exe, en la variable de entorno PATH.

PD: La próxima vez, usa Google.

¡Saludos!
#2557
Cita de: RevolucionVegana en 10 Abril 2017, 11:35 AMme da error en int rangoUser = (int) rd["rango"];

¿Qué tipo de excepción y con que mensaje de error?. No somos adivinos.

¡Saludos!
#2558
Cita de: RevolucionVegana en  9 Abril 2017, 17:07 PMdentro de la clase he creado el método ConectarYa y he puesto que no retorne nada, es correcto o tiene que retornar algo?

Cita de: RevolucionVegana en  9 Abril 2017, 17:07 PMme gustaría saber si hace falta que esa clase retorne algo o como va la cosa

La clase que estás instanciando, MySqlConnection, representa la conexión a la base de datos MySql que vas a abrir, y además es una clase disposable (utiliza recursos no administrados que deberían ser liberados cuando ya no se los necesite usar más), con esto ya tienes dos motivos fundamentales por los cuales deberías devolver la instancia de esa clase.




Cita de: RevolucionVegana en  9 Abril 2017, 17:07 PMHabía pensado en poner return HacerConexion.Open() pero no sabría de que tipo es el retorno

Estás en Visual Studio, la IDE más completa y sofisticada en el mundo de la programación (¡tenlo presente!), ante la duda tan solo tienes que posicionar el puntero del ratón sobre el nombre del miembro ("Open") y la característica Intellisense de Microsoft te mostrará un tooltip diciéndote de que tipo es el miembro, o en caso de una función que tipo de valor de retorno devuelve... en este caso ninguno, puesto que MySqlConnection.Open() es un método sin valor de retorno.




Cita de: RevolucionVegana en  9 Abril 2017, 17:07 PMhe creado una clase para hacer la conexión a la base de datos y poder reutilizarla cuantas veces quiera

Cita de: RevolucionVegana en  9 Abril 2017, 17:07 PM
Código (csharp) [Seleccionar]
class ConexionDB

Una clase cuyo propósito sea proveer métodos de uso genérico, por lo general debe ser una clase "sellada" (es decir, no heredable).
sealed class ConexionDB

Además deberías declarar un constructor de accesibilidad privada para impedir que la clase pueda ser instanciada por equivocación. [/quote]
private ConexionDB() { }

Cita de: RevolucionVegana en  9 Abril 2017, 17:07 PM
Código (csharp) [Seleccionar]
public void ConectarYa()

Y por ese último motivo que acabo de mencionar, los métodos de uso genérico deberían tener una accesibilidad global.
public static void ConectarYa()

En general aquí abajo te muestro buenas prácticas de diseño que se deberían seguir según lo estipula en las directrices de diseño de Microsoft:

Código (csharp) [Seleccionar]
#region " usings "

using System.Diagnostics;
using MySql.Data.MySqlClient;

#endregion

namespace MySqlUtils {

   /// <summary>
   /// Contains helper methods for a <c>MySQL</c> database.
   /// </summary>
   public sealed class DatabaseHelper {

       #region " Constructors "

       [DebuggerNonUserCode()]
       private DatabaseHelper() { }

       #endregion

       #region " Public Methods "

       /// ----------------------------------------------------------------------------------------------------
       /// <summary>
       /// Establishes a connection to a <c>MySQL</c> Server database using the specified connection string.
       /// </summary>
       /// ----------------------------------------------------------------------------------------------------
       /// <example> This is a code example.
       /// <code>
       /// using (MySqlConnection connection = GetConnection("server=localhost; userid=x; password=x; database=x")) {
       ///     // ...
       /// }
       /// </code>
       /// </example>
       /// ----------------------------------------------------------------------------------------------------
       /// <param name="connectionString">
       /// The connection string used to open the <c>MySQL</c> database.
       /// </param>
       /// ----------------------------------------------------------------------------------------------------
       /// <returns>
       /// A <see cref="MySqlConnection"/> instance that represents the connection established with the <see cref="MySQL"/> database.
       /// </returns>
       /// ----------------------------------------------------------------------------------------------------
       [DebuggerStepThrough()]
       public static MySqlConnection GetConnection(string connectionString) {

           MySqlConnection connection = new MySqlConnection(connectionString);
           connection.Open();
           return connection;

       }

       #endregion

   }

}


Ejemplo de llamada:
Código (csharp) [Seleccionar]
MySqlConnection db = MySqlUtil.DatabaseHelper.GetConnection("MySQL query");

Si intentas hacer las cosas más o menos similar entonces estarás avanzando a pasos de gigante en el "nivel principiante", la estructurización/diseño es fundamental, te ayudará en todo, sobre todo a ser mas analítico o metódico. La documentación Xml es muy util y recomendable pero bueno si te parece algo muy tedioso de realizar entonces lo puedes ignorar, yo es que soy un maniático y un cansino del perfeccionismo, pero no te fijes en los tochos de documentación sino en la estructurización de todo lo demás... y en las nomenclaturas de los miembros, muy importante también (deberías intentar no escribir absolutamente nada en Español... ¡ni siquiera los commentarios!)

PD: Esto ha sido solo un consejo personal para intentar ayudarte un poco a que descubras como poder mejorar tus modelos, es mi opinión la cual se puede aceptar o rechazar sin problema; ¡que cada cual aprenda a programar como prefiera!.

¡Saludos!
#2559
Cita de: bybaal en  9 Abril 2017, 01:15 AMRealmente lo que necesitamos es que se oculten las filas que no coinciden con lo buscado y que la búsqueda sea al escribir en el TextBox.

Aquí abajo te muestro otra alternativa de hacerlo. En caso de que lo uses, adáptalo a tus necesidades.

Código (vbnet) [Seleccionar]
Public NotInheritable Class Form1 : Inherits Form

   Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged

       Me.TriggerFindText(DirectCast(sender, TextBox), Me.DataGridView1)

   End Sub

   Private Sub TriggerFindText(ByVal tb As TextBox, ByVal dgv As DataGridView)

       ' Cuando se dispara el evento TextBox.TextChanged, guardamos el texto actual en una variable,
       ' esperamos 300-500 ms approx. y verificamos si el texto sigue siendo el mismo o ha cambiado.
       ' De esta manera evitamos realizar búsquedas indeseadas (términos de búsqueda incompletos) mientras el usuario está escribiendo.
       ' Util también si tenemos miles de filas en el datagridview, para evitar bloqueos en el thread de la UI.

      ' Como es evidente, esta metodología está pensada para una búsqueda en "tiempo real";
      ' Si prefieres iniciar la búsqueda solamente cuando se presione la tecla "Enter" entonces esta metodología no tienes por que usarla...

       Dim t As New Task(
           Sub()
               Dim oldText As String = tb.Text
               Dim newText As String
               Thread.Sleep(400)

               newText = tb.Text
               If String.IsNullOrEmpty(newText) Then
                   ShowAllRowsInDataGridView(dgv)

               ElseIf (oldText = newText) Then
                   FindTextInDataGridView(dgv, tb.Text, StringComparison.OrdinalIgnoreCase)

               Else ' (oldText <> newText)
                   ' El texto ha cambiado, así que no hacemos nada.

               End If

           End Sub)

       t.Start()

   End Sub

   Friend Shared Sub ShowAllRowsInDataGridView(ByVal dgv As DataGridView)

       If (dgv.InvokeRequired) Then
           dgv.Invoke(New Action(Sub() ShowAllRowsInDataGridView(dgv)))
       End If

       dgv.SuspendLayout()
       For Each row As DataGridViewRow In dgv.Rows
           If Not (row.IsNewRow) Then
               row.Visible = True
           End If
       Next row
       dgv.ResumeLayout(performLayout:=True)

   End Sub

   Friend Shared Sub FindTextInDataGridView(ByVal dgv As DataGridView, ByVal str As String, ByVal stringComparison As StringComparison)

       If (dgv.InvokeRequired) Then
           dgv.Invoke(New Action(Sub() FindTextInDataGridView(dgv, str, stringComparison)))
       End If

       Dim cellContainsFunc As Func(Of DataGridViewCell, String, Boolean) =
           Function(ByVal cell As DataGridViewCell, s As String)
               If (cell.Value IsNot Nothing) Then
                   Return (cell.Value.ToString().IndexOf(s, stringComparison) <> -1)
               Else
                   Return False
               End If
           End Function

       Dim indices As IEnumerable(Of Integer) =
           (From row As DataGridViewRow In dgv.Rows
            Where row.Cells.Cast(Of DataGridViewCell).Any(Function(x As DataGridViewCell) cellContainsFunc(x, str))
            Select row.Index)

       dgv.SuspendLayout()
       dgv.ClearSelection()
       For Each row As DataGridViewRow In dgv.Rows
           If Not (row.IsNewRow) Then
               row.Visible = indices.Contains(row.Index)
           End If
       Next row
       dgv.ResumeLayout(performLayout:=True)

   End Sub

End Class


¡Saludos!
#2560
Hmmm... creo que tienen razón en lo que dicen en el video.

Que un experto me corrija, por favor:

Teniendo este partido como antes:
-10 Equipo_A  vs. Equipo_B +10

Si yo apuesto en ese momento al Hándicap del Equipo_A, es decir -10, y suponiendo que el resultado final sea Equipo_A=91 puntos y Equipo_B=80 puntos, la condición para que la apuesta resulte ganadora es que al descontar el Hándicap de los puntos del Equipo_A, es decir 91-10=81, esos puntos sigan siendo mayor a los puntos del otro equipo, y en este caso habría ganado la apuesta con 81 puntos por encima de los 80 puntos del otro equipo.
O lo que viene a ser lo mismo, que el equipo por el que he apostado siga teniendo el mismo Hándicap o un Hándicap mayor (ej. -12) al terminar el partido.

Vamos, que no tenía que ver tanto con el valor negativo del Hándicap como yo creia, ¿verdad?.

PD: Aclaro que me estoy refiriendo a apuestas en directo, el Hándicap varía a cada momento según la diferencia de puntos entre los equipos, el equipo con más puntos tiene un mayor Hándicap -negativo.

¡Saludos