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

#3551
En Batch no sería nada productivo, resultaría algo lento y produciría un código muy sucio.

Por ese motivo aquí abajo te muestro una solución basada en .NET (en dos lenguajes diferentes, VB.NET y C#, produciendo un código idéntico. elige el que prefieras), solo debes especificar las rutas correspondientes en la variable romsPath y el array miscPaths, y llamar al método RomUtil.CleanRoms().

Debo aclararte que para utilizar el siguiente código primero debes compilarlo (no lo puedes ejecutar directamente haciendo click en Windows...), y para ello lo puedes hacer con Visual Studio.

Este código es reproducible en otros lenguajes como Python, Ruby, etc, en los cuales así mismo necesitarás descargar el intérprete. En VBS también es reproducible, lo comento por que no necesitarías descargar "accesorios" adicionales (imagínatelo como hacer click en un archivo .bat), pero VBS también es un lenguaje limitado y habría que darle algunas vueltas con las funciones relacionadas del FileSystem, resultaría en un código algo feo y yo simplemente he preferido no ponerme a escribir instrucciones de más en un lenguaje que está de menos, pudiendo llevar a cabo lo mismo en otro lenguaje superior.




C#:
Código (csharp) [Seleccionar]
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Vb = Microsoft.VisualBasic;

public sealed class RomUtil {

   public static readonly string romsPath = "C:\\...carpeta de las roms\\";
   public static readonly string[] miscPaths = {
   "C:\\...carpeta de las imágenes\\",
   "C:\\...carpeta de los videos\\",
   "etc..."
   };

   private RomUtil() {}

   public static void CleanRoms() {

       Func<FileInfo, FileInfo, bool> comparisonPredicate =
           (FileInfo a, FileInfo b) => {
               return Path.GetFileNameWithoutExtension(a.Name).Equals(Path.GetFileNameWithoutExtension(b.Name), StringComparison.OrdinalIgnoreCase);
           };

       IEnumerable<FileInfo> romFiles = new DirectoryInfo(romsPath).GetFiles(searchPattern: "*", searchOption: SearchOption.TopDirectoryOnly);

       List<FileInfo> miscFiles = new List<FileInfo>();
       foreach (string dirpath in miscPaths) {
           miscFiles.AddRange(new DirectoryInfo(dirpath).GetFiles(searchPattern: "*", searchOption: SearchOption.TopDirectoryOnly));
       }

       foreach (FileInfo miscFile in miscFiles) {
           bool isNotFound = (romFiles.FirstOrDefault((FileInfo f) => comparisonPredicate(f, miscFile)) == null);

           if ((isNotFound)) {
               // Enviar el archivo a la papelera de reciclaje:
               Vb.FileIO.FileSystem.DeleteFile(miscFile.FullName, Vb.FileIO.UIOption.OnlyErrorDialogs, Vb.FileIO.RecycleOption.SendToRecycleBin);

               // O eliminarlo permanentemente:
               // miscFile.Delete();
           }
       }

   }

}



VisualBasic.NET:
Código (vbnet) [Seleccionar]
Imports System;
Imports System.Collections.Generic;
Imports System.IO;
Imports System.Linq;
Imports Microsoft.VisualBasic

Public NotInheritable Class RomUtil

   Public Shared ReadOnly romsPath As String = "C:\...carpeta de las roms\"
   Public Shared ReadOnly miscPaths As String() = {
       "C:\...carpeta de las imágenes\",
       "C:\...carpeta de los videos\",
       "etc..."
   }

   Private Sub New()
   End Sub

   Public Shared Sub CleanRoms()

       Dim comparisonPredicate As Func(Of FileInfo, FileInfo, Boolean) =
           Function(ByVal a As FileInfo, ByVal b As FileInfo)
               Return Path.GetFileNameWithoutExtension(a.Name).Equals(Path.GetFileNameWithoutExtension(b.Name), StringComparison.OrdinalIgnoreCase)
           End Function

       Dim romFiles As IEnumerable(Of FileInfo) =
          New DirectoryInfo(romsPath).GetFiles("*", SearchOption.TopDirectoryOnly)

       Dim miscFiles As New List(Of FileInfo)
       For Each dirpath As String In miscPaths
           miscFiles.AddRange(New DirectoryInfo(dirpath).GetFiles("*", SearchOption.TopDirectoryOnly))
       Next

       For Each miscFile As FileInfo In miscFiles
           Dim isNotFound As Boolean =
               (romFiles.FirstOrDefault(Function(f As FileInfo) comparisonPredicate(f, miscFile)) Is Nothing)

           If (isNotFound) Then
               ' Enviar el archivo a la papelera de reciclaje:
               FileIO.FileSystem.DeleteFile(miscFile.FullName, FileIO.UIOption.OnlyErrorDialogs, FileIO.RecycleOption.SendToRecycleBin)

               ' O eliminarlo permanentemente:
               ' miscFile.Delete()
           End If
       Next

   End Sub

End Class


Saludos!
#3552
Muchas gracias, lo doy por solucionado, ahora solo debo elegir entre esas dos últimas opciones que me dieron a conocer :).
#3553
Foro Libre / Re: Reflexiones de las mías.
11 Julio 2016, 11:12 AM
Cita de: Hason en 11 Julio 2016, 02:08 AMVolviendo al tema principal, yo creo que los seres humanos, es como si no formaramos parte del mundo, es decir no estamos en armonia con la naturaleza,es como si estuvieramos aquí por obra de alguien, todo está muy calculado y en armonia en la naturaleza pero nosotros no, salvo unos pocos despiertos que si están integrados.

