elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


  Mostrar Mensajes
Páginas: 1 ... 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 [611] 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 ... 1236
6101  Programación / .NET (C#, VB.NET, ASP) / Re: Mi primera aplicación en vb.net en: 17 Diciembre 2014, 22:19 pm
hoy me he puesto a intentar hacer algo MUY básico como lo es una calculadora.Pido que no se me infravalore solo por ello , ya que estoy empezando

No creo que eso sea algo que deba preocuparte, aqui estamos para ayudar, no para juzgar quien eres por cuanto sabes.


toda ella se basa en los operadores aritméticos incluyendo lel operador mod(si es que se le llama operador)

Si, es un operador:
Mod Operator (Visual Basic)


Me gustaría que me dierais opiniones respecto al código , respecto a si puede simplificarse el código , si hay expresiones mal utilizadas.

El único inconveniente que le veo es que estás utilizando el DataType Integer, y esto para una calculadora no es lo más apropiado xD, ya que la capacidad máxima de un Integer es poca, y excluye la posibilidad de usar y calcular correctamente decimales.

Aparte de eso, el código en general se puede simplificar mucho, ya que utilizas la abundante repetición de código para hacer lo mismo 4 veces,
eso es de lo más normal en alguien que está aprendiendo, pero mi consejo es que debes acostumbrarte cuanto antes a programar de forma dinámica, es una aventura que te brindará un sin fin de posibilidades, te ayudará a estructurar el código y eso evitará en parte que acabes escribiendo un código spaghetti (Spaghetti code - Wikipedia, the free encyclopedia).

Por un lado, está la Class principal.
Lo más destacable de esta modificación que he escrito sería el Type "MathInfo" y la multiple subscripción del mismo evento de todos los botones, combinando ambas cosas nos ayuda a elaborar la tarea de forma dinámica utilizando la propiedad Tag de los botones para asociar un objeto "MathInfo" a cada botón, esto nos evita tener que duplicar código innecesario.
Y en fín, todo esto nos lleva siempre al método "DoMaths", donde podemos implementar controles de errores, etc. (eso ya es cosa tuya)

También debo decir que lo he estructurado basándome en tu ejemplo, es decir, que esto se podría simplificar más si fuera otro caso, donde no tuvieras 8 TextBoxes para 8 valores distintos y 4 botones.

Código
  1. Option Strict On : Option Explicit On : Option Infer Off
  2.  
  3. Imports WindowsApplication1.MathTools
  4.  
  5. Public Class Form1
  6.  
  7. #Region " Types "
  8.  
  9.    Private Class MathInfo
  10.        Public Property Control1 As Control
  11.        Public Property Control2 As Control
  12.        Public Property MathOperation As MathOperation
  13.    End Class
  14.  
  15. #End Region
  16.  
  17. #Region " Event Handlers "
  18.  
  19.    Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) _
  20.    Handles Me.Load
  21.  
  22.        Me.Button1.Tag = New MathInfo With
  23.                         {.Control1 = Me.txt1, .Control2 = Me.txt2, .MathOperation = MathOperation.Sum}
  24.  
  25.        Me.Button2.Tag = New MathInfo With
  26.                         {.Control1 = Me.txt3, .Control2 = Me.txt4, .MathOperation = MathOperation.Rest}
  27.  
  28.        Me.Button3.Tag = New MathInfo With
  29.                         {.Control1 = Me.txt5, .Control2 = Me.txt6, .MathOperation = MathOperation.DivisorRemainder}
  30.  
  31.        Me.Button4.Tag = New MathInfo With
  32.                         {.Control1 = Me.txt7, .Control2 = Me.txt8, .MathOperation = MathOperation.Multiply}
  33.    End Sub
  34.  
  35.    ''' <summary>
  36.    ''' Handles the Click event of the Button controls.
  37.    ''' </summary>
  38.    Private Sub Buttons_Click(ByVal sender As Object, ByVal e As EventArgs) _
  39.    Handles Button1.Click,
  40.            Button2.Click,
  41.            Button3.Click,
  42.            Button4.Click
  43.  
  44.        Me.DoMaths(DirectCast(DirectCast(sender, Button).Tag, MathInfo))
  45.  
  46.    End Sub
  47.  
  48. #End Region
  49.  
  50. #Region " Methods "
  51.  
  52.    ''' <summary>
  53.    ''' Performs an arithmetic operation with the values contained on the specified <see cref="T:MathInfo" />.
  54.    ''' And shows an informative <see cref="T:MessageBox" /> with the resulting value.
  55.    ''' </summary>
  56.    Private Sub DoMaths(ByVal mathInfo As MathInfo)
  57.  
  58.        Dim value1 As Decimal = CDec(mathInfo.Control1.Text)
  59.        Dim value2 As Decimal = CDec(mathInfo.Control2.Text)
  60.        Dim mathOperation As MathOperation = mathInfo.MathOperation
  61.        Dim result As Decimal = MathTools.GetMathResult(value1, value2, mathOperation)
  62.  
  63.        MessageBox.Show(CStr(result), String.Format("Resulting value of an {0} operation", mathOperation.ToString),
  64.                        MessageBoxButtons.OK, MessageBoxIcon.Information)
  65.  
  66.    End Sub
  67.  
  68. #End Region
  69.  
  70. End Class

Y por otro lado, lo apropiado es separar las funciones que haces en otra Class, donde puedes implementar las herramientas relacionadas con la aritmética:

( Ten en cuenta que "simplificar", no siempre significa escribir menos )

Código
  1. ''' <summary>
  2. ''' Contains related Mathematial tools.
  3. ''' </summary>
  4. Public NotInheritable Class MathTools
  5.  
  6.    ''' <summary>
  7.    ''' Specifies an arithmetic operation.
  8.    ''' </summary>
  9.    Public Enum MathOperation As Integer
  10.  
  11.        Sum = 1I
  12.        Rest = 2I
  13.        Multiply = 3I
  14.        DivisorRemainder = 4I
  15.  
  16.    End Enum
  17.  
  18.    ''' <summary>
  19.    ''' Performs an arithmetic operation with the specified two values.
  20.    ''' </summary>
  21.    ''' <param name="value1">The first value.</param>
  22.    ''' <param name="value2">The second value.</param>
  23.    ''' <param name="mathOperation">The arithmetic operation.</param>
  24.    ''' <returns>The resulting value.</returns>
  25.    ''' <exception cref="System.ArgumentException">mathOperation</exception>
  26.    Public Shared Function GetMathResult(ByVal value1 As Decimal,
  27.                                         ByVal value2 As Decimal,
  28.                                         ByVal mathOperation As MathOperation) As Decimal
  29.  
  30.        Select Case mathOperation
  31.  
  32.            Case MathTools.MathOperation.Sum
  33.                Return (value1 + value2)
  34.  
  35.            Case MathTools.MathOperation.Rest
  36.                Return (value1 - value2)
  37.  
  38.            Case MathTools.MathOperation.Multiply
  39.                Return (value1 * value2)
  40.  
  41.            Case MathTools.MathOperation.DivisorRemainder
  42.                Return (value1 Mod value2)
  43.  
  44.            Case Else
  45.                Throw New ArgumentException("Tu mensaje de error aquí", "mathOperation")
  46.                Return 0D
  47.  
  48.        End Select
  49.  
  50.    End Function
  51.  
  52. End Class

Espero que te haya servido.

Saludos.
6102  Programación / .NET (C#, VB.NET, ASP) / Re: Poner publicidad en una app .NET en: 16 Diciembre 2014, 21:04 pm
Estás en tu derecho de hacer lo que quieras con tu app, pero, ¿has visto alguna app con adflys? (yo si, solo 2 en toda mi vida, y obviamente no tuvieron futuro), como mucho le meten banners publicitarios en la interface de usuario.

Si quieres sacar beneficios, vende el software y punto, o ponle un botón de donaciones Paypal, e slo más común.

Si vas a compartirlo de forma "medio" gratis Shareware intentando sacar beneficio entonces no le pongas mierd@ como tener que pulsar un adfly, banners, o instaladores basura.
Los programas que hacen eso son odiosos y la opinión que tendrá el endusar sobre tu producto no será muy buena, captarás poco su atención, así que en mi opinión es mucho mejor si haces una versión Trial o una versión demo con características limitadas, sin incordiar con anuncios, y quien quiera que compre la app después del periodo de prueba.

Puedes utilizar cualquier herramienta profesional para hacer versiones triales, que expiren en "X" usos o "X" días, como por ejemplo Crypto Licensing, .Net Reactor, o WinLicense.

Saludos!
6103  Programación / .NET (C#, VB.NET, ASP) / Re: Poner publicidad en una app .NET en: 16 Diciembre 2014, 20:14 pm
Hola a todos, estaba interesado en saber como poner un anuncio o alguna publicidad que me remunere en una aplicación que estoy desarrollando en C#. Todo lo que pueda ganar dinero con anunciones clicks, redirecciones a páginas y demás para ganar dinero de forma legal (y alguna ilegal si conocéis también (no es broma jaja)), me gustaría conocerla.

Pues hacer una app y ponerlaen una web y que se la descarguen nada me aporta después de todo el trabajo hecho, ¿qué métodos conocéis y cuáles son los más eficaces? Saludos.

1) Un botón de donaciones Paypal en la UI.

2) Crear tu propia web, para vender tus productos.

3) Crear un instalador añadiendo el típico servicio adaware (tipo Softonic). No me viene a la cabeza ninguna web que ofrezca este servicio, peor las hay, y te pagan por utilizar sus instaladores de pura *****.

4) Usar Google para encontrar servicios donde vender código fuente.
11 Websites Where You Can Buy And Sell App Source Codes!

Saludos!
6104  Programación / .NET (C#, VB.NET, ASP) / Re: PS3 Manager - Open Source PS3 Debugger with Full Source Code en: 16 Diciembre 2014, 20:11 pm
si lo vas a colocar, por cosas practicas y de seguridad debe ir con el codigo fuente :P

Ya lo revisé yo mismo ayer, el código fuente si que va incluido (para quienes quieran saberlo).

PD: Gracias por compartir.

Saludos
6105  Programación / .NET (C#, VB.NET, ASP) / Re: ayuda con suma de colomnas impares en datagridview (visual basic 2008) en: 16 Diciembre 2014, 00:19 am
Es tarde por aquí, pero por la mañana en cuanto pueda te ayudo mostrándote un código (si no se me adelanta nadie)

saludos
6106  Programación / Scripting / Re: Script "demigrante" en: 16 Diciembre 2014, 00:15 am
Ya, tienes razón, ha sido una errata.

Pero creo que has entendido el sentido de las ordenes que quiero ejecutar.

¿Algún consejo menos sarcástico?


No era sarcasmo, solo pretendía evitar que por error leyeras algo que no te serviría, yo no sabia si era una simple errata.

Sobre Bash, no puedo ayudarte, esperemos que alguien te pueda servir de más ayuda.

Saludos!
6107  Programación / Scripting / Re: BATCH Guardar cada linea de un txt en una varaible en: 16 Diciembre 2014, 00:11 am
Entiendo que quieres declarar las variables de forma dinámica y secuencial, ¿pero que debería ocurrir al llegar a la "Z", por ejemplo?.

Mejor hazlo así, tiene muchas menos complicaciones:
Código
  1. @Echo OFF
  2.  
  3. For /F "UseBackQ Tokens=* Delims=" %%a In ("Archivo.txt") Do (
  4. Set /A   "Count+=1"
  5. Call Set "Var%%Count%%=%%~a"
  6. )
  7.  
  8. Echo %Var1% %Var2% %Var3%
  9.  
  10. Pause&Exit /B 0

Saludos
6108  Programación / Scripting / Re: Script "demigrante" en: 16 Diciembre 2014, 00:00 am
El caso es que siempre pense en automatizar ciertas tareas, pero dado que no me he molestado en leer un mísero tutorial de Batch scripting no se como hacerlo.

Pues vas mal encaminado si te da por leer un tutorial de Batch, ya que lo que estás utilizando es Bash, la diferencia es que el primero es para Windows, y el segundo para Linux.

Saludos
6109  Programación / .NET (C#, VB.NET, ASP) / Re: ayuda con suma de colomnas impares en datagridview (visual basic 2008) en: 15 Diciembre 2014, 23:52 pm
me dice que "El índice estaba fuera del intervalo. Debe ser un valor no negativo e inferior al tamaño de la colección. Nombre del parámetro: index"

Es porque el índice en .Net está basado en "0", no empieza por "1". por ende no puedes acceder a la columna 5, ya que el rango de columnas son 4 (0, 1, 2, 3, 4).
Disminúyele un número a los índices como hiciste con las filas, y ya está:

Código
  1. Dim Col1 As Integer = &H0I
  2. Dim Col3 As Integer = &H2I
  3. Dim Col5 As Integer = &H4I

Te muestro el ejemplo completo:

Código
  1.        Const ColIndex1 As Integer = &H0I
  2.        Const ColIndex3 As Integer = &H2I
  3.        Const ColIndex5 As Integer = &H4I
  4.  
  5.        Dim totalCol1 As Integer, totalCol3 As Integer, totalCol5 As Integer
  6.  
  7.        For Each row As DataGridViewRow In Me.DataGridView1.Rows
  8.  
  9.            totalCol1 += CType(row.Cells(ColIndex1).Value, Integer)
  10.            totalCol3 += CType(row.Cells(ColIndex3).Value, Integer)
  11.            totalCol5 += CType(row.Cells(ColIndex5).Value, Integer)
  12.  
  13.        Next row
  14.  
  15.        Label4.Text = String.Format("La suma de los valores de la columna 1 es de: {0}", CStr(totalCol1))
  16.        Label5.Text = String.Format("La suma de los valores de la columna 3 es de: {0}", CStr(totalCol3))
  17.        Label6.Text = String.Format("La suma de los valores de la columna 5 es de: {0}", CStr(totalCol5))

Saludos
6110  Sistemas Operativos / Windows / Re: Error APPCRASH al instalar programas y controladoras gráfica Nvidia GeForce 7600 en: 15 Diciembre 2014, 22:45 pm
Songoku te formula una pregunta muy razonable.

En mi opinión, o te está fallando Windows por un problema derivado de una modificación ajena, o te están fallando los drivers de nVidia y esto está afectando al SO.

Si tienes tiempo y ganas, y en caso de que estés usando un Windows7 sin modificar, entonces podrias probar a reinstalar de nuevo Windows7 para utilizar el PC PERO sin instalar los drivers de la gráfica, a ver si no sale más el error, y si ves que así funciona, entonces... ya se verá como solucionar el tema de la ausencia de drivers.

Saludos
Páginas: 1 ... 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 [611] 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 ... 1236
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines