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

#1611
Hola.

Por favor, lee las normas del subforo y utiliza las etiquetas GeShi para darle formato a los bloques de código.. . .

Respondiendo a tu pregunta, el tipo de exceptión de referencia nula, la cual habla por si sola, te está dando una pista de que hay un miembro sin inicializar. Para ser más específicos: nunca inicializas los elementos del Array antes de ponerte a buscar coincidencias en los elementos de dicho Array, o dicho de otra forma: nunca llamas al método "CrearLista" antes del método "Buscar", se puede decir que es un típico "fallo tonto" sin mayor importancia.




Con respecto al código que tienes actualmente, en general, creo que te estás complicando demasiado la vida utilizando un Array multidimensionál sin un motivo que sea razonable aparentemente... aunque solamente fuese con la intención de "recordar y practicar lo aprendido", hay cosas más productivas que poder practicar, ya que los Arrays multidimensioanles y/o los Arrays irregulares (Jagged Arrays) poco o nada los vas a necesitar usar a la larga para un escenario de la vida real, así que te sugiero que definas un tipo personalizado (clase o estructura) para representar la información de un "Modelo", y a partir de ahí tan solo tienes que construir una colección genérica de varios elementos (varios "Modelo") con la que trabajar de forma mucho más sencilla, robusta y sofisticada, en fin, una opción óptima, pues ten en cuenta que además los tipos de colecciones genéricas como por ejemplo Lis<T> ya exponen miembros para buscar y devolver coincidencias en los elementos de la colección, así como buscar el índice de un elemento y etcétera, son cosas que haces en tu código... lo que significa que te ahorrarías la necesidad de implementar esas...metodologías de búsqueda por ti mismo con un Array multidimensional.

Ejemplo de implementación:

Código (csharp) [Seleccionar]
using System;
using System.Collections.Generic;
using System.Threading;


Código (csharp) [Seleccionar]
/// <summary>
/// Represents a model.
/// </summary>
public sealed class Model : IComparable<Model> {

   /// <summary>
   /// Gets the model's name.
   /// </summary>
   public string Name { get; }
   /// <summary>
   /// Gets the model's weight, in grams.
   /// </summary>
   public int Weight { get; }
   // etc...

   /// <summary>
   /// Prevents a default instance of the <see cref="Model"/> class from being created.
   /// </summary>
   private Model() { }

   /// <summary>
   /// Initializes a new instance of the <see cref="Model"/> class.
   /// </summary>
   /// <param name="name">
   /// The model's name.
   /// </param>
   /// <param name="weight">
   /// The model's weight.
   /// </param>
   /// <exception cref="ArgumentNullException">
   /// name - Name can't be null.
   /// </exception>
   /// <exception cref="ArgumentOutOfRangeException">
   /// weight - A value greater than 0 is required.
   /// </exception>
   public Model(string name, int weight) {
       if (string.IsNullOrWhiteSpace(name)) {
           throw new ArgumentNullException("name", "Name can't be null.");
       }
       if (weight <= 0) {
           throw new ArgumentOutOfRangeException("weight", weight, "A value greater than 0 is required.");
       }

       this.Name = name;
       this.Weight = weight;
   }

   /// <summary>
   /// Compares the current <see cref="Model"/> with another <see cref="Model"/>
   /// and returns an integer value that indicates whether the current instance precedes, follows,
   /// or occurs in the same position in the sort order as the other <see cref="Model"/>.
   /// </summary>
   /// <param name="other">
   /// Other <see cref="Model"/> to compare with this <see cref="Model"/>.
   /// </param>
   /// <returns>
   /// An integer value that indicates the relative order of the objects being compared.
   /// </returns>
   public int CompareTo(Model other) {
       return string.Compare(this.Name, other.Name, StringComparison.Ordinal);
   }

   /// <summary>
   /// Returns a <see cref="String"/> that represents this <see cref="Model"/>.
   /// </summary>
   /// <returns>
   /// A <see cref="String"/> that represents this <see cref="Model"/>.
   /// </returns>
   public override string ToString() {
       return string.Format("{{ {0}:{1}, {2}:{3} }}",
                            nameof(this.Name), this.Name,
                            nameof(this.Weight), this.Weight);
   }

}


Código (csharp) [Seleccionar]
class Program {
   
   private static SortedSet<Model> Models; // Note that collection elements are sorted by Model.Name property.

   static void Main(string[] args) {
       string input = null;
       IEnumerable<Model> matches = null;

       Program.BuildModelCollection();
       while (true) {
           Console.Write("Input a model's name to match: ");
           input = Console.ReadLine();
           matches = Program.MatchModelName(input);
           Program.PrintMathes(matches);
       }
   }
   
   private static void BuildModelCollection() {
       Program.Models = new SortedSet<Model> {
           new Model("Aitana Blanco", 55),
           new Model("Aitana Gris", 55),
           new Model("Arcalis Mix", 55),
           new Model("Andes Marengo", 50),
           new Model("Andes Sage", 50),
           new Model("Alaska Gris", 50)
       };
   }

   private static IEnumerable<Model> MatchModelName(string input) {
       foreach (Model m in Program.Models) {
           if (m.Name.ToLower().Contains(input.ToLower())) {
               yield return m;
           }
       }
   }

   private static void PrintMathes(IEnumerable<Model> matches) {
       if (matches == null) {
           Console.WriteLine("No results found.");
           return;
       }

       int count = 0;
       foreach (Model m in matches) {
           Console.WriteLine(string.Format("[{0}]: {1}", Interlocked.Increment(ref count), m.ToString()));
       }
       Console.WriteLine();
   }
   
}


Nota: El código fuente de arriba ha sido desarrollado bajo Windows con el framework multiplataforma .NET Core para soportar tu sistema operativo.

Resultado de ejecución:



PD: Evidentemente la clase "Modelo" es tan solo un ejemplo simplificado el cual lo adaptarías y lo extenderias para cubrir el resto de necesidades que tengas en tu escenario de trabajo.

Un saludo.
#1612
Programación General / Re: Programación drivers
1 Noviembre 2017, 00:01 AM
Cita de: FermatsTheorem en 31 Octubre 2017, 04:58 AMEstoy interesado en la programación de drivers, y me gustaría saber algún punto de partida para esto. Ya sea aprender algún lenguaje en particular, arquitectura de computadoras, electrónica digital, etc.

Aquí tienes un ejemplo de como puedes desarrollar un driver en modo kernel utilizando el lenguaje C/C++ en la IDE Visual Studio:


...en la misma página a la izquierda puedes encontrar una breve introducción para el desarrollo de drivers en modo usuario con C/C++ en Visual Studio, y si empiezas a leer desde el tema principal puedes aprender gran cantidad de fundamentos sobre todo aquello que vas a necesitar aprender relacionado con el desarrollo de drivers en general:


...Ah, y no ignores la recomendación que resalta al principio del artículo antes de empezar a leer el resto de la guía:
CitarYou should already be familiar with the C programming language, and you should understand the ideas of function pointers, callback functions, and event handlers. If you are going to write a driver based on User-Mode Driver Framework 1.x, you should be familiar with C++ and COM.

Saludos.
#1613
¿Tal vez esto es por el comentario que te hizo hizo cierto usuario en el post del desfragmentador?, me veía venir algo así. Sea lo que sea lo que te pase creo que no es tan grave como para querer eliminar toda prueba de existencia del foro...

Saludos
#1614
Mi oggpinión cong reggspejjto al viggdeo es...



...breeeghhjjjff.




Cita de: El_Andaluz en 29 Octubre 2017, 17:01 PMViva la Tierra! Libre!.

Eso, cantemos por una Tierra libre... PERO LIBRE Y UNIDA, ¡¡¡ PEDAZO DE @#FU$$#@$ !!!!

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

Cita de: El_Andaluz en 29 Octubre 2017, 17:01 PMbasada en el respeto coherente hacia las personas.

Más bien basada en tolerar de forma incoherente las ideas de los catalanes independentistas para permitir que ellos le falten el respeto al resto de familias Españolas, a la ley, a Europa, al planeta entero y a todo aquél quien se oponga a su " "libertad de expresión" ".

De verdad, qué gente tan hipócrita y sin neuronas ( me refiero a quien haya escrito eso, bueno, y a los catalanes independentistas también )




Ojalá todos estos separatistas fuesen como y tuviesen la capacidad de reflexión (el razonamiento) de este muchacho ex-independentista:

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

En fin. Saludos
#1615
Intentaré ignorar juegos típicos como los Final Fantasy, Tomb Raider, Half Life y Counter Strike, etc...

Hay muchos juegos que marcaron mi infancia y están "olvidados", con 5 o 6 años me picaba echando monedas al Black Tiger (entre otros), ¡un juegazo del año 1987!:

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

Luego en 1990 hicieron una mala copia española por parte de FX Interactive (los del famoso juego point&click Hollywood Monsters), aunque tampoco está mal del todo...

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

En 1993 la compañia Apogee (que por cierto, nos dejó toda un abanico de reliquias de los videojuegos) publicó un juego tipo Doom o Wolfenstein que tuvo bastante éxito en su época (la jugabilidad era muy buena) pero no nos dejó el mismo legado...

 [youtube=640,360]https://www.youtube.com/watch?v=QQ4MH4ypDW4[/youtube]
...la segunda parte ya no fue tan buena.

En el 1995 se publicó otro shooter tipo Doom que probablemente los frikis de las nuevas generaciones conocerán por tratarse de un juego único y espectacular ambientado en el mundo de Star Wars:

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

En el año 1996 Dinamic Multimedia nos sorprendió a todos con un juegazo que pasó a la historia por su temática, diversión, y por estar interpretado por actores españoles : Los Justicieros

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

En el año 1997 salió a la venta el que yo personálmente considero el mejor juego de la saga Castlevania:

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

...¿Y en el año 2000, Elektro, ocurrió algo interesante en el 2000?, pues si, todas las compañías de seguridad informática empezaron a sacarle los cuartos a las empresas españolas y gobiernos de todo el mundo por culpa del ya olvidado TIMO del "Efecto 2000" xD. Ah, si, y la lista de juegazos que salieron en ese mismo año es impresionante, sin ir más lejos fue el año de Diablo II, Deus EX, Counter Strike, Baldur's Gate II, Crazy Taxi, Los sims, Shenmue, y muchos más, pero todo son juegos que la mayoría conocemos, ¿verdad?, así que haré una mención especial a un juego algo olvidado que fue exclusivo de Playstation y que a mi personálmente me fascinó:

 [youtube=640,360]https://www.youtube.com/watch?v=JDAw-FFn6tQ[/youtube]
EDITO: rectifico, el juego salió en el año 1999.

En el 2003 la compañia Team17, famosa por su saga Worms lanzó a la venta el Worms 3D, un juego que fue bastante innovador por ser completamente en 3D y con una perspectiva de cámara distinta. En el año 2005 le siguió un remake (oficialmente no, pero todos sabes que se trata de un remake) que abordó todas las imperfecciones del juego anterior, y se convirtió en uno de los juegos más jugados en Internet, durante muchos años todas las salas de espera o chats estuvieron a rebosar, y hoy en día incluso se sigue jugando, fue realmente muy popular...

 [youtube=640,360]https://www.youtube.com/watch?v=nkuubGuI_Js[/youtube]
...existe un remake más o menos reciente: Worms Ultimate Mayhem

En el año 2007 una desarrolladora llamada Gaijin Entertainment nos regaló un magnifico y entretenido juego del género hack and slash: X-Blades

 [youtube=640,360]https://www.youtube.com/watch?v=qvt-WVRzi7o[/youtube]
...a esta reliquia de juego olvidado le siguió un reboot llamado Blades of Time en el año 2012, por parte de la misma desarrolladora.

En el 2010, aparte de los maravillosos Mass Effect 2 y Red Dead Redemption entre otros, tenemos un juego en exclusiva de PS3, una obra maestra que fue un juego igual de popular, con mucho hype en su momento, pero yo creo que ya no se recuerda tanto como antes...

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