Hason, eres el único al que le daré mi opinión sobre sus argumentos (y solo esta vez).

Por supuesto que el ser humano forma parte de este mundo al 100% en su completa armonía, pues nacemos aquí, vivimos aquí, y terminamos nuestra vida en este planeta, ¿acaso se puede estar más ligado a un planeta?, ¿sino es vivir, qué más esperas que te de la vida para que puedas sentir que formas parte de todo esto?, ¡si poder vivir ya lo es todo!.




Cita de: Hason en 11 Julio 2016, 02:08 AMSomos la unica especie inteligente, que nos matamos los unos a los otros, organizamos guerras, matanzas, engaños, no es lógico.

Inteligente hasta ese nivel, es posible, pero los únicos que actuamos así ...no. Los primates, por poner un ejemplo (el más inteligente) de otras varias especies mamíferas (ej. Hienas, perros salvajes, lobos, etc.), también organizan guerras y matanzas contra otros grupos, lo hacen en manada y con una estrategia previamente planificada (como si fuesen militares invadiendo una zona), ya que éstos son muy territoriales (sobre todo los monos), y lo hacen solamente por agredir, matar, y ganar ese territorio, casi como nosotros, o igual que nosotros.

El ser humano no es malo, no puede ser malo, simplemente hay personas (lo se, son MUCHÍSIMAS por desgracia) que carecen una insuficiencia del sentido del Amor (o felicidad), y eso les lleva a cometer actos (asesinatos, guerras, etc) que los que no tenemos esa insuficiencia consideramos malvados, tristes y horribles, por que esas otras personas no valoran correctamente su vida, y por ende tampoco la vida de los demás seres humanos a los que matan.

Saludos!
#3554
Foro Libre / Re: Reflexiones de las mías.
11 Julio 2016, 11:00 AM
Cita de: EagleStrike en 10 Julio 2016, 20:30 PM¿Qué es lo que nos hace pensar que la muerte de los seres vivos en general es mala?

La fecha de caducidad del cuerpo físico, de los seres vivos de La Tierra.

Dicho de una mejor forma, la mente sabe que tiene una fecha de caducidad, y por ende, no quiere morir, le aterra morir, la mente lo que desea es vivir. Todos los tipos de miedo que sentimos (TODOS) de una forma u otra están relacionados con el hecho de saber que algún día el cuerpo físico dejará de vivir ...inevitablemente.




Cita de: EagleStrike en 10 Julio 2016, 20:30 PM¿Qué es lo que nos hace pensar que la contaminación es mala?

Si la mente no tuviese la certeza de que existe esa fecha de caducidad que le llevará a la muerte física, entonces no tendría miedo, y por ende, la mente no podría albergar el pensamiento de que algo es malo. ¿responde eso a tu pregunta?.




Cita de: EagleStrike en 10 Julio 2016, 20:30 PM¿Y si la especie humana es tan sólo un factor más en el desarrollo de la armonía en este ecosistema que llamamos Tierra, y todo lo que consideramos malo se supone que pase para sostener la armonía del planeta, de la misma manera que fenómenos como el ciclo del agua?

Es que es así, tal y como dices. ¿Qué es lo que ocurre cuando llega la mencionada fecha de caducidad del ser humano?, qué sirve como nutrientes a otras especies (como lombrices), por ende, la muerte del ser humano tiene un propósito más allá de esa fecha de caducidad del envoltorio físico, para la armonía del ecosistema.

Quizás no sea el mejor ejemplo que se pueda dar, pero me parece un ejemplo más que suficiente y claro para argumentar la realidad (no la verdad).

Dicho esto, te aconsejo que no pienses con la mente, y que respetes los argumentos basados en un sistema de creencias científica que te darán algunos ya conocidos de este foro. Yo los respetaré de la misma forma, pero no los discutiré, por que la realidad no se puede discutir, y la discusión solo lleva a la verdad, no a la realidad.

