Autor
|
Tema: Librería de Snippets para VB.NET !! (Compartan aquí sus snippets) (Leído 533,770 veces)
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
@Novlucker Que grande, antes de nada debo decir que para mi tus críticas o sugerencias (O ataques personales si se da el caos xD) son más que bien recibidas Mientras no pienses que es un ataque, la idea es que puedas mejorar Lo malo de esto, es que si declaro el tipo en boolean (Por ejemplo), entonces ya no puedo retornar el mensaje de la excepción (Return ex.message), ¿O si?. En realidad no es posible. Por lo general cuando es necesario hacer eso se debe de retornar un objeto Result (o clase similar creada por ti). Algo así por ejemplo; Public Class Result Public ReturnValue as Boolean Public Message as String End Class
Si esta todo ok, se asigna el valor a ReturnValue y se deja el Message vacío, sino se hace lo contrario. De cualquier modo, lo habitual es simplemente hacer un throw de la exception, las propias funciones del .NET Framework lo hacen por ejemplo. Por decir algo más y siguiendo con .NET, en C# por ejemplo no puedes declarar un método/función sin tipo de retorno y luego retornar algo. Attributes.Select(Function(a) DirectCast(a, Integer)).Sum()
De ahí lo único que entiendo es que modificas el valor "a" a tipo entero (no se lo que significa esa "a"), lo de "Select", "Function", y "Sum, ni idea XD Para acortar un poco usé LINQ con una expresión lambda , la explicación es la siguiente; - Attributes es una lista, por lo cual puedo aplicar LINQ
- Por cada item "a" de la lista, lo casteo a Integer. Esto es porque el enumerador FileAttributes contiene los valores para estos
- Dado que ahora tengo una lista de Integer, los puedo sumar con Sum
2 ejemplos de uso; Attrib("D:\\archivo.txt", New List(Of System.IO.FileAttributes)(New System.IO.FileAttributes() {System.IO.FileAttributes.Hidden, System.IO.FileAttributes.ReadOnly}))
Dim atributos As List(Of System.IO.FileAttributes) = New List(Of IO.FileAttributes) atributos.Add(System.IO.FileAttributes.Hidden) atributos.Add(System.IO.FileAttributes.ReadOnly) Attrib("D:\\archivo.txt", atributos)
Me doy cuenta que tengo que usar más las constantes y las enumeraciones si quiero perfeccionar y simplificar las cosas (Si te digo la verdad pensé que esa función no se podía simplificar más, hasta que he visto tu modificación xDDD, me kawen tó) La idea era justamente de que vieras que no hay que perder de vista la legibilidad del código, y que puedes mejorar en eso Saludos
|
|
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
Para convertir un string a lower,upper,wordcase o titlecase, con opción de invertir el string #Region " String To Case Function " ' [ String To Case Function ] ' ' // By Elektro H@cker ' ' Examples : ' ' MsgBox(String_To_Case("ThiS is A TeST", StringCase.Lower)) ' MsgBox(String_To_Case("ThiS is A TeST", StringCase.Upper)) ' MsgBox(String_To_Case("ThiS is A TeST", StringCase.Word)) ' MsgBox(String_To_Case("ThiS is A TeST", StringCase.Title)) ' MsgBox(String_To_Case("ThiS is A TeST", StringCase.Title, True)) Enum StringCase Lower Upper Title Word End Enum Public Function String_To_Case(ByVal Input_String As String, ByVal StringCase As StringCase, Optional ByVal Reverse As Boolean = False) As String If Not Input_String = Nothing And Not Input_String = "" Then Dim Output_String As String = Nothing Select Case StringCase Case StringCase.Lower : Output_String = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToLower(Input_String) Case StringCase.Upper : Output_String = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToUpper(Input_String) Case StringCase.Title : Output_String = Char.ToUpper(Input_String(0)) + StrConv(Input_String.Substring(1), VbStrConv.Lowercase) Case StringCase.Word : Output_String = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(Input_String) End Select If Reverse Then Return Microsoft.VisualBasic.StrReverse(Output_String) Else Return Output_String Else : Return False ' Any string to convert End If End Function #End Region
|
|
« Última modificación: 14 Enero 2013, 10:59 am por EleKtro H@cker »
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
Make Dir, para crear directorios con opción de añadir atributos. #Region " Make Dir Function " ' [ Make Dir Function ] ' ' // By Elektro H@cker ' ' Examples : ' ' MsgBox(MakeDir("C:\Test")) Private Function Make_Dir(ByVal Path As String, Optional ByVal Attributes As System.IO.FileAttributes = IO.FileAttributes.Normal) If My.Computer.FileSystem.DirectoryExists(Path) Then Return Nothing ' Directory already exists Try My.Computer.FileSystem.CreateDirectory(Path) ' Create directory If Not Attributes = IO.FileAttributes.Normal Then My.Computer.FileSystem.GetDirectoryInfo(Path).Attributes = Attributes ' Apply Folder Attributes Return True ' Directory is created OK Catch ex As Exception Return False ' Can't create the directory maybe because user permissions ' Return ex.Message End Try End Function #End Region
Copy File , para copiar archivos, con opción de crear el directorio si no existe, opción de reemplazar archivos, y opcion de aplicar atributos al archivo. #Region " Copy File Function " ' [ Copy File Function ] ' ' // By Elektro H@cker ' ' Examples : ' ' MsgBox(Copy_File("C:\File.txt", "C:\Test\")) ' Standard copy ' MsgBox(Copy_File("C:\File.txt", "C:\Test\", True)) ' Create the directory if doesn't exists ' MsgBox(Copy_File("C:\File.txt", "C:\Test\", , True)) ' Replace any existing file ' MsgBox(Copy_File("C:\File.txt", "C:\Test\", , , IO.FileAttributes.Hidden + IO.FileAttributes.ReadOnly)) ' Apply new attributes Private Function Copy_File (ByVal File As String, ByVal Target_Path As String, _ Optional ByVal Force_Target_Path As Boolean = False, Optional ByVal Force_File_Replace As Boolean = False, _ Optional ByVal Attributes As System.IO.FileAttributes = IO.FileAttributes.Normal) Dim File_Information = My. Computer. FileSystem. GetFileInfo(File) ' Get Input File Information ' Directory If Not Force_Target_Path And Not My.Computer.FileSystem.DirectoryExists(Target_Path) Then Return False ' Target Directory don't exists ElseIf Force_Target_Path Then Try My.Computer.FileSystem.CreateDirectory(Target_Path) ' Create directory Catch ex As Exception 'Return False Return ex.Message ' Directory can't be created maybe beacuse user permissions End Try End If ' File Try My. Computer. FileSystem. CopyFile(File, Target_Path & "\" & File_Information. Name, Force_File_Replace ) ' Copies the file If Not Attributes = IO.FileAttributes.Normal Then My.Computer.FileSystem.GetFileInfo(Target_Path & "\" & File_Information.Name).Attributes = Attributes ' Apply File Attributes Return True ' File is copied OK Catch ex As Exception 'Return False Return ex.Message ' File can't be created maybe beacuse user permissions End Try End Function #End Region
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
Crea un acceso directo a una aplicación o a una página web, con muchas opciones. #Region " Create ShortCut Function " ' [ Create ShortCut Function ] ' ' // By Elektro H@cker ' ' Examples : ' ' Create_ShortCut(ShortcutPath.MyDocuments, "My APP Shortcut.lnk", "C:\File.exe") ' Create_ShortCut(ShortcutPath.Desktop, "My CMD Shortcut.lnk", "CMD.exe", "/C Echo Hello World & Pause") ' Create_ShortCut(ShortcutPath.Favorites, "My INTERNET Shortcut.lnk", "http://www.Google.com", , "CTRL+SHIFT+S") ' Create_ShortCut(ShortcutPath.Favorites, "My INTERNET Shortcut.lnk", "http://www.Google.com", , "CTRL+SHIFT+S", "Description of the shortcut") Enum ShortcutPath AppData = Environment.SpecialFolder.ApplicationData Desktop = Environment.SpecialFolder.Desktop Favorites = Environment.SpecialFolder.Favorites LocalAppData = Environment.SpecialFolder.LocalApplicationData MyDocuments = Environment.SpecialFolder.MyDocuments ProgramFiles = Environment.SpecialFolder.ProgramFiles ProgramFilesx86 = Environment.SpecialFolder.ProgramFilesX86 StartMenu = Environment.SpecialFolder.StartMenu System32 = Environment.SpecialFolder.System SysWOW64 = Environment.SpecialFolder.SystemX86 UserProfile = Environment.SpecialFolder.UserProfile Windows = Environment.SpecialFolder.Windows End Enum Function Create_ShortCut(ByVal Shortcut_Path As ShortcutPath, _ ByVal Shortcut_Name As String, _ ByVal APP As String, _ Optional ByVal APP_Arguments As String = Nothing, _ Optional ByVal HotKey As String = Nothing, _ Optional ByVal Icon As String = Nothing, _ Optional ByVal Description As String = Nothing) As Boolean Dim Dir = New IO.DirectoryInfo(System.Environment.GetFolderPath(Shortcut_Path)) Dim WorkingDir As IO.FileInfo If Not APP.Contains("/") Then WorkingDir = New IO.FileInfo(APP) Else WorkingDir = Nothing Try Dim WSHShell As Object = CreateObject("WScript.Shell") Dim Shortcut As Object Shortcut = WSHShell.CreateShortcut(Dir.FullName & "\" & Shortcut_Name) Shortcut.TargetPath = APP Shortcut.Arguments = APP_Arguments Shortcut.WindowStyle = 2 Shortcut.Hotkey = HotKey Shortcut.Description = Description If Not APP.Contains("/") Then Shortcut.WorkingDirectory = WorkingDir.DirectoryName If Icon IsNot Nothing Then Shortcut.IconLocation = Icon Else Shortcut.IconLocation = APP Shortcut.Save() Return True Catch ex As Exception Return False End Try End Function #End Region
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
He añadido, ordenado, y mejorado bastantes snippets del pack de snippets, el nuevo enlace está en el comentario principal. Función para eliminar atributos de un archivo, preservando el resto de atributos. #Region " File Remove Attribute Function " ' [ File Remove Attribute Function ] ' ' Examples : ' ' MsgBox(File_Remove_Attribute("C:\Test.txt", FileAttribute.ReadOnly)) ' MsgBox(File_Remove_Attribute("C:\Test.txt", FileAttribute.ReadOnly + FileAttribute.Hidden)) Public Function File_Remove_Attribute (ByVal File As String, ByVal Remove_Attribute As FileAttribute ) As Boolean Try Dim FileAttributes As FileAttribute = IO. File. GetAttributes(File) IO. File. SetAttributes(File, FileAttributes And Not Remove_Attribute ) Return True Catch ex As Exception Return False End Try End Function #End Region
Función para añadir atributos a un archivo, preservando el resto de atributos. #Region " File Add Attribute Function " ' [ File Add Attribute Function ] ' ' Examples : ' ' MsgBox(File_Add_Attribute("C:\Test.txt", FileAttribute.ReadOnly)) ' MsgBox(File_Add_Attribute("C:\Test.txt", FileAttribute.ReadOnly + FileAttribute.Hidden)) Public Function File_Add_Attribute (ByVal File As String, ByVal Add_Attribute As FileAttribute ) As Boolean Try Dim FileAttributes As FileAttribute = IO. File. GetAttributes(File) IO. File. SetAttributes(File, FileAttributes Or Add_Attribute ) Return True Catch ex As Exception Return False End Try End Function #End Region
Función que comprueba si un archivo tiene un atributo #Region " File Have Attribute Function " ' [ File Have Attribute Function ] ' ' Examples : ' ' MsgBox(File_Have_Attribute("C:\Test.txt", FileAttribute.ReadOnly)) ' MsgBox(File_Have_Attribute("C:\Test.txt", FileAttribute.ReadOnly + FileAttribute.Hidden)) Public Function File_Have_Attribute (ByVal File As String, ByVal CheckAttribute As FileAttribute ) As Boolean Try Dim FileAttributes As FileAttribute = IO. File. GetAttributes(File) If (FileAttributes And CheckAttribute) = CheckAttribute Then Return True Else Return False Catch ex As Exception Return Nothing End Try End Function #End Region
|
|
« Última modificación: 15 Enero 2013, 07:47 am por EleKtro H@cker »
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
Oscurecer una imagen a escala de grises ( Disable image) PD: He retocado la función original para añadirle opción de elegir distintos tonos de gris, me ha quedado bastante bien. #Region " GrayScale Image Function " ' [ GrayScale Image Function ] ' ' Examples: ' ' PictureBox1.Image = GrayScale_Image(PictureBox1.Image, GrayScale.Light_Gray) ' PictureBox1.Image = GrayScale_Image(PictureBox1.Image, GrayScale.Mid_Gray) ' PictureBox1.Image = GrayScale_Image(PictureBox1.Image, GrayScale.Dark_Gray) Enum GrayScale Light_Gray Mid_Gray Dark_Gray End Enum Private Function GrayScale_Image(ByVal Image As Image, ByVal Gray_Tone As GrayScale) As Bitmap Dim Image_Bitmap As Bitmap = New Bitmap(Image.Width, Image.Height) Dim Image_Graphic As Graphics = Graphics.FromImage(Image_Bitmap) Dim Color_Matrix As System.Drawing.Imaging.ColorMatrix = Nothing Select Case Gray_Tone Case GrayScale.Light_Gray : Color_Matrix = New System.Drawing.Imaging.ColorMatrix(New Single()() {New Single() {0.2, 0.2, 0.2, 0, 0}, New Single() {0.2, 0.2, 0.2, 0, 0}, New Single() {0.5, 0.5, 0.5, 0, 0}, New Single() {0, 0, 0, 1, 0}, New Single() {0, 0, 0, 0, 1}}) Case GrayScale.Mid_Gray : Color_Matrix = New System.Drawing.Imaging.ColorMatrix(New Single()() {New Single() {0, 0, 0, 0, 0}, New Single() {0, 0, 0, 0, 0}, New Single() {0.5, 0.5, 0.5, 0, 0}, New Single() {0, 0, 0, 1, 0}, New Single() {0, 0, 0, 0, 1}}) Case GrayScale.Dark_Gray : Color_Matrix = New System.Drawing.Imaging.ColorMatrix(New Single()() {New Single() {0, 0, 0, 0, 0}, New Single() {0, 0, 0, 0, 0}, New Single() {0.2, 0.2, 0.2, 0, 0}, New Single() {0, 0, 0, 1, 0}, New Single() {0, 0, 0, 0, 1}}) End Select Dim Image_Attributes As System.Drawing.Imaging.ImageAttributes = New System.Drawing.Imaging.ImageAttributes() Image_Attributes.SetColorMatrix(Color_Matrix) Image_Graphic.DrawImage(Image, New Rectangle(0, 0, Image.Width, Image.Height), 0, 0, Image.Width, Image.Height, GraphicsUnit.Pixel, Image_Attributes) Image_Graphic.Dispose() Return Image_Bitmap End Function #End Region
|
|
|
En línea
|
|
|
|
ABDERRAMAH
Desconectado
Mensajes: 431
en ocasiones uso goto ¬¬
|
Interesante!
Podrías también, si quieres, pasar la imágen por referencia, como hago yo. Ésto es para no duplicarla, así trabajamos sobre la misma imágen de entrada. Ahorra memoria aunque realizará el cambio aunque no hagamos:
img = grayscale_image(img,grayscale.mid_gray)
|
|
« Última modificación: 16 Enero 2013, 07:42 am por ABDERRAMAH »
|
En línea
|
|
|
|
spiritdead
Desconectado
Mensajes: 296
|
Interesante!
Podrías también, si quieres, pasar la imágen por referencia, como hago yo. Ésto es para no duplicarla, así trabajamos sobre la misma imágen de entrada. Ahorra memoria aunque realizará el cambio aunque no hagamos:
img = grayscale_image(img,grayscale.mid_gray)
en vez de usar 1 function usa 1 sub ....
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
Podrías también, si quieres, pasar la imágen por referencia, como hago yo. Ésto es para no duplicarla, así trabajamos sobre la misma imágen de entrada. Ahorra memoria aunque realizará el cambio aunque no hagamos: No conocía esos beneficios de ByRef, gracias!
|
|
|
En línea
|
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
No conocía esos beneficios de ByRef, gracias! Tienes que intentar mejorar tus conceptos es algo bastante básico
|
|
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Librería de Snippets en C/C++
« 1 2 3 4 »
Programación C/C++
|
z3nth10n
|
31
|
26,097
|
2 Agosto 2013, 17:13 pm
por 0xDani
|
|
|
[APORTE] [VBS] Snippets para manipular reglas de bloqueo del firewall de Windows
Scripting
|
Eleкtro
|
1
|
4,116
|
3 Febrero 2014, 20:19 pm
por Eleкtro
|
|
|
Librería de Snippets para Delphi
« 1 2 »
Programación General
|
crack81
|
15
|
21,359
|
25 Marzo 2016, 18:39 pm
por crack81
|
|
|
Una organización en Github para subir, proyectos, snippets y otros?
Sugerencias y dudas sobre el Foro
|
z3nth10n
|
0
|
3,106
|
21 Febrero 2017, 10:47 am
por z3nth10n
|
|
|
índice de la Librería de Snippets para VB.NET !!
.NET (C#, VB.NET, ASP)
|
Eleкtro
|
7
|
6,595
|
4 Julio 2018, 21:35 pm
por Eleкtro
|
|