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

#1571
Te lo dije aquí:
Citar
DateAndTime.DateAdd(4
por:
DateAndTime.DateAdd(DateInterval.Day

...ese "4" lo tienes que eliminar. El valor 4 = DateInterval.Day.

saludos
#1572
Cita de: buite en 15 Noviembre 2017, 10:48 AMEs un enfermo. Yo siento compasión.

Pues está igual de enfermo (de sufrir complejo) que toda esa infinidad de mujeres que se operan los pechos para agrandar su tamaño, o las que se ponen más gluteos o más labios... pero ve y dile a una mujer en el siglo XXI que sufre un tipo de enfermedad psicológica por ponerse más tetas, ya verás la que te cae, y no solo por las mujeres, sino por los hombres, si solo te acaban llamando "primitivo" o "retrógrado" será una suerte. Absurdo total...

...Así que yo casi prefiero reservarme mi opinión en estos temas de "modificaciones corporales", que cada uno destroce su cuerpo como le de la gana.

Lo peor de todo es que los hombres y mujeres que hacen ese tipo de cosas (ya sea ciclarse para ganar biceps "falsos", o ponerse tetas de goma en el caso de las mujeres) lo hacen para sentirse más atractivos/as, lo peor es eso... ¡¡que realmente creen y están convencidos de que así son más atractivos para ellos mismos y para los demás!!, no son capaces de ver que no es así, que se vuelven monstruos... orcos de Mordor, pero todos, hasta la mujer que solo se pone un poco de labios o una talla más de pecho. Todo eso son enfermedades pero a la industria de la salud se la suda, por que como es evidente los que regulan los "tratamientos" no están dispuestos a renunciar a todas esas cirujías de precio desorbitado con las que ganan pingues beneficios. El mundo es una MIERD@ llena de abariciosos que perjudican la salud física y mental de las personas... enfermas o no, nadie hace nada, ningún alto responsable de la medicina moderna es capaz de decir "oye, vamos a parar todos estos negocios poco éticos de cirujias y demás, por que la enfermedad de las personas no se cura ofreciendo lo que el paciente quiere para "sentirse bien", sino haciéndole entender mediante la psicología profesional que no es necesario una modificación corporal para sentirse bien.".

Un saludo!
#1573
Bueno, ya he analizado el "SISTEMA NO OFUSCADO". Si sigues al pie de la letra las siguientes indicaciones, arreglarás todos los errores de compilación y del diseñador de Forms.




Para arreglar los errores de compilación, estos son los reemplazamientos globales de texto en la clase Form1.vb que se debe hacer:

(primero el string original, abajo el reemplazamiento)

Citar
CitarDim date As DateTime
Dim [date] As DateTime

CitarDateAndTime.get_Now
DateAndTime.Now

CitarDateAndTime.get_Today
DateAndTime.Today

CitarDateAndTime.get_TimeString
DateAndTime.TimeString

CitarDateAndTime.DateAdd(4
DateAndTime.DateAdd(DateInterval.Day

CitarAs Timer
As System.Windows.Forms.Timer

CitarNew Timer
New System.Windows.Forms.Timer

CitarPrivate Overridable Property
Private Property

Y en la clase Cliente.vb
Citar
CitarPublic Custom Event
Public Event

CitarNew Thread(New ThreadStart(AddressOf Me.LeerSocket)).Start
Dim t As New Thread(New ThreadStart(AddressOf Me.LeerSocket))
t.Start




Para arreglar el error del diseñador de forms: "Duplicate declaration of member 'size'"

Dentro del método 'Initialize' de la clase 'Form1.vb', eliminas esta linea:
Dim size As New Size(&H100, &H124)

Y esto lo dejas así:
Me.CheckedListBox1.Size = New Size(&H100, &H124)

Y luego nos quedarán 555 errores de compilación en lineas como esta:
Citar
size = New Size(280, &H98)
Me.CheckedListBox2.Size = size

Basicamente tienes que ponerle el valor de la variable "size" correspondiente a cada linea:
Me.CheckedListBox2.Size = New Size(280, &H98)

Se puede automatizar la tarea de reemplazamiento con el siguiente código de una aplicación de consola:

Código (vbnet) [Seleccionar]
Public Module Module1

   Public Sub Main()

       Dim filepath As String = "...\SISTEMA NO OBFUSCADO\LOTERIA\Form1.vb"
       Dim sb As New StringBuilder()
       Dim size As String = String.Empty
       Dim control As String = String.Empty
       Dim lines As IEnumerable(Of String) = File.ReadLines(filepath, Encoding.Default)

       For Each line As String In lines
           If line.TrimStart().ToLower().StartsWith("size = new size") Then
               size = line.Substring(line.IndexOf("=") + 1).TrimStart() ' "New Size(width, height)"
               Continue For
           End If

           If line.TrimStart().ToLower().Contains(".size =") Then
               If Not String.IsNullOrEmpty(size) Then
                   control = line.Substring(0, line.LastIndexOf("=") + 1).TrimStart() ' "Me.ControlName.Size ="
                   Debug.WriteLine(control & size)
                   sb.AppendLine(control & size) ' "Me.ControlName.Size = New Size(width, height)"
                   size = String.Empty
                   control = String.Empty
                   Continue For
               End If
           End If

           sb.AppendLine(line)
       Next line

        File.WriteAllText(".\Form1_SizeFixed.vb", sb.ToString())

   End Sub

End Module





Para arreglar el error del diseñador de forms: "Duplicate declaration of member 'point'", el procedimiento es el mismo que con 'size'.

Dentro del método 'Initialize' de la clase 'Form1.vb', eliminas esta linea:
Dim point As New Point(&H10, &H80)

Y esto lo dejas así:
Me.CheckedListBox1.Location = New Point(&H10, &H80)

Y luego nos quedarán 555 errores de compilación en lineas como esta:
Citar
point = New Point(280, &H98)
Me.CheckedListBox2.Location = point

Basicamente tienes que ponerle el valor de la variable "point" correspondiente a cada linea:
Me.CheckedListBox2.Location = New Point(280, &H98)

Se puede automatizar la tarea de reemplazamiento con el siguiente código de una aplicación de consola:

Código (vbnet) [Seleccionar]
Public Module Module1

   Public Sub Main()

       Dim filepath As String = "..\SISTEMA NO OBFUSCADO\LOTERIA\Form1.vb"
       Dim sb As New StringBuilder()
       Dim point As String = String.Empty
       Dim control As String = String.Empty
       Dim lines As IEnumerable(Of String) = File.ReadLines(filepath, Encoding.Default)

       For Each line As String In lines
           If line.TrimStart().ToLower().StartsWith("point = new point") Then
               point = line.Substring(line.IndexOf("=") + 1).TrimStart() ' "New Point(x, y)"
               Continue For
           End If

           If line.TrimStart().ToLower().Contains(".location =") Then
               If Not String.IsNullOrEmpty(point) Then
                   control = line.Substring(0, line.LastIndexOf("=") + 1).TrimStart() ' "Me.ControlName.Location ="
                   Debug.WriteLine(control & point)
                   sb.AppendLine(control & point) ' "Me.ControlName.Location = New Point(x, y)"
                   point = String.Empty
                   control = String.Empty
                   Continue For
               End If
           End If

           sb.AppendLine(line)
       Next line

       File.WriteAllText(".\Form1_PointFixed.vb", sb.ToString())

   End Sub

End Module





Para arreglar los errores del diseñador de forms: "The type 'System.Windows.Forms.Form' has no property named 'xxxxx'"

Tienes que hacer estos reemplazamientos de string SOLAMENTE en el bloque del método 'Initialize' de la clase 'Form1.vb':

Me.Button         -> Me._Button
Me.CheckBox       -> Me._CheckBox
Me.CheckedListBox -> Me._CheckedListBox
Me.ComboBox       -> Me._ComboBox
Me.DateTimePicker -> Me._DateTimePicker
Me.GroupBox       -> Me._GroupBox
Me.Label          -> Me._Label
Me.ListBox        -> Me._ListBox
Me.PrintDocument  -> Me._PrintDocument
Me.TextBox        -> Me._TextBox
Me.Timer          -> Me._Timer


...o dicho de otro modo: tienes que añadirle un guión bajo al principio del nombre de cada control.




Para arreglar el último error del diseñador de forms: "The variable 'manager' has no property is either undeclared or was never existed"

Simplemente elimina estas lineas dentro del método 'Initialize':

Dim manager As New ResourceManager(GetType(Form1))
Me.Icon = DirectCast(manager.GetObject("$this.Icon"), Icon)

...Por que el icono de la aplicación supongo que te dará completamente igual arreglarlo o no...

Saludos.
#1574
Cita de: pax01 en 14 Noviembre 2017, 14:28 PMvoid AgregarImpuesto(double impuesto){
Operaciones
}


¿Eso es un método de instancia? (Es decir sin el static ?)

Sí.




Cita de: pax01 en 14 Noviembre 2017, 14:28 PM
* Realizar un método de clase llamado "MostrarAuto", que recibirá un
objeto de tipo "Auto" por parámetro y que mostrará todos los
atributos de dicho objeto.

public void MostrarAuto(Auto auto){
Codigo
}


Es esto un método de clase ?

Cita de: pax01 en 14 Noviembre 2017, 14:28 PMQue diferencias hay entre un metodo de clase y de instancia ?

En mi opinión no deberías estudiar en Español ni leer tutoriales/ejercicios en Español, solo vas a conseguir acabar aprendiendo y acostumbrarte a un vocabulario tecnicista incorrecto que a la larga te va a confundir y te va a limitar en la comprensión del tecnicismo en el Idioma nativo y también el más extendido en el ámbito de la programación: el Inglés. El término "Método de clase" se podria interpretar de varias manera, como método estático, o por otro lado método de acceso privado que solo se pueda acceder a nivel de clase... asumiré que tú y el ejercicio se están refiriendo a métodos estáticos y no estáticos (o de instancia).

Respondiendo a la primera pregunta: eso que escribiste es un método de instancia. Si querías hacer hacer un método estático o "de clase" pues... a ese método le falta que le añadas el modificador static.

Respondiendo a la segunda pregunta: un método de instancia necesita una instancia del tipo (clase, estructura) en el que fue declarado dicho método, y un método estático es un método que se puede llamar sin crear de forma explícita una instancia del tipo en el que fue declarado dicho método.

Pondré un ejemplo. Aquí tenemos una clase con ambos tipos de métodos:

Código (csharp) [Seleccionar]
public class Class1 {

       public Class1() { }

public static void StaticMethod() {
Console.WriteLine("I'm a static method.");
}

public void NonStaticMethod() {
Console.WriteLine("I'm not a static method.");
}

}


Para poder llamar al método estático, lo harías de la siguienta manera, escribiendo el nombre de la clase donde se expone el miembro estático:
Código (csharp) [Seleccionar]
Class1.StaticMethod();

Para poder llamar al método no estático o de instancia, primero necesitarías crear una instancia de la clase Class1 y entonces es cuando puedes llamar al método a través de la referencia del objeto:
Código (csharp) [Seleccionar]
Class1 obj = new Class1();
obj.NonStaticMethod();





Cita de: pax01 en 14 Noviembre 2017, 14:28 PMTiene que ver con el static y con el modificar de acceso a tal metodo (public, priv, ext, int, prot)?)

Los modificadores de acceso como public, private, protected o internal no tienen que ver con el modificador static, son un tema aparte, los modificadores de acceso determinan que el miembro sea accesible a nivel de clase, de clase heredada, o de ensamblado. Los modificadores de acceso son combinables con el modificador "static". Por poner un ejemplo: un método puede ser estático y de acceso privado al mismo tiempo.




Cita de: pax01 en 14 Noviembre 2017, 14:28 PM
* Sobrecargar su constructor para poder instanciar objetos pasándole como parámetros:
i. La marca y el color (primera sobrecarga)
ii. La marca, color y el precio (segunda sobrecarga).
iii. Y tres sobrecargas más, de las cuales dos deben tener como parámetro la fecha.

Este punto no se ni por donde arrancarlo. Instanciar objetos sería "crear objetos" por lo que tengo entendido, pasandoselo como parámetros al constructor pero lo que no me queda claro es la parte de Sobrecargar su constructor, como modifico la sobrecarga a medida que corre el programa. Si me pueden dar una explicacion/tip/codigo para entender el funcionamiento de la sobrecarga del constructor sería excelente.

Está mal explicado eso de "un constructor para poder instanciar objetos", deja mucho margen a la libre interpretación. Yo no seguiría leyendo esos ejercicios en Español, ya te di mi consejo.

Las sobrecargas no se modifican o añaden en tiempo de ejecución, se declaran en tiempo de diseño. Un ejemplo de sobrecargas para un constructor de clase:

Código (csharp) [Seleccionar]
public sealed class Producto {

public string Nombre { get; set; }
public string Marca { get; set; }
public Color Color { get; set; }
public double Precio { get; set; }
public DateTime Fecha { get; set; }

public Producto() :
   this(string.Empty, string.Empty, Color.Empty, new double(), new DateTime()) {}

public Producto(string nombre) :
   this(nombre, string.Empty, Color.Empty, new double(), new DateTime()) {}

public Producto(string nombre, string marca) :
   this(nombre, marca, Color.Empty, new double(), new DateTime()) {}

public Producto(string nombre, string marca, Color color) :
   this(nombre, marca, color, new double(), new DateTime()) {}

public Producto(string nombre, string marca, Color color, double precio) :
   this(nombre, marca, color, precio, new DateTime()) {}

public Producto(string nombre, string marca, Color color, double precio, DateTime fecha) {
   this.Nombre = nombre;
   this.Marca = marca;
   this.Color = color;
   this.Precio = precio;
   this.Fecha = fecha;
}

}


Por lo general, la finalidad de añadir sobrecargas (a cualquier tipo de miembro sobrecargable) es que las sobrecargas se limiten a adaptar (que no evaluar) los argumentos pasados a dicha sobrecarga para enviárselos a otra sobrecarga, la "principal", que es la que desempeñará el trabajo de verdad (y evaluará los argumentos pasados por la sobrecarga). Lo que puedes ver en el código de ejemplo que puse arriba, vaya, sería un ejemplo muy reducido. Hacer lo contrario se consideraría mal hábito de programación, tener sobrecargas y que cada una de ellas haga cosas diferentes dentro de cada bloque del método de la sobrecarga podría resultar en un código espagueti...

Saludos.
#1576
Cita de: zalazar16 en 13 Noviembre 2017, 22:23 PM
ahora no tengo los Me000x y la infinidad de parecidos, solo DateTime y Size

Si arreglaste todo eso supongo que te lo puedo mirar en un rato... ¿es este enlace?: https://www.mediafire.com/file/4krh72s22i7ebt4/SISTEMA%20NO%20OBFUSCADO.zip
#1577
.NET (C#, VB.NET, ASP) / Re: ayuda en VB.NET
13 Noviembre 2017, 21:58 PM
Aparte de todo lo que te ha dicho el compañero @NEBIRE, cosa en la que concuerdo completamente...

Cita de: **Aincrad** en 13 Noviembre 2017, 17:05 PM
Código (vbnet) [Seleccionar]
CreateObject("SAPI.SpFileStream")

...No existe una necesidad real de recurrir a código no administrado, y aparte lo estás haciendo al estilo obsoleto, inseguro y limitado de VB6/VBS, para eso sinceramente no conviene usar .NET, por que no le estás sacando ningún beneficio real. Deberías evitar copiar el primer código que te encuentres en Internet para VB6 o VBS, e intentar buscar soluciones más actualizadas que hagan uso de los miembros equivalentes para .NET Framework ( System.Type.GetTypeFromProgID() + System.Activator.CreateInstance() + Implementación de interfaces nativas ), no es tan dificil investigar bien... en general debes evitar usar en lo máximo posible los miembros del espacio de nombres Microsoft.VisualBasic, por que el 80% aprox del contenido son miembros que están ahí simplemente por compatibilidad en temas de migración de VB6 a VB.NET, pero cuyo código fuente de todos esos miembros, aunque sea una implementación en código .NET apesta, es un código muy poco óptimo y miembros muy limitados en comparación (puedes observar las diferencias analizando la referencia online del código fuente de .NET Framework).

Si quieres hacer de forma correcta, segura y sofisticada lo que pretendes hacer, entonces usa la implementación administrada de Microsoft Speech API (SAPI) para .NET. Aquí tienes un ejemplo para sintetizar texto y guardarlo en un archivo WAV:


PD: La documentación de MSDN es tu mejor amiga... cuando no sepas algo, busca ahí.

Saludos.
#1578
Foro Libre / Re: Homenaje a "Chiquito"
13 Noviembre 2017, 14:20 PM
Me da mucha pereza leer todo ese artículo, pero lamento la muerte de un artista y humorista que tanto nos hizo reir en nuestra infancia...

Grande Chiquito.



...Vean su película donde Chiquito protagoniza a "El Conde Brácula" para rendirle homenaje y echarse unas risas:



PD: Sí, no cabe duda, es malísima xD.
#1579
Eso suele pasar mucho cuando uno está a solas con un calentón de la muerte y no tiene ningún calcetín a mano por la casa, o cuando uno está harto de hacerle agujeros a sandías y melones para darle merengue del bueno por "detrás", a todos nos ha pasado, ¿no? :xD. El hombre solo buscaba nuevas experiencias...

Eso sí, para la próxima vez, que alguien le comente a este tio que existen las vaginas en lata:

#1580
Cita de: zalazar16 en 12 Noviembre 2017, 15:13 PMCito algo del Amigo Elektro  :D que fue la persona que me ayudó:

"En el código fuente que has compartido, el tamaño y posición de los controles se estaba especificando mediante una variable llamada "point", y otra "size", esta última entraba en conflicto con la propiedad Form.Size. Las referencias de los controles, así como la asociación de eventos de los controles, estaban definidos mediante propiedades, lo cual es muy típico de ver en conversores de código C# a VB.NET."

Pero ese código fuente ya te lo reestructuré de forma completa, y este código fuente que ahora muestras no tiene nada que ver con el otro o al menos no lo parece, no tiene los mismos "errores" con Point y Size.

Aquí tienes, de mil nosecuantos errores de compilación te lo he dejado en unos 200, algo es algo:
http://www.mediafire.com/file/refb7gf660aqzsc/SISTEMA+SUPUESTO+CODIGO.zip

...el resto de referencias que quedan no se resolverlas, las que empiezan por "Me000.x" y tienen una cantidad variable de ceros ( en el código "reestructurado" les cambié el nombre por "Me._x" sin los ceros ), para eso habría que saber como trabaja el ofuscador con el que protejieron el code, o tomarse mucho tiempo en horas para ir revisando variable uno por uno de los casi 200... y eso ya no estoy dispuesto a hacerlo por tiempo, todo esto que ves "reestructurado" lo hice en 10 minutos.

En realidad la reestructuración del 90% del código es muy sencilla, son obviedades ("DateAndtime._get_Today()", "DateAndtime._get_TimeString()", etc, o métodos y variables cuyo nombre empiezan con un número, le añades un caracter válido al principio del nombre y lo arreglas), basta con hacerse una idea de como debería ser la sintaxis correcta y hacer unos cuantos reemplazamientos de string globales desde el propio Visual Studio, no hace falta nada más, pero esas referencias que empiezan por "Me0000000" no lo consigo descifrar.

Saludos.