Saludos!
#3555
Hmmmmm...

He visto el tipo de detectores que me habeis mostrado, gracias, pero eso son portátiles (profesionales pero portátiles), yo lo que busco es un detector que se pueda colgar en la pared durante años y así no tener que preocuparse de coger un cacharro portatil para hacer inspecciones esporádicas, ¿se entiende?, algo parecido a esto:



(pero que detecte el Metano, ya que ese no lo hace.)

PD: Esto no tiene nada que ver con lo que me pasó, es simplemente por que me he dado cuenta de que siempre es mejor prevenir posibles catástrofes de fugas en la casa.

Saludos!
#3556
Hola

¿Loas archivos multimedia tienen el mismo nombre que las ROM?, por ejemplo: "juego.png" y "juego.zip". En ese caso puedo ayudarte, de lo contrario creo que no. Aclara ese punto por favor.

Saludos!
#3557
Hola.

Me he decidido a comprar un detector de gas, éste debe detectar al menos el Metano (Gas Natural), y el Monóxido de Carbono (por la combustión del calentador de gas), con un sensor fotoeléctrico o electroquímico (creo que es lo mismo, pero por si acaso) ...que no sea sensor mecánico, y debe tener un indicador de PPM (esto ya es un capricho, para darme mayor seguridad), EDITO: y debe ir a pilas/batería (no enchufado a la corriente).

En todo Amazon me ha sido imposible encontrar un detector que cumpla esos requisitos, no pido mucho, que detecte el Metano, que vaya a pilas y que tenga un indicador, hay cientos de productos que cumplen esos requisitos pero claro... no son para detectar el gas Metano, sino para otros gases. Yo ya no se si es que he mirado mal, o desconozco algo sobre la composición de los gases o... no se, pero la mayoría de detectores sirven para detectar Monóxido de Carbono SOLAMENTE, lo cual me parece que no es muy útil teniendo una cocina eléctrica.

Estimo que el precio de un detector así debe star entre los 30€ hasta los 100€, lo asumo.

PD: Si estoy equivocado en algo, corregidme!.

Un saludo!
#3558
Cita de: Hason en  8 Julio 2016, 00:52 AMActualmente para ir a la guerra, lo mejor es estar delgado en los huesitos, así es más dificil de darte...

Si eso fuese cierto, entonces no existiría el entrenamiento físico, y de eso en el ejercito se sufre mucho (no hablo por experiencia propia, pero lo se por haberlo visto en documentos visuales).

Si estás "en los huesos", sostendrías un arma con dificultad, y no podrías equilibrar el impacto de retroceso del arma por falta de fuerza, te saldría volando la metralleta p'a cuenca y probablemente se escucharía un "Fuego Amigo!!".

Por cierto, creo que habría sido más realista comparar al troglodita este con un orco de Warcraft, que con Hulk. Los fans de Marvel deben sentirse ofendidos (¿pero a quien le importa? xD).

Saludos!
#3559
Cita de: tincopasan en  6 Julio 2016, 22:08 PM
me encantaría entender lo que preguntas. supongo que te referís a handle y FindWindow justamente lo que hace es devolver el handle.

Creo que él se refiere a identificar la ventana mediante un handle de ventana el cual ya conoce, para así evitar tener que recurrir a la función FindWindow/FindWindowEx para buscar el handle de esa ventana mediante un string.

Creo que yo tampoco entiendo la pregunta, por que en caso de que ya conozcas el handle de ventana entonces solo deberías cambiar esto:
Código (vb) [Seleccionar]
hwnd = FindWindow("l2UnrealWLog", vbNullString)

Por esto otro:
Código (vb) [Seleccionar]
hwnd = el handle de ventana

Lo que es muy obvio, así que quizás no sea eso lo que estés preguntando...

Saludos
#3560
Hola

Según he entendido, el problema es que medianle el algoritmo de iteración de píxeles del picturebox, obtienes unas coordenadas de la pantalla, pero tu quieres obtener las coordenadas dentro del area cliente de ese control picturebox?.

Sea como sea, puedes traducir un punto de la pantalla a un punto del área cliente de ese picturebox, y viceversa, utilizando las siguientes funciones win32 según el tipo de punto que tengas como referencia:

Un ejemplo de uso escrito en VB.NET para traducir unas coordenadas del área cliente de un control, a la pantalla:

Código (vbnet) [Seleccionar]
Dim pcbHwnd As IntPtr = Me.PictureBox1.Handle
Dim scrPt As Win32Point

NativeMethods.ClientToScreen(pcbHwnd, scrPt)
Cursor.Position = scrPt


PD: Esto en VB.NET sería más simple y sin recurrir a código no administrado, pero por el código que has publicado deduzco que estás utilizando el antiguo VB6.

Saludos