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

#4941
Citar¿Hay alguna forma de eliminar elementos repetidos en un Array?

Cita de: El Benjo en 22 Junio 2015, 21:55 PMRealmente no hay una funcion en .net que te devuelva un array sin elementos repetidos.

Por supuesto que hay una función en la librería de classes de .Net para eliminar duplicados de un Array / Enumerable, usando LINQ:

IEnumerable.Distinct - MSDN

CitarReturns distinct elements from a sequence by using the default equality comparer to compare values.

Ejemplo:
Código (vbnet) [Seleccionar]
Dim values As Integer() = {1, 5, 5, 5, 4, 1, 12, 4, 55}

values = values.Distinct(EqualityComparer(Of Integer).Default).ToArray

MessageBox.Show(String.Join(", ", values))


El argumento que le asigno al parámetro de la extensión Distinct en este caso es innecesario, puedes dejarlo vacío, pero te he mostrado ese overload para denotar que puedes implementar un comparer personalizado y pasárselo cómo parámetro, aunque esto ya requeriría más trabajo.




Cita de: okik en 22 Junio 2015, 18:23 PMHe probado con Array y ArrayList, pero no he visto nada.

La Class Array y ArrayList debes tratar de ignorarlas y omitir su utilización por completo, hay opciones mejores,
te sugiero utilizar una coleccion genérica de tipo List(Of T), la cual puedes utilizar el método List.Add y List.AddRange para añadir nuevos elementos a la colección y de esta manera incrementar dinamicamente la colección, en lugar de ir redimensionando un objeto de tipo Array de forma primitiva.

Ejemplo:
Código (vbnet) [Seleccionar]
Dim int32List As New List(Of Integer) ' From {1, 5, 5, 5, 4, 1, 12, 4, 55}
int32List.AddRange({1, 5, 5, 5, 4, 1, 12, 4, 55})
int32List = int32List.Distinct.ToList

MessageBox.Show(String.Join(", ", int32List))


Saludos!
#4942
@tincopasan

Antes de nada, Gracias por tu comentario ...ya hacia tiempo que nadie (más que yo) aportaba algo a este hilo, y que lo aporte alguien que no programa en .net (o eso me das a entender) tiene más mérito si cabe.

Pero debo hacer un pequeño apunte sobre el código (con la intención de que le sirva a alguien para aprender, o al menos eso deseo), mira, para convertir un entero a un string binario simplemente puedes recurrir a la utilización de la función Convert.ToString, a uno de sus overloads que toma cómo parametro la base.

Ejemplo:
Código (vbnet) [Seleccionar]
Clipboard.SetText(Convert.ToString(123456789I, toBase:=2)) ' Resultado: 111010110111100110100010101

Esta opción está muy bien para simplificar el código, pero lo cierto es que tu metodología también es buena en el sentido de que enseña "la base" de cómo hacerlo utilizando la aritmética, a la antigua usanza, sin aprovecharse de estas funciones built-in de .Net que tanto nos facilitan la vida en una linea de código. Así cómo tú has mostrado se aprende mejor a resolver problemas, pero bueno, quería dejar constancia de la alternativa, la Class Convert es muy útil.

Saludos!
#4943
Cita de: tincopasan en 22 Junio 2015, 10:46 AM
es fácil:
MessageBoxA es más para python 2.7
ahora probá con MessageBoxW

Las funciones MessageBoxA y MessageBoxW son practicamente lo mismo, la diferencia es que la primera es la versión ANSI (A), y la segunda es la versión Unicode (W) (esto es así por norma general para cualquier función que tenga su adaptación ANSI plus Unicode, no solo con esta función),
el tratamiento de los caracteres de entrada y de retorno cambia (y eso ya debería daros una pista de donde está el problema real, ya que los strings unicodes de py2.7 cambiaron a py3.x), pero una función de Python no tiene por que funcionar en py2.X/py3.X mientras que la otra deja de funcionar, ya que particulármente esas funciones son un simple wrapper de las funciones de la API de Windows; por ende, ambas funciones deberían funcionar correctamente siempre que se esté utilizando la codificación adecuada en los parámetros que recibe la función, y ese es el fallo que aquí se está cometiendo, una manera de solucionarlo sería usando la función str.encode() para codificar el string usando el código de página apropiado para la cultura ANSI específica (CP1252):

Código (python) [Seleccionar]
# -*- coding: Windows-1252 -*-

import ctypes
ctypes.windll.user32.MessageBoxA(0, "Your text".encode('Windows-1252'), "Your title".encode('Windows-1252'), 0)


Saludos!
#4944
En caso de que realmente sea un archivo comprimido, entonces debes modificar el icono por defecto de la asociación del archivo, mediante el registro de Windows.

En caso de que sea un archivo executable (archivo con extensión .exe) entonces deberías poder modificar el icono en la tabla de recursos del archivo, mediante un editor de recursos.

Comienza por especificar la extensión/formato del archivo, no se que tipo de ayuda esperas si no das información útil para ofrecerte una solución óptima.
EDITO: Ok, ya lo hiciste.

