elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Mensajes
Páginas: 1 ... 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 [888] 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 ... 1236
8871  Programación / Scripting / Re: Transformar nombre de los archivos a 001,002,003.png,etc? en: 10 Junio 2013, 22:58 pm
Bueno, de todas formas ya he codeado la función para hacerlo añadiendo los Ceros xD.
http://foro.elhacker.net/net/pequena_duda_con_un_string-t392198.0.html;msg1860018#msg1860018

Si lo quieres hacer en Batch (sin incrementar por "ceros") entonces el código no requiere esfuerzo:

Código:
@Echo off
setlocal enabledelayedexpansion

For %%# in ("X:\carpeta\*.png") Do (
    set /A num+=1
    Ren "%%#" "!num!.%%~x#"
)

Saludos
8872  Programación / .NET (C#, VB.NET, ASP) / Re: Pequeña duda con un String en: 10 Junio 2013, 22:42 pm
@Seazoux:

Código
  1. #Region " Rename Files (Increment method) "
  2.  
  3.    ' [ Rename Files (Increment method) ]
  4.    '
  5.    ' // By Elektro H@cker
  6.    '
  7.    ' Examples :
  8.    ' Rename_Files_By_Increment("C:\", "jpg") ' Result: 001.jpg, 002.jpg
  9.    ' Rename_Files_By_Increment("C:\")        ' Result: 001.jpg, 002.dll
  10.  
  11.    Private Sub Rename_Files_By_Increment(ByVal Dir As String, Optional ByVal FileExt As String = "*")
  12.  
  13.        Dim FileList As List(Of IO.FileInfo)
  14.  
  15.        If Not FileExt = "*" _
  16.        AndAlso Not FileExt.StartsWith(".") _
  17.        Then FileExt = ("." & FileExt)
  18.  
  19.        Select Case FileExt
  20.            Case "*" : FileList = IO.Directory.GetFiles(Dir, "*", IO.SearchOption.TopDirectoryOnly).Select(Function(p) New IO.FileInfo(p)).ToList
  21.            Case Else : FileList = IO.Directory.GetFiles(Dir, "*" & FileExt, IO.SearchOption.TopDirectoryOnly).Select(Function(p) New IO.FileInfo(p)).ToList
  22.        End Select
  23.  
  24.        Dim ZeroCount As Int64 = FileList.Count.ToString.Length
  25.  
  26.        Dim FileName As String = String.Empty
  27.        Dim Number As Int64 = 0
  28.  
  29.        Try
  30.  
  31.            For Each file In FileList
  32.  
  33.                Number += 1
  34.                FileName &= Number
  35.  
  36.                For zero As Int64 = 0 To ZeroCount
  37.                    If Not FileName.Length = ZeroCount Then
  38.                        FileName = "0" & FileName
  39.                    Else
  40.                        Select Case FileExt
  41.                            Case "*" : IO.File.Move(file.FullName, IO.Path.Combine(file.DirectoryName, FileName & file.Extension))
  42.                            Case Else : IO.File.Move(file.FullName, IO.Path.Combine(file.DirectoryName, FileName & FileExt))
  43.                        End Select
  44.                        FileName = String.Empty
  45.                        Exit For
  46.                    End If
  47.                Next
  48.  
  49.            Next
  50.  
  51.        Catch ex As Exception
  52.            MsgBox(ex.Message)
  53.        End Try
  54.  
  55.    End Sub
  56.  
  57. #End Region

 ;)
8873  Programación / Scripting / Re: Transformar nombre de los archivos a 001,002,003.png,etc? en: 10 Junio 2013, 21:27 pm
Lo primero de nada es que lo que quieres hacer se denomina Renombrabiento (Renombrar archivos), Y se puede hacer con el comando "Ren" (o "Rename", es lo mismo):
Código
  1. Ren "Imágen.png" "001.png"

Lo que requieres se puede hacer, pero esto es Batch, requiere usar un poco de lógica, no es dificil pero llevaría bastante tiempo, ya que por cada X cantidad de archivos deberás usar X cantidad de ceros, por ejemplo:

menos de 10 archivos > 0.png
más de 10 archivos pero menos de 100 > 00.png
más de 100 archivos pero menos de 1000 > 000.png

Así que hay que escribir muchas condicionales en el código, y requiere su tiempo,
sincéramente, lo haría si fuese necesario, para algo soy moderador y sé Batch, pero en este caso no es necesario, lo considero perder el tiempo, ya que te recuerdo que estás en .NET, y con un "interop increment" y un par de select cases se hace bien rápido comparado con todo lo que hay que escribir en Batch.

EDITO: De hecho yo ya hice un Bat con ese tipo de renombrado, donde se detectaba la cantidad de ceros que habia que añadir a la izquierda de cada archivo a rneombrar según la cantidad total de archivos, pero no sé donde publiqué el código ni con que nombre, fue hace más de un año como mínimo xD.

PD: No te dejo "tirado",  voy a hacer un snippet para VBNET para hacer este tipo de renombrado.

Saludos!
8874  Programación / .NET (C#, VB.NET, ASP) / Re: Pequeña duda con un String en: 10 Junio 2013, 21:04 pm
@ElSevi

Lo cierto es que tenía pensado como idea trasladar ese Batch a código .NET para el concurso "EHN-DEV" de este año ya que dispongo de un método rapidísimo y el más eficiente para permutar caracteres, pero la verdad es que no me motiva mucho hacerlo porque a mi ya no me sirve ese tipo de aplicaciones de brute force para generar diccionarios y cosas parecidas, así que creo que para un concurso no lo voy a hacer, solo lo haría para los demás, en ratos libres, y de momento no es que tenga muchas ganas d ehacerlo...

No sé si lo haré, la verdad, pero de momento no tengo los suficientes motivos para hacerlo, a menos que me paguen por ello xD.

Saludos!
8875  Programación / .NET (C#, VB.NET, ASP) / Re: Pequeña duda con un String en: 10 Junio 2013, 20:46 pm
La verdad, la que estás liando en tu array de controles para hacer esto:

Código
  1.        Dim pcb_(2) As PictureBox
  2.  
  3.        For pcb_num = 0 To pcb_.Length - 1
  4.            pcb_(pcb_num) = New PictureBox
  5.            pcb_(pcb_num).BackColor = Color.FromArgb(255, pcb_num * 3, pcb_num * 2, pcb_num)
  6.            pcb_(pcb_num).Size = New Point(Panel1.Size.Width, Panel1.Size.Height \ 4)
  7.            pcb_(pcb_num).Top = 90 * pcb_num
  8.            pcb_(pcb_num).BackgroundImage = Image.FromFile(".\Art\im\image00" & pcb_num & ".png")
  9.            Me.Panel1.Controls.Add(pcb_(pcb_num))
  10.        Next

He visto tu pregunta Batchera... si el problema es que te acabas de dar cuenta que el array empieza por CERO en lugar de UNO y si símplemente quieres empezar desde el número "1" porque tus archivos empiezan con "001" pues modifica el "0" en el For por un "1" para saltar el primer item del array, y listo.

¿Es eso lo que pasa?

Saludos
8876  Programación / .NET (C#, VB.NET, ASP) / Re: Pequeña duda con un String en: 10 Junio 2013, 20:23 pm
Pues en teoría lo has concatenado corréctamente, ¿has probado a añadir un msgbox para comprobar que el archivo existe?...

Código
  1. If Not IO.File.Exists(".\Art\im\image00" & pcb_num & ".png") then msgbox(""".\Art\im\image00" & pcb_num & ".png""" & " no existe") else msgbox ("si que existe")
  2. pcb_(pcb_num).Image = Image.FromFile(".\Art\im\image00" & pcb_num & ".png")

PD: ¿Seguro que quieres usar la propiedad image en lugar de backgroundimage?

EDITO: el .parent los desubica dentro del panel, quita el .parent y añade los picboxes al panel diréctamente en lugar de añadirlos al form.

Saludos
8877  Programación / .NET (C#, VB.NET, ASP) / Re: [SOLUCIONADO] Una pregunta sobre IO.Directory.GetFiles en: 10 Junio 2013, 20:13 pm
Ahora sí, mejor imposible!, aquí tienen la forma más eficiente:

Código
  1.    Private Function Get_Files(ByVal rootDirectory As String, ByVal recursive As Boolean, ParamArray exts() As String) As List(Of IO.FileInfo)
  2.        Dim searchOpt As IO.SearchOption = If(recursive, IO.SearchOption.AllDirectories, IO.SearchOption.TopDirectoryOnly)
  3.        Return IO.Directory.GetFiles(rootDirectory, "*.*", searchOpt).Where(Function(o) exts.Contains(IO.Path.GetExtension(o))).Select(Function(p) New IO.FileInfo(p)).ToList
  4.    End Function

Ejemplo de uso:

Código
  1.    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  2.        For Each file In Get_Files("C:\Windows", True, {".dll", "DLL"}) : MsgBox(file.Name) : Next
  3.    End Sub

EDITO: Lo único imperfecto es que no es Ignore case, así que habría que usar la función así:
Código
  1. For Each file In Get_Files("C:\Windows", True, {".dll", "DLL"}) : MsgBox(file.Name) : Next

 ;D
8878  Programación / .NET (C#, VB.NET, ASP) / Una pregunta sobre Intellisense y la documentación XML de VB.NET en: 9 Junio 2013, 20:55 pm
Hola

A ver, me estoy volviendo bastante loco con esto...

Hace unos pocos días me descargué una Class de VB para examinarla, el caso es que al usar el Intellisense sobre una de las funciones que contenia la Class, la información XML de los parámetros de dicha función aparecía debajo del tag de la descripción, en un color azúl cielo brillante, este tag precísamente:
Código
  1. ''' <param name="Number">Description of the Number parameter</param>

Lo que sale en rojo pues en el Intellisense aparecia en color azul junto a la descripción en el color grisaceo ese de la IDE, pero el parámetro destacaba mucho vaya! y junto a la descripción del parámetro hacia el entendimiento de la función mucho más sencilla...
 
...en fín, el caso es que me gustó mucho ese efecto azulado (además de poder añadir descripción para un parámetro) así que hice un Copy/Paste de esa línea para agregarlo a una de mis funciones...

...Y el problema es que por más que lo intento no consigo que el intellisense me muestre nada, solo me muestra la descripción, a pesar de tener varias líneas escritas incluyendo la del parámetro:

Código
  1.    ''' <summary>
  2.    ''' Function to pause a thread.
  3.    ''' </summary>
  4.    '''
  5.    ''' <param name="Process_Name">The name of the process, ex: cmd.exe</param>
  6.    ''' <param name="Thread_Number">The thread to pause, ex: 0</param>
  7.    ''' <param name="Recursive"> <value name="True">Pause the thread in all processes recursively</value></param>
  8.    ''' <returns>True if the process is found; otherwise, False.</returns>
  9.    Public Shared Function Pause_Thread(ByRef Process_Name As String, _
  10.                              Optional ByVal Thread_Number As Int32 = 0, _
  11.                              Optional ByVal Recursive As Boolean = False) As Boolean

Y esto es lo que me muestra el Intellisense:



Según lo que ví en la Class que me descargué, me debería mostrar el parámetro en un color azúl, debajo de la descripción,
...es decir, justo debajo de "Function to pause a thread" debería salir "Process_Name" en azúl brillante, y a la derecha debería poner "The name of the process, ex: cmd.exe" en color blanco.

¿Alguien sabe en que estoy fallando?

PD: Por desgracia no guardé la Class, copié lo único que me interesaba ...que era el ejemplo de la documentación XML en azul brillante, y no recuerdo que Class era ni de donde la saqué ni nada.

PD2: Tengo activado el archivo de configuración XML en las propiedades del proyecto en la pestaña de Compilar.
8879  Programación / .NET (C#, VB.NET, ASP) / Re: Problema en Visual Basic -Net (Al remplazar una palabra) en: 9 Junio 2013, 20:35 pm
Lo que yo estoy entendiendo es que la "h", se remplazará por la "a" de abajo, y eso no es verdad,

Si, si que es así, si que es "verdad".

A ver, la función se puede usar de dos maneras, se puede usar para codificar de forma "normal" (la parte que ves comentada con cada caracter), o se puede usar de una manera alternativa en la que se codifican incluso los caracteres especiales.

...Como te dije, los caracteres los puse aleatoriamente, así que la única diferencia es que de la primera manera los caracteres de la variable "Replacements" están escritos en un orden, y de la otra manera pues ...están escritos en otro orden aleatorio, aparte, como a mi no me interesa nada codificar los caracteres especiales pues no me molesté en comentar los caracteres, pero vas bien encaminado y ya sabes el orden que tiene la cosa.

Un saludo!
8880  Programación / .NET (C#, VB.NET, ASP) / Re: Scroll de Imagenes? en: 9 Junio 2013, 20:19 pm
A ver aquí dejo un vídeo mostrando lo que me pasa con el Scroll

"Y el flickering tampoco va" xD

...Si hubieras tenido en cuenta el panel que posteé un poco más arriba de este post entonces no estarías preguntando... (al menos no por el problema del Flickering) : http://foro.elhacker.net/net/libreria_de_snippets_posteen_aqui_sus_snippets-t378770.0.html;msg1858625#msg1858625

Reemplaza la ***** de panel que estás usando, por el mío.

PD: Lo de "***** de panel" no lo digo por el código de Black Master, sinó porque estás usando el panel por defecto del Framework.

PD2: Lee las propiedades nuevas de mi panel extendido o te vas a quedar iwal xD.

PD3: La imágen del splash con tu logo de IKillNukes se ve bien en tu video, pero se puede ver mal en los demás pc's (al menos en el mio) se ve blanco, con bordes grandes y muy blancos, se ve una imágen "engorrosa", te lo digo para que lo sepas, no se ve bien.

PD4: El problema es que estás usando una "vertical scrollbar" pero no tienes ni idea deutilizarla, tienes dos opciones:
1. Usa el autoscroll del panel para mover las imágenes.
2. Aprender a utilizar una VScroll:

https://www.google.com/search?q=vbnet+how+to+use+vscroll&ie=utf-8&oe=utf-8&lr=lang_en

https://www.google.com/search?q=vbnet+how+to+add+scrollbar+panel&ie=utf-8&oe=utf-8&lr=lang_en

Básicamente tienes que ajustar corréctamente las propiedades de los valores: "value", "maximum" "smallchange" y "largechange" de la Scrollbar para adaptarla al tamaño de tu panel... ...de hecho en uno de mis comentarios más arriba en este post publiqué un video con una Class donde tienes un ejemplo de todo lo que acabo de comentar, sabrias hacerlo, si leyeras, claro.

Saludos!
Páginas: 1 ... 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 [888] 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 ... 1236
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines