|
9051
|
Programación / .NET (C#, VB.NET, ASP) / Re: Scroll de Imagenes?
|
en: 11 Junio 2013, 18:47 pm
|
Si no recuerdo mal creo que ese efecto se denomina "Bubble Fish" o "Eye Fish" (Ojo de péz), lo puedes hacer como te ha dicho syntax error. Solo tienes que averiguar el índice de la que es la imágen "central", porque si no la identificas primero, no puedes hacer nada, y entonces ya con esa imágen haces lo que prefieras, o bien usar eventos (mouse hover) para agrandar la imágen cuando se pase el ratón por la imágen, o bien mantenerla agrandada permanéntemente. Saludos
|
|
|
9052
|
Programación / .NET (C#, VB.NET, ASP) / Re: Librería de Snippets !! (Posteen aquí sus snippets)
|
en: 11 Junio 2013, 11:56 am
|
Otro código de ORO: Devuelve de la manera más eficaz y sencilla una lista de tipo FileInfo con todos los archivos de un directorio, Le hice dos overloads para poder usar la función de varias maneras y evitar posibles errores en el "SearchPattern", La función es "IgnoreCase", devuelve la extensión en uppercase y lowercase y todas las variantes posibles, en fin, esto es la perfección: #Region " Get Files " ' [ Get Files Function ] ' ' // By Elektro H@cker ' ' Examples : ' ' For Each file In Get_Files("C:\Windows", False) : MsgBox(file.Name) : Next ' ' For Each file In Get_Files("C:\Windows", True, "dll") : MsgBox(file.Name) : Next ' For Each file In Get_Files("C:\Windows", True, ".dll") : MsgBox(file.Name) : Next ' For Each file In Get_Files("C:\Windows", True, "*.dll") : MsgBox(file.Name) : Next ' ' For Each file In Get_Files("C:\Windows", False, {"dll", "ini"}) : MsgBox(file.Name) : Next ' For Each file In Get_Files("C:\Windows", False, {".dll", ".ini"}) : MsgBox(file.Name) : Next ' For Each file In Get_Files("C:\Windows", False, {"*.dll", "*.ini"}) : MsgBox(file.Name) : Next ' Get Files {directory} {recursive} Private Function Get_Files(ByVal directory As String, ByVal recursive As Boolean) As List(Of IO.FileInfo) Dim searchOpt As IO.SearchOption = If(recursive, IO.SearchOption.AllDirectories, IO.SearchOption.TopDirectoryOnly) Return IO.Directory.GetFiles(directory, "*", searchOpt).Select(Function(p) New IO.FileInfo(p)).ToList End Function ' Get Files {directory} {recursive} {ext} Private Function Get_Files(ByVal directory As String, ByVal recursive As Boolean, ext As String) As List(Of IO.FileInfo) If ext.StartsWith("*") Then ext = ext.Substring(1, ext.Length - 1) ElseIf Not ext = "*" AndAlso Not ext.StartsWith(".") Then ext = ("." & ext) ElseIf ext = "*" Then ext = Nothing End If Dim searchOpt As IO.SearchOption = If(recursive, IO.SearchOption.AllDirectories, IO.SearchOption.TopDirectoryOnly) Return IO.Directory.GetFiles(directory, "*" & ext, searchOpt).Select(Function(p) New IO.FileInfo(p)).ToList End Function ' Get Files {directory} {recursive} {exts()} Private Function Get_Files(ByVal directory As String, ByVal recursive As Boolean, ParamArray exts() As String) As List(Of IO.FileInfo) Dim FileExts(exts.Count) As String Dim ExtCount As Int32 = 0 For Each ext In exts If ext.StartsWith("*") Then FileExts(ExtCount) = ext.Substring(1, ext.Length - 1) ElseIf Not ext = "*" AndAlso Not ext.StartsWith(".") Then FileExts(ExtCount) = ("." & ext) ElseIf Not ext = "*" AndAlso ext.StartsWith(".") Then FileExts(ExtCount) = ext ElseIf ext = "*" Then FileExts(ExtCount) = Nothing End If ExtCount += 1 Next Dim searchOpt As IO.SearchOption = If(recursive, IO.SearchOption.AllDirectories, IO.SearchOption.TopDirectoryOnly) Dim filenameExtComparer As New FilenameExtensionComparer Return IO.Directory.GetFiles(directory, "*", searchOpt).Where(Function(o) FileExts.Contains(IO.Path.GetExtension(o), filenameExtComparer)).Select(Function(p) New IO.FileInfo(p)).ToList End Function ' FilenameExtensionComparer Public Class FilenameExtensionComparer : Implements IEqualityComparer(Of String) Public Function Equals1(s As String, t As String) As Boolean Implements IEqualityComparer(Of String).Equals Return String.Compare(s, t, StringComparison.OrdinalIgnoreCase) = 0 End Function Public Function GetHashCode1(s As String) As Integer Implements IEqualityComparer(Of String).GetHashCode Return s.GetHashCode() End Function End Class #End Region
|
|
|
9053
|
Programación / Scripting / Re: Transformar nombre de los archivos a 001,002,003.png,etc?
|
en: 11 Junio 2013, 09:57 am
|
perdón, lo escribí al vuelo y cometí un misstype, símplemente añade un SET /A aquí: PD: La costumbre de no usar keywords a la izquierda de las variables en otros lenguajes cada vez se apodera más de mi xD. Error: Ya existe un archivo con el mismo nombre o no se ha encontrado el archivo.
Ese error que comentas es "normal", si ya tienes un archivo que se llama "1.png" no se puede renombrar al mismo nombre y el bat fallará con ese archivo, pero nada grave. Saludos
|
|
|
9055
|
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

|
|
|
9056
|
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!
|
|
|
9057
|
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!
|
|
|
9058
|
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
|
|
|
9059
|
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
|
|
|
9060
|
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

|
|
|
|
|
|
|