EDITO 2:
yo puedo modificar perfectamente el icono del exe ePSXe, ¿qué problema encuentras?, explícate.

De todas formas ResHacker es muy tedioso, te sugiero utilizar la aplicación Restorator 2007, Anolis Resourcer, o PE Explorer Resource Tuner. (el más sencillo que te resultará es Restorator 2007)

Te indico los pasos usando Restorator 2007:
1. Cargas el exe al programa.
2. Vas a la carpeta "Icon", allí encontrarás el icono, con la Id 201.
3. En el árbol (TreeView) de carpetas y recursos que aparece a la izquierda, arrastras el icono que quieras desde el explorer hasta al icono de archivo con nombre "201", o directamente haces click derecho en ese icono de archivo que pone "201" y le das a "Assign" -> "Assign to..." para reemplazarlo por otro icono.
4. Apretas el botón de guardar, listo.

Saludos!
#4945
Comparto esta class que sirve para registrar una extensión de archivo, o para obtener información de una extensión ya registrada en el sistema.

Si encuentran cualquier bug, hagan el favor de comunicármelo para arreglarlo en futuras versiones.




Diagrama de Class:





Ejemplos de uso:
Código (vbnet) [Seleccionar]
FileAssocUtil.Register(regUser:=FileAssocUtil.RegistryUser.CurrentUser,
                      extensionName:=".elek",
                      keyReferenceName:="ElektroFile",
                      friendlyName:="Elektro File",
                      defaultIcon:="%WinDir%\System32\Shell32.ico",
                      iconIndex:=0,
                      executable:="%WinDir%\notepad.exe",
                      arguments:="""%1""")


Código (vbnet) [Seleccionar]
Dim isRegistered As Boolean = FileAssocUtil.IsRegistered(".elek")

Código (vbnet) [Seleccionar]
Dim feInfo As FileAssocUtil.FileExtensionInfo = FileAssocUtil.GetFileExtensionInfo(".wav")

Dim sb As New StringBuilder
With sb
   .AppendLine(String.Format("FriendlyDocName: {0}", feInfo.FriendlyDocName))
   .AppendLine(String.Format("ContentType: {0}", feInfo.ContentType))
   .AppendLine(String.Format("DefaultIcon: {0}", feInfo.DefaultIcon))
   .AppendLine("-----------------------------------------------------------")
   .AppendLine(String.Format("FriendlyAppName: {0}", feInfo.FriendlyAppName))
   .AppendLine(String.Format("Executable: {0}", feInfo.Executable))
   .AppendLine(String.Format("Command: {0}", feInfo.Command))
   .AppendLine("-----------------------------------------------------------")
   .AppendLine(String.Format("DropTarget: {0}", feInfo.DropTarget))
   .AppendLine(String.Format("InfoTip: {0}", feInfo.InfoTip))
   .AppendLine(String.Format("No Open: {0}", feInfo.NoOpen))
   .AppendLine(String.Format("Shell Extension: {0}", feInfo.ShellExtension))
   .AppendLine(String.Format("Shell New Value: {0}", feInfo.ShellNewValue))
   .AppendLine("-----------------------------------------------------------")
   .AppendLine(String.Format("Supported URI Protocols: {0}", feInfo.SupportedUriProtocols))
   .AppendLine(String.Format("DDE Application: {0}", feInfo.DdeApplication))
   .AppendLine(String.Format("DDE Command: {0}", feInfo.DdeCommand))
   .AppendLine(String.Format("DDE If Exec: {0}", feInfo.DdeIfExec))
   .AppendLine(String.Format("DDE Topic: {0}", feInfo.DdeTopic))
End With

MsgBox(sb.ToString)







Código fuente:
http://pastebin.com/gXbp78Pv
http://pastebin.com/aAscfAev
#4946
Dudas Generales / Re: dudas
22 Junio 2015, 03:02 AM
Cick aquí

Saludos!
#4947
Cita de: Gambinoh en 21 Junio 2015, 22:38 PMHe usado Avidemux para incrustar un subtítulo en un archivo AVI (MPEG-4 ASP), y a parte de haber tardado una hora y media

Lo dices cómo si fuese un tiempo excesivo o algo inpropio de un buen software... cuando un ripeo con una buena pasada de codificación requiere muchas horas más que 1,5 h. (si lo que se busca es calidad exquisita), habría que ver los parámetros de codificación y la duración de la pista de video, pero vamos, a simple vista lo que comentas no es algo fuera de lo normal...




Cita de: Gambinoh en 21 Junio 2015, 22:38 PMel archivo original era de 1,5GB y el archivo final de salida ha resultado ser de 2,6GB.

¿Cómo es esto posible?

Simplemente has utilizado unos parámetros de codificación diferentes a los que se utilizaron para la codificación de la fuente original de datos, incrementando la calidad general y por ende incrementando el tamaño final del archivo.




Cita de: Gambinoh en 21 Junio 2015, 22:38 PMEn un tutorial que leí decía que era importante configurar algunos aspectos de la codificación, como por ejemplo la "Muestra de relación de aspecto a 1:1" y el Bitrate. El caso es que en la pestaña Bitrate aparecen varias opciones:

