|
8872
|
Programación / .NET (C#, VB.NET, ASP) / Re: Pequeña duda con un String
|
en: 10 Junio 2013, 22:42 pm
|
@Seazoux: #Region " Rename Files (Increment method) " ' [ Rename Files (Increment method) ] ' ' // By Elektro H@cker ' ' Examples : ' Rename_Files_By_Increment("C:\", "jpg") ' Result: 001.jpg, 002.jpg ' Rename_Files_By_Increment("C:\") ' Result: 001.jpg, 002.dll Private Sub Rename_Files_By_Increment(ByVal Dir As String, Optional ByVal FileExt As String = "*") Dim FileList As List(Of IO.FileInfo) If Not FileExt = "*" _ AndAlso Not FileExt.StartsWith(".") _ Then FileExt = ("." & FileExt) Select Case FileExt Case "*" : FileList = IO.Directory.GetFiles(Dir, "*", IO.SearchOption.TopDirectoryOnly).Select(Function(p) New IO.FileInfo(p)).ToList Case Else : FileList = IO.Directory.GetFiles(Dir, "*" & FileExt, IO.SearchOption.TopDirectoryOnly).Select(Function(p) New IO.FileInfo(p)).ToList End Select Dim ZeroCount As Int64 = FileList.Count.ToString.Length Dim FileName As String = String.Empty Dim Number As Int64 = 0 Try For Each file In FileList Number += 1 FileName &= Number For zero As Int64 = 0 To ZeroCount If Not FileName.Length = ZeroCount Then FileName = "0" & FileName Else Select Case FileExt Case "*" : IO. File. Move(file. FullName, IO. Path. Combine(file. DirectoryName, FileName & file. Extension)) Case Else : IO. File. Move(file. FullName, IO. Path. Combine(file. DirectoryName, FileName & FileExt )) End Select FileName = String.Empty Exit For End If Next Next Catch ex As Exception MsgBox(ex.Message) End Try End Sub #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): 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: Dim pcb_(2) As PictureBox For pcb_num = 0 To pcb_.Length - 1 pcb_(pcb_num) = New PictureBox pcb_(pcb_num).BackColor = Color.FromArgb(255, pcb_num * 3, pcb_num * 2, pcb_num) pcb_(pcb_num).Size = New Point(Panel1.Size.Width, Panel1.Size.Height \ 4) pcb_(pcb_num).Top = 90 * pcb_num pcb_(pcb_num).BackgroundImage = Image.FromFile(".\Art\im\image00" & pcb_num & ".png") Me.Panel1.Controls.Add(pcb_(pcb_num)) 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?... 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") 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: Private Function Get_Files(ByVal rootDirectory As String, ByVal recursive As Boolean, ParamArray exts() As String) As List(Of IO.FileInfo) Dim searchOpt As IO.SearchOption = If(recursive, IO.SearchOption.AllDirectories, IO.SearchOption.TopDirectoryOnly) Return IO.Directory.GetFiles(rootDirectory, "*.*", searchOpt).Where(Function(o) exts.Contains(IO.Path.GetExtension(o))).Select(Function(p) New IO.FileInfo(p)).ToList End Function
Ejemplo de uso: Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load For Each file In Get_Files ("C:\Windows", True, {".dll", "DLL"}) : MsgBox(file. Name) : Next End Sub
EDITO: Lo único imperfecto es que no es Ignore case, así que habría que usar la función así: For Each file In Get_Files ("C:\Windows", True, {".dll", "DLL"}) : MsgBox(file. Name) : Next
|
|
|
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: ''' <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: ''' <summary> ''' Function to pause a thread. ''' </summary> ''' ''' <param name="Process_Name">The name of the process, ex: cmd.exe</param> ''' <param name="Thread_Number">The thread to pause, ex: 0</param> ''' <param name="Recursive"> <value name="True">Pause the thread in all processes recursively</value></param> ''' <returns>True if the process is found; otherwise, False.</returns> Public Shared Function Pause_Thread(ByRef Process_Name As String, _ Optional ByVal Thread_Number As Int32 = 0, _ 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#msg1858625Reemplaza 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_enhttps://www.google.com/search?q=vbnet+how+to+add+scrollbar+panel&ie=utf-8&oe=utf-8&lr=lang_enBá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!
|
|
|
|
|
|
|