|
8052
|
Programación / .NET (C#, VB.NET, ASP) / Re: Librería de Snippets !! (Posteen aquí sus snippets)
|
en: 12 Noviembre 2013, 18:22 pm
|
Devuelve un Array con las ocurrencias que se encuentren de una Value en un Diccionario #Region " Match Dictionary Values " ' [ Match Dictionary Values ] ' ' // By Elektro H@cker ' ' Examples : ' ' MsgBox(Match_Dictionary_Values(New Dictionary(Of Integer, String) From {{1, "Hello World!"}}, ' "hello", False, StringComparison.CurrentCultureIgnoreCase).First.Value) Private Function Match_Dictionary_Values(Of K)( ByVal Value As String, ByVal MatchWholeWord As Boolean, ByVal IgnoreCase As StringComparison) As KeyValuePair(Of K, String)() If MatchWholeWord Then Return (From kp As KeyValuePair (Of K, String) In Dictionary Where String.Compare(kp.Value, Value, IgnoreCase) = 0).ToArray Else Return (From kp As KeyValuePair (Of K, String) In Dictionary Where kp.Value.IndexOf(Value, 0, IgnoreCase) > -1).ToArray End If End Function #End Region
Devuelve un Array con las ocurrencias que se encuentren de una Key en un Diccionario #Region " Match Dictionary Keys " ' [ Match Dictionary Keys ] ' ' // By Elektro H@cker ' ' Examples : ' ' MsgBox(Match_Dictionary_Keys(New Dictionary(Of String, Integer) From {{"Hello World!", 1}}, ' "hello", False, StringComparison.CurrentCultureIgnoreCase).First.Key) Private Function Match_Dictionary_Keys(Of V)( ByVal Key As String, ByVal MatchWholeWord As Boolean, ByVal IgnoreCase As StringComparison) As KeyValuePair(Of String, V)() If MatchWholeWord Then Return (From kp As KeyValuePair (Of String, V ) In Dictionary Where String.Compare(kp.Key, Key, IgnoreCase) = 0).ToArray Else Return (From kp As KeyValuePair (Of String, V ) In Dictionary Where kp.Key.IndexOf(Key, 0, IgnoreCase) > -1).ToArray End If End Function #End Region
Devuelve True si se encuentra alguna ocurrencia de un Value en un Diccionario. #Region " Find Dictionary Value " ' [ Find Dictionary Value ] ' ' // By Elektro H@cker ' ' Examples : ' ' MsgBox(Find_Dictionary_Value( ' New Dictionary(Of Integer, String) From {{1, "ABC"}}, ' "abc", True, StringComparison.CurrentCultureIgnoreCase)) Private Function Find_Dictionary_Value(Of K)( ByVal Value As String, ByVal MatchWholeWord As Boolean, ByVal IgnoreCase As StringComparison) As Boolean If MatchWholeWord Then Return (From kp As KeyValuePair (Of K, String) In Dictionary Where String.Compare(kp.Value, Value, IgnoreCase) = 0).Any Else Return (From kp As KeyValuePair (Of K, String) In Dictionary Where kp.Value.IndexOf(Value, 0, IgnoreCase) > -1).Any End If End Function #End Region
Devuelve True si se encuentra alguna ocurrencia de una Key en un Diccionario. #Region " Find Dictionary Key " ' [ Find Dictionary Key ] ' ' // By Elektro H@cker ' ' Examples : ' ' MsgBox(Find_Dictionary_Key( ' New Dictionary(Of String, Integer) From {{"ABC", 1}}, ' "abc", True, StringComparison.CurrentCultureIgnoreCase)) Private Function Find_Dictionary_Key(Of V)( ByVal Key As String, ByVal MatchWholeWord As Boolean, ByVal IgnoreCase As StringComparison) As Boolean If MatchWholeWord Then Return (From kp As KeyValuePair (Of String, V ) In Dictionary Where String.Compare(kp.Key, Key, IgnoreCase) = 0).Any Else Return (From kp As KeyValuePair (Of String, V ) In Dictionary Where kp.Key.IndexOf(Key, 0, IgnoreCase) > -1).Any End If End Function #End Region
|
|
|
8054
|
Programación / Scripting / Re: [Batch] Error en codigo. Ayuda!
|
en: 12 Noviembre 2013, 05:08 am
|
@echo off :pregunta set /p %hola% = Bucle Infinito? : if %hola%==SI goto pregunta El fallo principal es que al setear debes escribir el nombre de la variable sin el operador " %": Aparte de eso no debes dejar ningún espacio antes ni después del operador " =", y la escritura del código en general sigue los malos hábitos de los que empiezan a programar en Batch, te suegiero que te acostumbres a escribir de la manera que te muestro a continuación porque de lo contrario te van a salir muchos errores a menudo: :pregunta SET /p "hola=Bucle Infinito?:"
batch. me pareció un buen lenguaje de scripting por las incontables maneras de interactuar con el propio sistema operativo. Solo puedo decirte que a la larga te darás cuenta de que es todo lo contrario y que estás perdiendo el tiempo (sobretodo viniendo de Python), Batch es práctico para tareas simples, muy simples, y sobre lo de las incontables maneras de... se quedan en un par de comandos internos útiles, el resto son aplicaciones (llamados comandos externos) que no forman parte del lenguaje y los puedes llamar desde cualquier otro lenguaje, en resumen cualquier lenguaje es capaz de hacer lo mejor que se pueda llegar a programar en Batch, en la mitad de tiempo, y con las incontables mejoras que esto supone, sobretodo en velocidad de ejecución, Batch es MUY lento. Saludos!
|
|
|
8056
|
Programación / Scripting / Re: Modificacion de texto en batch
|
en: 11 Noviembre 2013, 06:59 am
|
Hola. ¿Tenemos que adivinar cual es la lógica usada para que en el resultado aparezcan estos caracteres?: ...Yo no le veo relación alguna con los números. De todas formas este es el tipo de operación que sería tan sencillo de realizar en cualquier otro lenguaje, pero que acabaría siendo demasiado engorroso en Batch y consumiría más dedicación de lo que realmente debería necesitar la escritura de dicha rutina. Queria ayuda para que al ejecutar un comando quedara asi: Te muestro la manera de hacerlo usando VBScript, la salida la puedes capturar con un For /F en Batch. Así queda el resultado, como en tu ejemplo, no se si tendrá mucha lógica o no, pero puedes adaptar lo necesario del código, desde luego creo que con esto tu duda quedará resuelta, El resultado lo mando al output estándar, entonces puedes utilizar un For /F desde Batch para obtener dicho output, el string formateado del jugador, y utilizarlo cmoo quieras utilizarlo.  If Wscript.Arguments.Count <> 0 Then WScript.StdOut.Write(Jugador(Wscript.Arguments(0))) WScript.Quit(0) Else WScript.Quit(1) End If Function Jugador(str) Set regEx = New RegExp regEx.Pattern = "^\D+" name = regEx.Execute(str).Item(0) regEx.Pattern = "\[\D+\]$" pos = Mid(regEx.Execute(str).Item(0), 2, 3) cosa = "%t%%%c" Jugador = (name & cosa & "%" & pos & "%") End Function
Saludos!
|
|
|
8057
|
Programación / Scripting / Re: Ayuda para reemplazar palabras en un .txt con batch usando Sed
|
en: 11 Noviembre 2013, 06:01 am
|
Es suficiente con obtener la representación correcta. Para la é de Miércoles: sed.exe -e "s/Miércoles/Dimecres/" "File.txt" > "Output.txt" Para la á de Sábado: sed.exe -e "s/Sábado/Disabte/" "File.txt" > "Output.txt" Para futuras necesidades: iconv -f latin1 -t utf-8 "File.txt" | sed "s/Sábado/Disabte/" | iconv -f utf-8 -t latin1 -> iconvSaludos
|
|
|
8058
|
Programación / Scripting / Re: como elimino espacio entre letras sin eliminar espacios entre palabras?
|
en: 11 Noviembre 2013, 05:28 am
|
Por curiosidad, ¿Eso lo has sacado de un archivo de texto con codificación Unicode?, porque en ese caso debería ser suficiente con convertir el archivo a UTF o ANSI (1252) para eliminar los whitespaces "duplicados". Eso si, el texto no debe contener en este caso el caracter "-" para su buen funcionamiento, de lo contrario puedes cambiarlo a cualquier otro. Eso tiene un facil apaño, Puedes usar una serie de caracteres, así la posibilidad de conflicto con los caracteres del string disminuye al 99,9%, yo he usado una carita: set "str=C l i c k o n t h e N e w P r o f i l e b u t t o n t o o p e n t h e P r o f i l e"
Una solución en cualquier otro lenguaje (ej: vbs) sería hacerle un Split a la cadena, y concatenar: str = "C l i c k o n t h e N e w P r o f i l e b u t t o n t o o p e n t h e P r o f i l e" arr = split(str," ") for each item in arr output = output & replace(item, " ", "") & " " next msgbox(output)
O diréctamente usar un regex para reemplazar los 3 espacios por 1, y el resto de espacios por nada. Saludos
|
|
|
8059
|
Programación / Scripting / Re: [b]Retos python ... u otro lenguaje de scripting....[/b]
|
en: 11 Noviembre 2013, 04:45 am
|
De esto ya había una sección abierta, has preguntado si sigue activa o si se tiene intención de seguir? La verdad es que yo también estoy interesado, pues es una buena forma de practicar. El ultimo registro de temas como este es de junio del 2012 ...  Aquél post está con chincheta, por algo será, no importa que el último reto sea del año pasado, que la gente no haya querido aportar no significa que la zona de retos haya dejado de existir. Es más, mientras haya gente que se dedique a crear nuevos recopilatorios de retos y/o rankings por su cuenta (como este), jamás se podrá llevar a cabo una estructura ni una zona de retos con suficiente sensatez, pues este post con el paso dle tiempo habría quedado en el olvido como todos los demás, por ese motivo se creó un post con chincheta, para permanecer y no crear decenas de posts sobre la misma temática. Siento decirtelo, @Fran2013, pero deberías haber preguntado como ya te han dicho, el foro es libre, pero preguntar es lo mínimo que podrías haber hecho símplemente por respeto hacia las iniciativas de las demás personas. He estado ausente unos dias y me encuentro con esto. Siento ser un aguafiestas chavales, quizás alguno me vaya a ver como una especie de monstruo por esto pero voy a tener que imponer una nueva norma en las normas ya impuestas del subforo de Scripting para que no se publiquen más rankings de retos existiendo ya una sección totálmente dedicada por y para los retos. (La próxima vez fijarse un poco más los temas con chinchetas, o preguntar) Imagino que muchos os agradecerán la iniciativa y la participación, sobretodo yo, de verdad, gracias, pero esta no ha sido la mejor manera @Fran2013. Aquí pueden leer las nuevas normas del foro de Scripting: http://foro.elhacker.net/scripting/normas_del_tablon_leer_antes_de_postear-t201567.0.html;msg957615#msg957615 Para todos los interesados, la zona de retos sigue abierta para todos aquellos que quieran participar y contribuir, solo tienen que hacerlo, considero que la estructura del juego es muy sencilla.Espero que no dejeis de contribuir con vuestros aportes y vuestros retos, podeis crear posts con retos, porsupuesto, pero sólamente un post por reto y yo me encargaré de añadirlo a los retos de Scripting, ...no plagieis una recopilación de retos con un ranking, eso ya existe y ya forma parte del foro. Y porfavor, al publicar un reto en solitario, hacerlo siguiendo las reglas de participación del siguiente hilo, que para eso fue creado por un servidor: http://foro.elhacker.net/scripting/zona_de_retos_scripting-t360782.0.html Cierro el tema, cualquier cosa me la pueden comentar por mensaje privado. Saludos!
|
|
|
8060
|
Programación / Scripting / Re: Pequeños Proyectos Python...
|
en: 11 Noviembre 2013, 03:12 am
|
Creo este tema para que se propongan pequeños proyectos en python... ¿Que hay que no se haya inventado ya?  Algún WebSpider para alguna página en concreto no estaría nada mal... siempre me han gustado, este tipo de proyectos suelen estar infravalorados (o al menos eso pienso, depende que tipo de página sea quizás solo lo usen 4 gatos, si haces uno relacionado con Facebook quien sabe...) pero la verdad es que son muy útiles y ahorran mucho tiempo, aquí tienes un muy buen ejemplo en Python con GUI por el compañero @ 0x5d (aunque no es un código muy extenso, según lo que intuyo por la sintaxis y los keywords solo hace una única petición a la url y parsea el source de la respuesta): http://foro.elhacker.net/scripting/codigopyqt4_iconfinder_jaavier_0x5d-t401819.0.htmlPD: Python no es lo mio, que tengas suerte!
|
|
|
|
|
|
|