Para ajustar el bitrate correctamente, primero debes conocer el bitrate que se utilizó para codificar la fuente original de datos, aunque también puedes hacer cálculos para intentar aproximarte.




Cita de: Gambinoh en 21 Junio 2015, 22:38 PMQuise mirar la tasa de Bitrate en propiedades del archivo pero no aparecía ese dato, así que lo dejé en "Una pasada - cuantizador de calidad (Media)"

Practicamente todos los encoders y aplicaciones que usan estos encoders por defecto añaden metadatos con información básica en el contenedor del archivo, con suerte podrás ver todos los parámetros de codificación que utilizaron (los argumentos que se le pasaron por linea de comandos al encoder x264, por poner un ejemplo).

En las propiedades del archivo, en la pestaña "detalles", en el campo "Video", deberías poder ver una propiedad llamada "Velocidad de bits total", ese es el bitrate original de la pista de video (o una aproximación), una vez tengas ese dato, imagino que ya sabrás lo que debes hacer con él.




Citar¿Qué opción de codificación habría que elegir para que el video no pierda calidad y tampoco aumente su tamaño final?

Deberías usar una aproximación del bitrate original, plus el mismo encoder que se utilizo para la codificación general (si es un contenedor mp4, probablemente hayan utilizado el encoder x264 o xvid); no es necesario que hagas 2 pasadas, probablemente no lo hayan hecho en la codificación original. Así que en resumen, más o menos sería codidicar usando x264 desde AviDemux.

Existe software especializado en extraer y mostrarte este tipo de información (metadatos) de los videos, cómo es la aplicación mediainfo (o mediainfo GUI en su versión de escritorio):
MediaInfo

Saludos!
#4948
Dudas Generales / Re: Extraer texto de una web
21 Junio 2015, 21:29 PM
Intenta formular una pregunta informática debidamente.

1. Muestra un enlace a la página.

2. Especifica la información en particular que deseas extraer.

3. Especifica que lenguaje de programación tienes pensado o usar o te es indiferente usar.

4. Formula la pregunta en el subforo dedicado a dicho lenguaje de programación.

5. Muestra lo que hayas intentado hacer por ti mismo, aquí no se hacen trabajos.

6. Descarga la API/SDK de libre office y documéntate sobre los miembros que la componen viendo la referencia de la API y los ejemplos que proveen en la página oficial, si tienes pensado hacer conversiones a un formato específico de este programa entonces la vas a necesitar. Si solo quieres extraer datos de un documento Html para pasarlo a texto plano, entonces olvida lo que acabo de decir en este punto.

Saludos!
#4949
Foro Libre / Re: Stop Yulin Festival
21 Junio 2015, 19:40 PM
Cita de: Constance en 21 Junio 2015, 19:25 PMSi los van a matar no pueden hacerlo de un tiro en la cabeza¿¿ para darles al menos una muerte no se si digna, pero si indolora y rápida.
Por qué los HIERVEN VIVOS; los MUTILAN; LOS DESPELLEJAN todo ello vivos

La verdad es que eso es lo realmente triste de esta historia...

Si apareciese un youtuber haciendole algo así a un perro, ya habría algún grupo medio nazi de estos que localizarián al youtuber y le darían una paliza debajo de su casa (cómo ya ha pasado muchas veces con ese tipo de videos y de escarmientos que se difunden en las redes sociales), en cambio, nadie dice nada de lo que hacen los chinos, siempre se va a por los peces pequeños en lugar de ir a por los grandes para intentar cambiar esa crueldad de forma global.

Algunos humanos tienen el sentido de la compasión muy poco desarrollado, pero es que otros muchos además tienen el sentido común NULO, ya que lo tienen menos desarrollado que algunos otros depredadores, cómo por ejemplo los leones, que primero asfixian a su presa para que no moleste ni tenga posibilidad se escape (aunque a veces, les da igual y se lo comen vivos), en cambio al humano le es indiferente que su presa le cause problemas en el proceso de comérselo., no lo entiendo, se supone que somos más inteligentes y además compasivos, pero algunos parecen y son muy retrasados.

Triste ...esta involución de algunas personas.

Saludos!
#4950
Foro Libre / Re: Stop Yulin Festival
21 Junio 2015, 19:16 PM
Cita de: El_Andaluz en 21 Junio 2015, 18:40 PMYo en escuchado que en San Luis Potosi, Mexico se comen las ratas de campo, a mi da un asco que no vea pero si las comen a ver hay que respetar cada cultura los chinos tiene que comer igual que nosotros encima vamos a ir allí a quitarle su comida preferida que son los perros, no seamos hipócritas nosotros aquí comemos cerdo, en otros sitios como en la cultura musulmana esta totalmente prohibido comerlo.Saludos


Allá cada uno con sus costumbres alimenticias, pero la gente no sabe lo que se pierde hasta que prueben una piruleta de escorpión con Tequila con sabor a limón, aunque no entre por los ojos, está muy rico (bueno, en realidad el sabor del escorpión ni se nota).



Y esto tiene mejor pinta, aunque no he tenido ocasión de degustarlo:
   

Saludos!