En el 2013 se publicó una nueva entrega de la famosa franquicia Saints Row, que aunque muy famosa como he dicho, también muy infravalorada por culpa de juegos como Grand Theft Auto. Creo que este juego se merece una mención por que sinceramente a mi me dió muchísima diversión... más que un GTA V.

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

En el 2017 salió a la venta un juego con uno de los argumentos mejor elaborados que jamás he visto en los videojuegos, es un juego único, muy trabajado, un juego de los de verdad... no de esa moda de mierd@ donde nos meten micropagos hasta para comprar puntos de habilidad en el propio juego. Lamentablemente este juego fue infravalorado sin piedad por culpa de un gran porcentaje de internautas que, sin haber juego a dicho juego se dedicaron a decir cosas desde la más pura ignorancia, y la jugabilidad del juego obtuvo una muy desmerecida mala fama por culpa de toda esa gentuza ignorante, pero bueno, ya sabemos todos que Internet está infestada de niños ratas y pseudo-críticos que se dedican a echar mierd@ por que les gusta o sin corroborar las gilipolleces que dicen.

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

PD: evidentemente me dejo sin mencionar muchísimos buenos juegos de todos los tiempos que considero infravalorados u olvidados, pero bueno, no tengo intención de escribir la Biblia.

Saludos.
#1616
Bueno, al menos a los catalanes independentistas siempre les quedará el orgullo de saber que IKEA siempre reconoció la independencia de sus casas...

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

PD: vale, un chiste malo y viejuno, pero al mismo nivel que este circo tan malo que se han montado los payasos del gobierno catalán con el tema de la independencia...
#1617
Cita de: SrNok_ en 28 Octubre 2017, 19:59 PMen los archivos filtrados esta semana por USA sobre el asesinato de JFK se encontraría un plan de auto-atentado

A la mierd@ todo...

#1618
Cita de: Code99 en 26 Octubre 2017, 18:01 PMAlguien me recomienda una película o serie en la que los humanos fabriquen una máquina que poco a poco adquiere inteligencia y que destruya a los seres humanos, y después va rumbo a marte a empezar su nueva colonización?

Lamentablemente la sociedad actual está plagada a rebosar de ese tipo de películas, que si fuesen buenas películas pues sería algo genial, pero no es así, tienes una en cada esquina y a cada cual es más cutre y con menos vida útil que la anterior, ¿así que para qué quieres que te recomendemos más basura de forma innecesaria?, ¿es que acaso te apetece morir agonizando de sufrimiento mientras que de una forma absurdamente voluntaria por tu parte le obligas a tu cerebro procesar esos horribles argumentos e imágenes de las películas de robots de hoy en cuyo valor es NULO para la inteligencia humana?, ¿es que no te has cansado de ver morralla barata y llena de clichés tipo Transformers?.

...No me lo tengas en cuenta, solo es mi peculiar forma de quejarme por la mierd@ de cine que hacen hoy en día en Hollywood, todo son películas sin ideas y remakes malos, ¡muy malos!.



...Eso si que era una película original de robots, la 1 la 2 y la 3, ¡joder!.




En fin, respondiedo a tu pregunta te recomendaré una serie más o menos reciente cuyo argumento personálmente me gustó mucho: WestWorld



"Yo, Robot", ese es el nombre de un clásico bastante divertido que no puede faltar en ninguna filmoteca...



Otro clásico:



Si quieres ver una película algo distinta a toda la basura de cine robótico de hoy en día, yo le daría una posibilidad a "Autómata", aunque no me convence del todo la peli... de hecho, hay que reconocer que es una *****, pero es una ***** "distinta".



Si te van las peleas "reglamentarías" entre robots pues quizás te interese ver Acero Puro:


( Sálvese unicamente los efectos especiales. El argumento, interpretaciones y todo lo demás en la película es un truño putrefacto, para variar... )

Y si quieres un clásico de esa típica revolución y dominación robótica que no paran de meternos en la cabeza pues... todas las películas de la saga Terminator, por supuesto.

Bueno, prefiero dejarlo aquí, que ya me están entrando arcadas al recordar las películas que me dejo por nombrar del repertorio de cine de robots "actual" que está infestado de auténtica basura como Robocop (la del 2014), Al filo del mañana, Chappie, Elyssium, Ex-Machina, etcétera...

Saludos
#1619
Una interpretación de las palabras del otro es solo eso, una interpretación. Cierro el tema para evitar cualquier otra...confrontación desarmónica por parte de cualquiera.
#1620
Scripting / Re: temporizador de teclas en bat
28 Octubre 2017, 17:18 PM
Cita de: por_cel en 28 Octubre 2017, 14:01 PM¿Se puede ejecutar una orden que pulse una tecla ( espaciador ) y a los X segundos , la vuelva a pulsar ? indicando yo los segundos que quiera, con un programilla en bat.

Con "puro" código Batch no es posible, Batch no provee ninguna característica de interoperabilidad con el dispositivo de teclado para poder simular eventos de pulsación de teclas ni nada que se le parezca.

Como solución alternativa, lo que se suele hacer desde un batch-script e ironicamente para cubrir las limitaciones por naturaleza de Batch, sería utilizar aplicaciones de terceros como por ejemplo nircmd, o escribir un archivo local (un script) cuyo contenido sería una unidad de código funcional escrita en el lenguaje Visual Basic Script (también conocido por sus siglas VBS), en este caso un código que llamaría al miembro SendKeys, pero llevar a cabo esta especie de hibridación de códigos se suele hacer por pura inexperiencia / ignorancia o simplemente por que el programador es un chapuzas sin remedio... ya que lo cierto es que resulta una soberana estupidez hacer algo así debido a que siempre se tiene la ventajosa opción de recurrir directamente a VBS para desarrollar todo el código desde un principio.

Cita de: por_cel en 28 Octubre 2017, 14:01 PMEntre en este mundillo hace poco y estoy muy verde

El mejor consejo que alguien te podrá dar jamás: deja de utilizar Batch, o en su defecto limítate a utilizarlo teniendo en mente el propósito con el que éste fue creado, es decir, para permitir una mínima interoperabilidad con los componentes de la shell de Windows para poder llevar a cabo tareas básicas de usuario (pero muy, muy básicas) las cuales están mayormente relacionadas con la administración del sistema de archivos en general.

Batch no es considerado como un lenguaje de programación, sino más bien como una herramienta limitada, bastante inutil y en la que el tiempo por la complejidad de escritura para el desarrollo de cualquier algoritmo que en cualquier otro lenguaje sería considerado "sencillo" de escribir y realizar, en esta herramienta se puede acabar volviendo algo extremadamente tedioso (y creando un código muy espagueti) debido a sus limitaciones.

Hay otros lenguajes a tu disposición nativamente soportados por Windows los cuales son infinitamente más completos y sofisticados en comparación, como es el caso de PowerShell, en el que además puedes compilar (para posteriormente cargar en memoria y usar los miembros compilados) unidades de código escritas en cualquier lenguaje soportado por la plataforma .NET Framework, como sería C# y VB.NET , entre otros.

En fin. Para enviar la tecla "espacio" a la ventana que esté activa y repetir la pulsación de forma indefinida con un intervalo de tiempo determinado, puedes hacerlo de la siguiente manera con PowerShell:

script.ps1
Código (actionscript) [Seleccionar]
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")

[TimeSpan]$interval = [System.TimeSpan]::FromMilliseconds( 1000 ) # 1 sec.
 [String]$keys     = " " # space bar
                         # https://msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys.send(v=vs.110).aspx

while( $true ) {
   [System.Windows.Forms.SendKeys]::SendWait( $keys )
   [System.Threading.Thread]::Sleep( $interval )
}

( nótese que el código es sincrónico, bloqueante. )

...el código es un ejemplo que adaptarías a tus necesidades. Recuerda que aquí no le regalaremos el trabajo hecho a nadie, si necesitas estudiar la utilización básica de este lenguaje, pues estudialo, y si tienes una pregunta específica, pues sientete libre de formular dicha pregunta en este foro.

Saludos.