|
7351
|
Foros Generales / Dudas Generales / Re: ¿Cuantas palabras hay en español e Ingles?
|
en: 6 Marzo 2014, 00:27 am
|
Vaya, parece un reto rinteresante (y con mayor dificultad que los retos de ingenieria inversa). Por un lado resulta obvio que es una cifra imposible de calcular a ciencia exacta, ya que existen palabras que están obsoletas de la edad del medievo, luego hay otras que tienen varios significados lo cual no se puede determinar con exactitud si se trata de una palabra o dos, y otras palabras que... bueno, otras palabras que depende de la persona la podría considerar una palabra o no ( Shula, Zanahorio, Perraca, Trololo, Yah Bich!, etc... que quizás no son los mejores ejemplos, pero no se me ocurre ninguno mejor ahora mismo), y luego está el Spanglish, algo que a mi personálmente me causa verguenza ajena. Lo que si me parece algo más sensato es intentar estimar una cifra aproximada de palabras registradas actuálmente. Sobre el Inglés, según la marca de diccionarios ' Oxford': The Second Edition of the 20-volume Oxford English Dictionary contains full entries for 171,476 words in current use, and 47,156 obsolete words. To this may be added around 9,500 derivative words included as subentries. Over half of these words are nouns, about a quarter adjectives, and about a seventh verbs; the rest is made up of exclamations, conjunctions, prepositions, suffixes, etc. And these figures don't take account of entries with senses for different word classes (such as noun and adjective). Sobre el Castellano, no he encontrado información al respecto en la ' Real Academia Española (RAE)', así que aporto otra información de dudosa veracidad: Spanish dictionaries, on the other hand, typically have around 100,000 words. Of course, many of those words are seldom used. Saludos.
|
|
|
7353
|
Programación / Programación General / Re: ayuda con python soy nuevo!!
|
en: 5 Marzo 2014, 23:19 pm
|
cuando escribo python en cmd me dise python no se reconoce como un comando interno o externo, programa o archivo por lotes ejecutable. Claro, necesitas agregar la ruta del directorio en donde se ubica ' Python.exe', a la variable de entorno ' PATH' de Windows, de lo contrario, Windows no puede localizar el archivo (a menos que lo coloques en la carpeta ' C:\Windows\System32', que ya está agregada por defecto al ' PATH'). Puedes añadir la ruta diréctamente desde la ' CMD' usando el comando ' SetX' y/o ' Reg', o desde el ' Regedit', pero por razones de seguridad te recomiendo usar mi Software dedicado a esa misma función: · [SOURCE] PATHS (Administra las entradas de las variables de entorno 'PATH' y 'PATHEXT')Te muestro un ejemplo de uso para añadir ' Python' al ' PATH' de todos los usuarios de un PC (suponiendo que tengas ubicado el intérprete de Python en esta ruta específica): PATHS /Add "C:\Program Files (x86)\Python" Una vez hayas agregado el directorio de Python al PATH, solo debes hacer esto: Aunque, por otro lado, puedes usar diréctamente la ubicación de Python sin necesidad de agregar nada al PATH: "C:\Ruta donde tienes instalado Python\python.exe" "hola.py" ...Pero, claro, eso resulta muy incómodo. Tampoco te vendría mal asociar los Scripts de Python (.py, .pyc) para que, al hacer doble click en un archivo, se carguen automáticamente al intérprete: ...Mediante este Registry-Script: Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.PY] @="python.file"
[HKEY_CLASSES_ROOT\.PYC] @="Python.CompiledFile"
[HKEY_CLASSES_ROOT\Python.File\Shell\Open\Command] @="CMD /K \"\"C:\\Program Files (x86)\\Python\\Python.exe\" \"%1\" %*\""
[HKEY_CLASSES_ROOT\Python.NoConFile\Shell\open\command] @="CMD /K \"\"C:\\Program Files (x86)\\Python\\Pythonw.exe\" \"%1\" %*\"" ...O mediante este Batch-Script: :: Converted with Reg2Bat by Elektro REG ADD "HKEY_CLASSES_ROOT\.PY" /V "" /D "python.file" /F REG ADD "HKEY_CLASSES_ROOT\.PYC" /V "" /D "Python.CompiledFile" /F REG ADD "HKEY_CLASSES_ROOT\Python.File\Shell\Open\Command" /V "" /D "CMD /K \"\"C:\Program Files (x86)\Python\Python.exe\" \"%%1\" %%*\"" /F REG ADD "HKEY_CLASSES_ROOT\Python.NoConFile\Shell\open\command" /V "" /D "CMD /K \"\"C:\Program Files (x86)\Python\Pythonw.exe\" \"%%1\" %%*\"" /F
me puedes explicar mejor sobre como verificar que se encuentre en la variable paths de windows. Con la misma utilidad que te indiqué puedes comprobarlo (aunque dado el error que mencionaste tan descriptivo de la CMD, ya te puedo asegurar que no lo tienes agregado al PATH), con el comando: (Las ubicaciones marcadas en rojo indican que el directorio no existe) También puedes comprobarlo desde la ' CMD' con el comando:
O desde el ' Regedit' en la(s) clave(s): HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment PD: Las dudas sobre Python debes formularlas en el subforo de Scripting, allí recibirás la ayuda apropiada.Saludos!
|
|
|
7354
|
Programación / Programación General / Re: [VBS] Saber si eres administrador
|
en: 5 Marzo 2014, 22:45 pm
|
Gracias por la solucion en VB, pero al final he decidido hacerlo en C++ Si para ti no supone un problema realizar la comprobación de si el usuaro actual es Administrador en el lenguaje que sea, entonces yo te recomiendo VB.NET/CSharp, no necesitas manejar la WinAPI como estás intentando en VB6 y C++ (que también podrías hacerlo de esa manera), en .NET se puede lograr con un código reálmente simple y efectivo: ' Current User Is Admin? ' ( By Elektro ) ' ''' <summary> ''' Indicates whether the current logged user is an Administrator. ''' </summary> ''' <returns><c>true</c> if the current logged user is an Administrator, <c>false</c> otherwise.</returns> Public Function CurrentUserIsAdmin() As Boolean Dim Identity As Security.Principal.WindowsIdentity = Security.Principal.WindowsIdentity.GetCurrent Return New Security.Principal.WindowsPrincipal(Identity). IsInRole(Security.Principal.WindowsBuiltInRole.Administrator) End Function
Saludos
|
|
|
7355
|
Programación / Scripting / Re: Crear respuestas de comando mediante archivos bat
|
en: 5 Marzo 2014, 19:10 pm
|
el comando se salta las opciones, cuando me pregunta la contraseña nueva inmediatamente se salta a la confirmación y me dice que el comando se completo exitosa mente No es que ' se salte las opciones', es que se computan automáticamente los caracteres de la salida del comando 'Echo' al 'Input' del otro comando después de la 'Pipe', ese es el único modo de poder 'responder' al 'Input' de otro comando en Batch, se denomina rediceccionamiento de comando. En resumen, es como si escribieses automáticamente y presionases la tecla 'Enter' para aceptar el 'Input'. pero lo que quiero es que se responda solo, con una información previamente digitada No se exáctamente a que te refieres, ¿lo que quieres es establecer previamente el valor que quieres redirigir?, entonces puedes setearlo en una variable, por ejemplo, esto responderá automáticamente 'N' ('False') a una pregunta 'Booleana':
te agradecería me explicaras a mas detalle la sintaxis del comando con ejemplos Aquí puedes aprender más acerca del redireccionamiento de comandos ~> http://ss64.com/nt/syntax-redirection.htmlsi no se pude hacer así, explicarme otra forma de hacer lo que quiero No existe ninguna otra forma de 'responder', al menos usando puro y limitado Batch. Lo más parecido que puedes hacer es usar un lenguaje de verdad, o aplicaciones 'CommandLine' de terceros (como por ejemplo Nircmd.exe o Sendkeys.exe) para enviar las pulsaciones del teclado que desees al foco de una instancia de la 'CMD.exe'. · VBScript - SendKeys Method | TechNet + VBScript - Sendkeys Method | SS64· NirCMD | NirSoftPD: Por lenguaje de verdad tampoco me refiero a 'VisualBasicScript'. EDITO:Porfavor, no formularme preguntas por mensaje privado.Me gustaría aclarar si lo que pido ¿se resuelve con archivos .bat o con script? Un archivo .bat es un Script. · Scripting language | Wikipedia· Batch file | Wikipedia· Scripting languages | Wikipediay de ser esto ultimo, ¿que es lo que necesito saber para conseguirlo? Simplemente necesitarías aprender lo básico del lenguaje, pero si no quieres aprender lo básico puedes aprender diréctamente el uso (la sintaxis) de los métodos que dispone del lenguaje para enviar pulsaciones del teclado, y la documentación de dichos métodos la puedes encontrar en la referencia oficial de cada lenguaje, si es que a eso te refieres con la pregunta, no tengo muy claro lo que quieres. Cualquier lenguaje (decente) te serviría (Ej: Ruby, Python, C++, CSharp, VB, VB.NET, etc...), o cualquier lenguaje inferior de Scripting orientado a la automatización de tareas (Ej: VBScript, Powershell, LUA, etc...), o cualquier software de tipo ' Macro Recorder' para grabar y reproducir acciones ('Macros'), en fín prácticamente es una tarea que la puedes llevar a cabo de forma sencilla de muchas maneras, pero no usando como herramienta el triste e inutil Batch. Saludos!
|
|
|
7356
|
Programación / .NET (C#, VB.NET, ASP) / Re: Librería de Snippets !! (Compartan aquí sus snippets)
|
en: 5 Marzo 2014, 18:46 pm
|
Convierte los caracteres diacríticos de un String. ' Convert Diacritics ' ' Usage Examples: ' MsgBox(RemoveDiacritics("áéíóú àèìòù äëïöü ñÑ çÇ", UnicodeNormalization:=System.Text.NormalizationForm.FormKD)) ' Result: 'aeiou aeiou aeiou nN cC' ' ''' <summary> ''' Converts the diacritic characters in a String to an equivalent normalized English characters. ''' </summary> ''' <param name="String"> ''' Indicates the string that contains diacritic characters. ''' </param> ''' <param name="UnicodeNormalization"> ''' Defines the type of Unicode character normalization to perform. ''' (Default is 'NormalizationForm.FormKD') ''' </param> ''' <returns>System.String.</returns> Public Function ConvertDiacritics(ByVal [String] As String, Optional ByVal UnicodeNormalization As System.Text.NormalizationForm = System.Text.NormalizationForm.FormKD) As String Dim Characters As String = String.Empty For Each c As Char In [String].Normalize(UnicodeNormalization) Select Case Globalization.CharUnicodeInfo.GetUnicodeCategory(c) Case Globalization.UnicodeCategory.NonSpacingMark, Globalization.UnicodeCategory.SpacingCombiningMark, Globalization.UnicodeCategory.EnclosingMark ' Do nothing. Exit Select Case Else Characters &= CStr(c) End Select Next c Return Characters End Function
|
|
|
7357
|
Programación / .NET (C#, VB.NET, ASP) / Re: Librería de Snippets !! (Compartan aquí sus snippets)
|
en: 5 Marzo 2014, 18:43 pm
|
Una Class para utilizar el cifrado cromático de texto, es decir, esto: Aquí pueden descargar la Class (no soy el autor de este laborioso código, solo lo adapté un poco añadiéndole algún método más, y elaboré un poco mejor la documentación): http://pastebin.com/92JEWwxVEl source original: https://github.com/varocarbas/snippets_chromaticEncryption_VBEjemplo de uso: Public Class Form1 ''' <summary> ''' Instance of a Class containing most of the methods involving image-related actions, ''' common to both encryption and decryption. ''' </summary> Dim curentIO As New IO Private Sub Test() Handles MyBase.Load ' Encrypt text into image: Dim Encrypt As New Encrypting(Color.Red, "Hello World!", curentIO, 0) Dim EncryptedImage As Bitmap = Nothing Select Case Encrypt.errors Case False ' Encrypts the text and returns the encrypted Bitmap. EncryptedImage = curentIO.Encrypt(500, 500, Encrypt) ' Or encrypts the text and save it directlly in a image file. Encrypt = curentIO.SaveImageFile("C:\File.png", 500, 500, Encrypt) Case True MessageBox.Show(Encrypt.errorMessage, "There was an error while encrypting the text.") End Select ' Decrypt image into text: Dim Decrypt As New Decrypting(Color.Red, EncryptedImage, curentIO, 0) ' Dim Decrypt As New Decrypting(Color.Red, Bitmap.FromFile("C:\File.png"), curentIO, 0) If Not Decrypt.errors Then MsgBox(Decrypt.decryptedString) Else MessageBox.Show(Decrypt.errorMessage, "Either the input parameters or the image are wrong.") End If End Sub End Class
|
|
|
7358
|
Programación / Scripting / Re: porcentaje de uso de cpu
|
en: 5 Marzo 2014, 12:11 pm
|
Para ser sincero no suelo ayudar nada en este tipo de tareas complejas en Batch, ya que como podrás comprobar a continuación, Batch es tán simple y escaso de utilidades que eso lo convierte en su peor enemigo, ya que por su limitada escasez de elementos de programación actual (un maldito Array, por ejemplo), requiere un sacrificio enorme y demasiado esfuerzo para malgastar invertir un tiempo de escritura elevado para llevar a cabo ciertas tareas que en cualquier otro lenguaje (decente) se podría realizar en menos de 10 lineas o en un equivalente de 5 minutos, y por supuesto con un código mucho más óptimo y una gran diferencia de rendimiento comparado con lo que se puede llegar a conseguir en Batch (o VBS). Es un engorro y también lo considero una pérdida de tiempo hacer este tipo de cosas en Batch/VBS, y por ese motivo no creo que lo vuelva a hacer de aquí a mucho tiempo, me limitaré a recomendar el uso de lenguajes de verdad.
El siguiente Script escribe la salida de la query del comando WMIC, en formato CSV (delimitado por comas), en un archivo de texto, Y después envio el archivo de texto como parámetro de un archivo VBS préviamente escrito con las instrucciones necesarías para partir el contenido del archivo de texto en un Array e iterar los elementos para hacer un BubbleSort y así ordenar los elementos de forma numérica de mayor a menor porcentaje, y no ordenar como texto, por último, enviio la salida a la consola, un output que puedes customizar de la manera que quieras modificando el Script VBS y puedes capturar dicha salida con el comando FOR /F en Batch si fuese necesario, yo dejé la salida así: El Script: :: By Elektro REM Obtengo los processos (For /F "Tokens=*" %%a in ( 'wmic.exe path win32_PerfFormattedData_PerfProc_Process get PercentProcessorTime^,Name /Format:csv ^| FINDSTR "[0-9]"' REM Elimino caracteres unicode. ))>"%TEMP%\WMIC.tmp" ( Echo Set objFSO = CreateObject ^("Scripting.FileSystemObject" ^) Echo Set objFile = objFSO.OpenTextFile ^(Wscript.Arguments ^(0 ^), 1 ^) Echo arr = Split ^(objFile.ReadAll, VBcrlf ^) Echo For j = LBound ^(arr ^) to n - 1 Echo num1 = cint ^(split ^(arr ^(j ^),"," ^)^(2 ^)^) Echo num2 = cint ^(split ^(arr ^(j+1 ^),"," ^)^(2 ^)^) Echo TempValue = arr ^(j + 1 ^) Echo arr ^(j + 1 ^) = arr ^(j ^) Echo arr ^(j ^) = TempValue Echo For i = LBound ^(arr ^) To UBound ^(arr ^) Echo "Process: " ^& split ^(arr ^(i ^),"," ^)^(1 ^) ^& ".exe" ^& vbnewline ^& _ Echo "CPU....: " ^& split ^(arr ^(i ^),"," ^)^(2 ^) ^& " %%" ^& vbnewline )>"%TEMP%\SortWMIC.vbs" CScript.exe /Nologo "%TEMP%\SortWMIC.vbs" "%TEMP%\WMIC.tmp"
Y el script de VisualBasicScript sin escapar los caracteres: Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile(Wscript.Arguments(0), 1) arr = Split(objFile.ReadAll, VBcrlf) n = UBound(arr) Do nn = -1 For j = LBound(arr) to n - 1 num1 = cint(split(arr(j),",")(2)) if not arr(j+1) = "" Then num2 = cint(split(arr(j+1),",")(2)) end if If num1 < num2 Then TempValue = arr(j + 1) arr(j + 1) = arr(j) arr(j) = TempValue nn = j End If Next n = nn Loop Until nn = -1 For i = LBound(arr) To UBound(arr) if not arr(i) = "" Then WScript.Echo _ "Process: " & split(arr(i),",")(1) & ".exe" & vbnewline & _ " CPU...: " & split(arr(i),",")(2) & "%" & vbnewline End If Next
Saludos!
|
|
|
7360
|
Programación / Scripting / Re: Separar un comando en múltiples líneas en VBSCRIPT
|
en: 4 Marzo 2014, 22:24 pm
|
Te faltó usar el caracter de continuación de linea al principio: payload = unescape( _ "%fc%e8%89%00%00%00%60%89%e5%31%d2%64%8b%52" & _ "%30%8b%52%0c%8b%52%14%8b%72%28%0f%b7%4a%26" & _ "%31%ff%31%c0%ac%3c%61%7c%02%2c%20%c1%cf%0d" & _ "%01%c7%e2%f0%52%57%8b%52%10%8b%42%3c%01%d0" & _ "%8b%40%78%85%c0%74%4a%01%d0%50%8b%48%18%8b" & _ "%58%20%01%d3%e3%3c%49%8b%34%8b%01%d6%31%ff" & _ "%31%c0%ac%c1%cf%0d%01%c7%38%e0%75%f4%03%7d" & _ "%f8%3b%7d%24%75%e2%58%8b%58%24%01%d3%66%8b" & _ "%0c%4b%8b%58%1c%01%d3%8b%04%8b%01%d0%89%44" & _ "%24%24%5b%5b%61%59%5a%51%ff%e0%58%5f%5a%8b" & _ "%12%eb%86%5d%6a%01%8d%85%b9%00%00%00%50%68" & _ "%31%8b%6f%87%ff%d5%bb%f0%b5%a2%56%68%a6%95" & _ "%bd%9d%ff%d5%3c%06%7c%0a%80%fb%e0%75%05%bb" & _ "%47%13%72%6f%6a%00%53%ff%d5%63%61%6c%63%2e" & _ "%65%78%65%00" _ )
· Statement Breaks in VBScriptSaludos!
|
|
|
|
|
|
|