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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Librería de Snippets para VB.NET !! (Compartan aquí sus snippets)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 ... 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 [27] 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 ... 60 Ir Abajo Respuesta Imprimir
Autor Tema: Librería de Snippets para VB.NET !! (Compartan aquí sus snippets)  (Leído 527,143 veces)
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: Librería de Snippets !! (Posteen aquí sus snippets)
« Respuesta #260 en: 21 Julio 2013, 04:10 am »

Si el ejemplo del MSDN y otros ejemplos ya los habré intentado mil veces Novlucker :P

El código de ejemplo funciona, pero a la hora de intentar poner cualquier ejemplo en práctica con una clave creada por Windows Y CON LOS PERMISOS DENEGADOS... no tira ni a la de tres, al intentar abrir la clave siempre salta error de acceso ...incluso aunque primero se cambie el propietario actual de la clave y se cojan los permisos actuales con "GetAccessRights" ...que ni se pueden coger porque la clave no se puede abrir (opensubkey) por que no tiene permisos de lectura, de verdad que ese ejemplo del MSDN sirve para muy poco xD (segúramente yo esté fallando en algo).

un saludo


En línea



z3nth10n


Desconectado Desconectado

Mensajes: 1.583


"Jack of all trades, master of none." - Zenthion


Ver Perfil WWW
Re: Librería de Snippets !! (Posteen aquí sus snippets)
« Respuesta #261 en: 24 Julio 2013, 15:16 pm »

Esto lleva 3 días sin recibir Snippets! :o
Mala señal...



Eliminar duplicados de un ListBox

Se necesita un listbox, algunos elementos repetidos entre sí dentro de el y un botón.

Código
  1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2.        MsgBox(Eliminar(ListBox1) & " elementos duplicados en el List.", MsgBoxStyle.Information)
  3.    End Sub
  4.  
  5.    Function Eliminar(ByVal LB As ListBox) As Int32
  6.        Dim i As Int32
  7.        Dim j As Int32
  8.        Dim n As Int32 ' Recorre los items ( compara empezando desde el primero , de abajo hacia arriba)
  9.        For i = 0 To LB.Items.Count - 2
  10.  
  11.            For j = LB.Items.Count - 1 To i + 1 Step -1 ' ... si es el mismo
  12.  
  13.                If LB.Items(i).ToString = LB.Items(j).ToString Then
  14.                    LB.Items.RemoveAt(j) ' elimina el elemento indicando el índice
  15.                    n += 1 'lleva la cuenta de los duplicados
  16.                End If
  17.            Next
  18.        Next
  19.        Return n ' retorna los eliminados
  20.    End Function

Resultado:



PD: Este code lo he sacado de aquí: http://www.listeningonlineingles.com/2012/10/eliminar-duplicados-de-un-listbox-en.html

Pero está super ultra mega bug y yo lo he arreglado.

Un saludo.


« Última modificación: 24 Julio 2013, 17:37 pm por Ikillnukes » En línea


Interesados hablad por Discord.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: Librería de Snippets !! (Posteen aquí sus snippets)
« Respuesta #262 en: 24 Julio 2013, 17:59 pm »

Eliminar duplicados de un ListBox

Según como lo estás haciendo por cada item va a hacer casi un TRIPLE ciclo entero del resto de items del listbox, así que si hay 100 items hará como 250 checkeos distintos recorriendo casi todos los items del listbox, no lo he medido del todo pero más del doble si que es,
yo prefiero dejarle la lógica de comparar los items a algún método nativo...

Aquí va mi versión:

Código
  1. #Region " [ListBox] Remove Duplicates "
  2.  
  3.    ' [ListBox] Remove Duplicates
  4.    '
  5.    ' // By Elektro H@cker
  6.    '
  7.    ' Examples :
  8.    ' RemoveDuplicates(ListBox1)
  9.  
  10.    Private Sub RemoveDuplicates(ByVal [Listbox] As ListBox)
  11.  
  12.        Dim ItemArray() As String = [Listbox].Items.Cast(Of String).Distinct().ToArray
  13.        [Listbox].Items.Clear()
  14.        [Listbox].Items.AddRange(ItemArray)
  15.  
  16.    End Sub
  17.  
  18. #End Region

Saludos!
« Última modificación: 24 Julio 2013, 18:04 pm por EleKtro H@cker » En línea



z3nth10n


Desconectado Desconectado

Mensajes: 1.583


"Jack of all trades, master of none." - Zenthion


Ver Perfil WWW
Re: Librería de Snippets !! (Posteen aquí sus snippets)
« Respuesta #263 en: 24 Julio 2013, 18:26 pm »

Y si quiero saber cuantos están repes? :P
En línea


Interesados hablad por Discord.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: Librería de Snippets !! (Posteen aquí sus snippets)
« Respuesta #264 en: 24 Julio 2013, 19:10 pm »

Citar
Y si quiero saber cuantos están repes? :P

Usa la lógica y saca la diferencia:

Código
  1. Dim DuplicateCount As Int32 = ([Listbox].Items.XXXXX - ItemArray.XXXXX)

 · Donde "XXXXX" equivale a la propiedad que contiene el número total de items.





Eliminar duplicados de un array de string:

Código
  1. #Region " Remove Array Duplicates "
  2.  
  3.    ' Remove Array Duplicates
  4.    '
  5.    ' // By Elektro H@cker
  6.    '
  7.    ' Examples :
  8.    ' Dim myarray(10) As String
  9.    ' myarray(0) = "a" : myarray(1) = "b" : myarray(2) = "b" : myarray(3) = "a"
  10.    ' myarray = RemoveDuplicates(myarray)
  11.  
  12.    Private Function RemoveDuplicates(ByVal Myarray() As String) As String()
  13.  
  14.        Array.Resize(Myarray, Myarray.Cast(Of String).Distinct().ToArray.LongLength - 1)
  15.        Return Myarray
  16.  
  17.    End Function
  18.  
  19. #End Region
« Última modificación: 24 Julio 2013, 19:24 pm por EleKtro H@cker » En línea



z3nth10n


Desconectado Desconectado

Mensajes: 1.583


"Jack of all trades, master of none." - Zenthion


Ver Perfil WWW
Re: Librería de Snippets !! (Posteen aquí sus snippets)
« Respuesta #265 en: 24 Julio 2013, 23:04 pm »

Por increíble que parezca el Items.Count ha podido conmigo, ya te he enviado info con todo lo que he hecho y he probado :-\



Para no spamear meto un Snippete de camino:

Enviar Mails (Correos) desde un Form

Código
  1. Imports System.Net.Mail
  2. Public Class Form1
  3.    Function SendEmail(ByVal Recipients As List(Of String), _
  4.                      ByVal FromAddress As String, _
  5.                      ByVal Subject As String, _
  6.                      ByVal Body As String, _
  7.                      ByVal UserName As String, _
  8.                      ByVal Password As String, _
  9.                      Optional ByVal Server As String = "smtp.gmail.com", _
  10.                      Optional ByVal Port As Integer = 587, _
  11.                      Optional ByVal Attachments As List(Of String) = Nothing) As String
  12.        Dim Email As New MailMessage()
  13.        Try
  14.            Dim SMTPServer As New SmtpClient
  15.            For Each Attachment As String In Attachments
  16.                Email.Attachments.Add(New Attachment(Attachment))
  17.            Next
  18.            Email.From = New MailAddress(FromAddress)
  19.            For Each Recipient As String In Recipients
  20.                Email.To.Add(Recipient)
  21.            Next
  22.            Email.Subject = Subject
  23.            Email.Body = Body
  24.            SMTPServer.Host = Server
  25.            SMTPServer.Port = Port
  26.            SMTPServer.Credentials = New System.Net.NetworkCredential(UserName, Password)
  27.            SMTPServer.EnableSsl = True
  28.            SMTPServer.Send(Email)
  29.            Email.Dispose()
  30.            Return "Email to " & Recipients(0) & " from " & FromAddress & " was sent."
  31.        Catch ex As SmtpException
  32.            Email.Dispose()
  33.            Return "Sending Email Failed. Smtp Error."
  34.        Catch ex As ArgumentOutOfRangeException
  35.            Email.Dispose()
  36.            Return "Sending Email Failed. Check Port Number."
  37.        Catch Ex As InvalidOperationException
  38.            Email.Dispose()
  39.            Return "Sending Email Failed. Check Port Number."
  40.        End Try
  41.    End Function
  42.    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  43.        Dim Recipients As New List(Of String)
  44.        Recipients.Add("SomeEmailAddress")
  45.        Dim FromEmailAddress As String = Recipients(0)
  46.        Dim Subject As String = "Test From VB."
  47.        Dim Body As String = "email body text, if you are reading this from your gmail account, the program worked."
  48.        Dim UserName As String = "GMAIL USERNAME WITHOUT  (@GMAIL>COM)"
  49.        Dim Password As String = "Password"
  50.        Dim Port As Integer = 587
  51.        Dim Server As String = "smtp.gmail.com"
  52.        Dim Attachments As New List(Of String)
  53.        MsgBox(SendEmail(Recipients, FromEmailAddress, Subject, Body, UserName, Password, Server, Port, Attachments))
  54.    End Sub
  55. End Class

Ale, ponte a optimizar xD :laugh:



Si hay algo que optimizar, luego pongo alguna especie de conversor de Html Entities y en el Body ("email body text, if you are reading this from your gmail account, the program worked.") se tunea un poco. :P

Un saludo.
En línea


Interesados hablad por Discord.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: Librería de Snippets !! (Posteen aquí sus snippets)
« Respuesta #266 en: 27 Julio 2013, 11:07 am »

Comprobar si un archivo es un archivo de registro válido (version 5.0)

Código
  1. #Region " Is Registry File "
  2.  
  3.    ' [ Is Registry File Function ]
  4.    '
  5.    ' // By Elektro H@cker
  6.    '
  7.    ' Examples :
  8.    ' MsgBox(IsRegFile("C:\RegistryFile.reg"))
  9.  
  10.    ' IsRegistryFile
  11.    Private Function IsRegFile(ByVal RegistryFile As String) As Boolean
  12.  
  13.        Dim Regedit_Signature As String = "windows registry editor version 5.00"
  14.        Return IO.File.ReadAllText(RegistryFile).ToLower.Trim.StartsWith(Regedit_Signature)
  15.  
  16.    End Function
  17.  
  18. #End Region





El núcleo de mi programa REG2BAT, mejorado para soportar caracteres inválidos por Batch (para escaparlos)

Código
  1.    #Region " Reg2Bat "
  2.  
  3.       ' [ Reg2Bat Function ]
  4.       '
  5.       ' // By Elektro H@cker
  6.       '
  7.       ' Examples :
  8.       ' MsgBox(Reg2Bat("C:\Registry.reg"))
  9.  
  10.    Public Enum REG2BAT_Format As Int16
  11.        BINARY = 1
  12.        DWORD = 2
  13.        QWORD = 3
  14.        EXPAND_SZ = 4
  15.        MULTI_SZ = 5
  16.        REG_SZ = 0
  17.    End Enum
  18.  
  19.    ' Reg2Bat
  20.    Private Function Reg2Bat(ByVal Reg_File As String) As String
  21.  
  22.        ' Source Input
  23.        ' Join he lines, delete the Regedit linebreaks characters: "\  ", and then split the lines.
  24.        Dim RegFile() As String = Split( _
  25.                                  String.Join("@@@Reg2Bat@@@", IO.File.ReadAllLines(Reg_File)) _
  26.                                  .Replace("\@@@Reg2Bat@@@  ", "") _
  27.                                  .Replace("@@@Reg2Bat@@@", Environment.NewLine), _
  28.                                  Environment.NewLine)
  29.  
  30.        Dim RegLine As String = String.Empty ' Where the Regedit Line will be stored.
  31.        Dim RegKey As String = String.Empty ' Where the Regedit Key will be stored.
  32.        Dim RegVal As String = String.Empty ' Where the Regedit Value will be stored.
  33.        Dim RegData As String = String.Empty ' Where the Regedit Data will be stored.
  34.  
  35.        Dim Batch_Commands As String = String.Empty ' Where the decoded Regedit strings will be stored.
  36.  
  37.        Batch_Commands &= ":: Converted with REG2BAT by Elektro H@cker"
  38.        Batch_Commands &= Environment.NewLine & Environment.NewLine
  39.        Batch_Commands &= "@Echo OFF"
  40.        Batch_Commands &= Environment.NewLine & Environment.NewLine
  41.  
  42.        ' Start reading the Regedit File
  43.        For X As Int64 = 0 To RegFile.LongLength - 1
  44.  
  45.            RegLine = RegFile(X).Trim
  46.  
  47.            Select Case True
  48.  
  49.                Case RegLine.StartsWith(";") ' Comment line
  50.  
  51.                    Batch_Commands &= Environment.NewLine
  52.                    Batch_Commands &= String.Format("REM {0}", RegLine.Substring(1, RegLine.Length - 1).Trim)
  53.                    Batch_Commands &= Environment.NewLine
  54.  
  55.                Case RegLine.StartsWith("[-") ' Key to delete
  56.  
  57.                    RegKey = RegLine.Substring(2, RegLine.Length - 3).Trim
  58.                    Batch_Commands &= String.Format("REG DELETE ""{0}"" /F", RegKey)
  59.                    Batch_Commands &= Environment.NewLine
  60.  
  61.                Case RegLine.StartsWith("[") ' Key to add
  62.  
  63.                    RegKey = RegLine.Substring(1, RegLine.Length - 2).Trim
  64.                    Batch_Commands &= String.Format("REG ADD ""{0}"" /F", RegKey)
  65.                    Batch_Commands &= Environment.NewLine
  66.  
  67.                Case RegLine.StartsWith("@=") ' Default Value to add
  68.  
  69.                    RegData = Split(RegLine, "@=", , CompareMethod.Text).Last
  70.                    Batch_Commands &= String.Format("REG ADD ""{0}"" /V  """" /D {1} /F", RegKey, RegData)
  71.                    Batch_Commands &= Environment.NewLine
  72.  
  73.                Case RegLine.StartsWith("""") _
  74.                AndAlso RegLine.Split("=").Last = "-"  ' Value to delete
  75.  
  76.                    RegVal = RegLine.Substring(1, RegLine.Length - 4)
  77.                    Batch_Commands &= String.Format("REG DELETE ""{0}"" /V ""{1}"" /F", RegKey, RegVal)
  78.                    Batch_Commands &= Environment.NewLine
  79.  
  80.                Case RegLine.StartsWith("""") ' Value to add
  81.  
  82.                    ' Check data type:
  83.                    Select Case RegLine.Split("=")(1).Split(":")(0).ToLower
  84.  
  85.                        Case "hex" ' Binary
  86.  
  87.                            RegVal = Format_Regedit_String(Get_Regedit_Value(RegLine, REG2BAT_Format.BINARY))
  88.                            RegData = Get_Regedit_Data(RegLine, REG2BAT_Format.BINARY)
  89.                            Batch_Commands &= String.Format("REG ADD ""{0}"" /V ""{1}"" /T ""REG_BINARY"" /D ""{2}"" /F", RegKey, RegVal, RegData)
  90.                            Batch_Commands &= Environment.NewLine
  91.  
  92.                        Case "dword" ' DWORD (32 bit)
  93.  
  94.                            RegVal = Format_Regedit_String(Get_Regedit_Value(RegLine, REG2BAT_Format.DWORD))
  95.                            RegData = Get_Regedit_Data(RegLine, REG2BAT_Format.DWORD)
  96.                            Batch_Commands &= String.Format("REG ADD ""{0}"" /V ""{1}"" /T ""REG_DWORD"" /D ""{2}"" /F", RegKey, RegVal, RegData)
  97.                            Batch_Commands &= Environment.NewLine
  98.  
  99.                        Case "hex(b)" ' QWORD (64 bIT)
  100.  
  101.                            RegVal = Format_Regedit_String(Get_Regedit_Value(RegLine, REG2BAT_Format.QWORD))
  102.                            RegData = Get_Regedit_Data(RegLine, REG2BAT_Format.QWORD)
  103.                            Batch_Commands &= String.Format("REG ADD ""{0}"" /V ""{1}"" /T ""REG_QWORD"" /D ""{2}"" /F", RegKey, RegVal, RegData)
  104.                            Batch_Commands &= Environment.NewLine
  105.  
  106.                        Case "hex(2)"  ' EXPAND SZ
  107.  
  108.                            RegVal = Format_Regedit_String(Get_Regedit_Value(RegLine, REG2BAT_Format.EXPAND_SZ))
  109.                            RegData = Format_Regedit_String(Get_Regedit_Data(RegLine, REG2BAT_Format.EXPAND_SZ))
  110.                            Batch_Commands &= String.Format("REG ADD ""{0}"" /V ""{1}"" /T ""REG_EXPAND_SZ"" /D ""{2}"" /F", RegKey, RegVal, RegData)
  111.                            Batch_Commands &= Environment.NewLine
  112.  
  113.                        Case "hex(7)" ' MULTI SZ
  114.  
  115.                            RegVal = Format_Regedit_String(Get_Regedit_Value(RegLine, REG2BAT_Format.MULTI_SZ))
  116.                            RegData = Format_Regedit_String(Get_Regedit_Data(RegLine, REG2BAT_Format.MULTI_SZ))
  117.                            Batch_Commands &= String.Format("REG ADD ""{0}"" /V ""{1}"" /T ""REG_MULTI_SZ"" /D ""{2}"" /F", RegKey, RegVal, RegData)
  118.                            Batch_Commands &= Environment.NewLine
  119.  
  120.                        Case Else ' REG SZ
  121.  
  122.                            RegVal = Format_Regedit_String(Get_Regedit_Value(RegLine, REG2BAT_Format.REG_SZ))
  123.                            RegData = Format_Regedit_String(Get_Regedit_Data(RegLine, REG2BAT_Format.REG_SZ))
  124.                            Batch_Commands &= String.Format("REG ADD ""{0}"" /V ""{1}"" /T ""REG_SZ"" /D ""{2}"" /F", RegKey, RegVal, RegData)
  125.                            Batch_Commands &= Environment.NewLine
  126.  
  127.                    End Select
  128.  
  129.            End Select
  130.  
  131.        Next
  132.  
  133.        Return Batch_Commands
  134.  
  135.    End Function
  136.  
  137.    ' Get Regedit Value
  138.    Private Function Get_Regedit_Value(ByVal Line As String, ByVal REG2BAT_Format As REG2BAT_Format) As String
  139.  
  140.        Dim str As String = Nothing
  141.  
  142.        Select Case REG2BAT_Format
  143.  
  144.            Case REG2BAT_Format.BINARY : str = Split(Line, "=hex:", , CompareMethod.Text).First
  145.            Case REG2BAT_Format.DWORD : str = Split(Line, "=dword:", , CompareMethod.Text).First
  146.            Case REG2BAT_Format.QWORD : str = Split(Line, "=hex(b):", , CompareMethod.Text).First
  147.            Case REG2BAT_Format.EXPAND_SZ : str = Split(Line, "=Hex(2):", , CompareMethod.Text).First
  148.            Case REG2BAT_Format.MULTI_SZ : str = Split(Line, "=Hex(7):", , CompareMethod.Text).First
  149.            Case REG2BAT_Format.REG_SZ : str = Split(Line, """=""", , CompareMethod.Text).First
  150.            Case Else : Return Nothing
  151.  
  152.        End Select
  153.  
  154.        If str.StartsWith("""") Then str = str.Substring(1, str.Length - 1)
  155.        If str.EndsWith("""") Then str = str.Substring(0, str.Length - 1)
  156.        Return str
  157.  
  158.    End Function
  159.  
  160.    ' Get Regedit Data
  161.    Private Function Get_Regedit_Data(ByVal Line As String, ByVal REG2BAT_Format As REG2BAT_Format) As String
  162.  
  163.        Dim Data As String = Nothing
  164.  
  165.        Select Case REG2BAT_Format
  166.  
  167.            Case REG2BAT_Format.BINARY
  168.                Return Split(Line, (Split(Line, "=hex:", , CompareMethod.Text).First & "=hex:"), , CompareMethod.Text).Last.Replace(",", "")
  169.  
  170.            Case REG2BAT_Format.DWORD
  171.                Return "0x" & Split(Line, (Split(Line, "=dword:", , CompareMethod.Text).First & "=dword:"), , CompareMethod.Text).Last.Replace(",", "")
  172.  
  173.            Case REG2BAT_Format.QWORD
  174.                Line = StrReverse(Split(Line, (Split(Line, "=hex(b):", , CompareMethod.Text).First & "=hex(b):"), , CompareMethod.Text).Last.Replace(",", ""))
  175.                For Each [byte] In Line.Split(",") : Data &= StrReverse([byte]) : Next
  176.                Return Data
  177.  
  178.            Case REG2BAT_Format.EXPAND_SZ
  179.                Line = Split(Line, (Split(Line, "=Hex(2):", , CompareMethod.Text).First & "=hex(2):"), , CompareMethod.Text).Last.Replace(",00", "").Replace("00,", "")
  180.                For Each [byte] In Line.Split(",") : Data &= Chr(Val("&H" & [byte])) : Next
  181.                Return Data.Replace("""", "\""")
  182.  
  183.            Case REG2BAT_Format.MULTI_SZ
  184.  
  185.                Line = Split(Line, (Split(Line, "=Hex(7):", , CompareMethod.Text)(0) & "=hex(7):"), , CompareMethod.Text).Last.Replace(",00,00,00", ",\0").Replace(",00", "").Replace("00,", "")
  186.  
  187.                For Each [byte] In Line.Split(",")
  188.  
  189.                    If [byte] = "\0" Then
  190.                        Data &= "\0" ' Line separator for multiline.
  191.                    Else
  192.                        Data &= Chr(Val("&H" & [byte]))
  193.                    End If
  194.  
  195.                Next
  196.  
  197.                Return Data.Replace("""", "\""")
  198.  
  199.            Case REG2BAT_Format.REG_SZ
  200.                Data = Split(Line, (Split(Line, """=""", , CompareMethod.Text)(0) & """="""), , CompareMethod.Text).Last
  201.                Data = Data.Substring(0, Data.Length - 1)
  202.                Return Data
  203.  
  204.            Case Else
  205.                Return Nothing
  206.  
  207.        End Select
  208.  
  209.    End Function
  210.  
  211.    ' Format Regedit String
  212.    Private Function Format_Regedit_String(ByVal str As String) As String
  213.  
  214.        str = str.Replace("%", "%%")
  215.        If Not str.Contains("""") Then Return str
  216.  
  217.        str = str.Replace("\""", """")
  218.  
  219.        Dim strArray() As String = str.Split("""")
  220.  
  221.        For num As Long = 1 To strArray.Length - 1 Step 2
  222.  
  223.            strArray(num) = strArray(num).Replace("^", "^^") ' This replace need to be THE FIRST.
  224.            strArray(num) = strArray(num).Replace("<", "^<")
  225.            strArray(num) = strArray(num).Replace(">", "^>")
  226.            strArray(num) = strArray(num).Replace("|", "^|")
  227.            strArray(num) = strArray(num).Replace("&", "^&")
  228.            ' strArray(num) = strArray(num).Replace("\", "\\")
  229.  
  230.        Next
  231.  
  232.        Return String.Join("\""", strArray)
  233.  
  234.    End Function
  235.  
  236.    #End Region
« Última modificación: 27 Julio 2013, 13:38 pm por EleKtro H@cker » En línea



The_Saint

Desconectado Desconectado

Mensajes: 74


Ezo


Ver Perfil
Re: Librería de Snippets !! (Posteen aquí sus snippets)
« Respuesta #267 en: 29 Julio 2013, 23:12 pm »

EleKtro H@cker
Espectacular el curro que te has pegado con los snippets  ;-)
En línea

<< Si piensas que eres demasiado pequeño para tener impacto.
Prueba a irte a la cama con un mosquito>>
z3nth10n


Desconectado Desconectado

Mensajes: 1.583


"Jack of all trades, master of none." - Zenthion


Ver Perfil WWW
Re: Librería de Snippets !! (Posteen aquí sus snippets)
« Respuesta #268 en: 31 Julio 2013, 00:02 am »

Seguro que cuando Elektro ha visto que un tal H_MUDA ha comentado, ha pensado, NUEVOS SNIPPETS! jajaja Yo también me he llevado una decepción. '--



Crear String random:

Código
  1. Imports System.Text
  2.  
  3. Public Class Form1
  4.  
  5. Function Randomize() 'Fuck the police
  6.        Dim s As String = "abcdefghijklmnopqrstuvwyxzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" 'Aquí se define los caracteres que se van a mostrar
  7.        Dim r As New Random 'Se declara la Class Random
  8.        Dim sb As New StringBuilder 'Se declarar la Class StingBuilder
  9.        For i As Integer = 1 To 8 'Aquí se llama al ciclo For; el 8 representa el numero de caracteres en la cadena
  10.            Dim idx As Integer = r.Next(0, 35) 'Esto no se muy bien que hace xD
  11.            sb.Append(s.Substring(idx, 1)) 'Y esto lo muestra?
  12.        Next
  13.        Return sb.ToString 'Esto lo returna para que luego en el MsgBox salga el valor correcto
  14.    End Function
  15.  
  16.    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 'Evento de un botón, por poner algún evento
  17.  
  18.        Dim Max As Integer = 10 'Aquí el numero de MsgBox a mostrar
  19.  
  20.        For i As Integer = 0 To Max 'Aquí se llama al ciclo For
  21.            MsgBox(Randomize()) 'Aquí se muestran las MsgBox
  22.        Next
  23.  
  24.    End Sub
  25.  
  26. End Class

Con esto voy a poder hacer muchas, pero que muchas troleadas :P

Un saludo.



Extra en PHP, para que Elektro aprenda:

Código
  1. function rand_string($length) {
  2.        $str = ""; //Por si no quieres ningún E_NOTICE por culero. :P
  3. $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; //Aquí se define los caracteres que se van a mostrar
  4.  
  5. $size = strlen($chars); //Aquí se devuelve la longitud del string dado
  6. for($i = 0; $i < $length; $i++) { //Un ciclo For de toda la vida
  7. $str .= $chars[rand(0, $size - 1)]; //Aquí se muestra, el equivalente en mi función de VB.NET sería Dim idx As Integer = r.Next(0, 35); pero aquí no se necesita ningún sb.Append(...) :P
  8. }
  9.  
  10. return $str; //Aquí se returna para luego mostrarla con un Echo
  11. }
  12.  
  13. echo rand_string(8); //Aquí se muestra con una longitud de 8 caracteres...
  14.  
  15. //Ejemplo: http://phpfiddle.org/main/code/7rx-rnp

Ejemplo: http://phpfiddle.org/main/code/7rx-rnp ;)

:laugh: :laugh: :laugh: :laugh:

PD: Espero que sepas agradecer la molestia que me he tomado.. :P
« Última modificación: 31 Julio 2013, 00:20 am por Ikillnukes » En línea


Interesados hablad por Discord.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: Librería de Snippets !! (Posteen aquí sus snippets)
« Respuesta #269 en: 31 Julio 2013, 02:16 am »

Me parece indignante leer comentarios de tus codes como "esto no tengo ni p**a idea de para q sirve", etc...

En el code de VB un fallo muy grave:
Código
  1. r.Next(0, 35) 'Esto no se muy bien que hace xD

Claro, que como de costumbre no te has molestado en buscar que coño significa, pus asi vas.

Significa que el número se va a generar desde el 0 hasta el 35, pero tu cadena de caracteres tiene una longitud de 62 caracteres...con lo cual no es nada aleatorio, ya que sólo escojerá entre los primeros 35 digitos...

En cambio en el code de PHP es correcto porque priméramente se obtiene la longitud de la cadena (variable $size) para usarlo como margen total del número random, cosa que no haces en VB y no sabes ni para que sirve pero en PHP si que lo haces así que debemos suponer que en PHP si que sabes para que sirve cuando ex exáctamente lo mismo?...

Código
  1. rand(0, $size - 1)

...Así que doy por supuesto que usas copy/paste para todos los lenguajes sin enterarte de nada de lo que haces, es algo que se nota a simple vista, y me parece muy mal Ikillnukes, y como he dicho, indignante, para serte aún más sincero no me extraña que algunas personas se enfaden cuando presumes de saber un lenguaje, no eres quien para llamar noobs a los que no saben PHP, porque viendo esto... tu no eres más, intenta ser un poco más humilde.

PD: A cualquiera que se haga llamar programador le molestaría darse cuenta de las cosas que me doy cuenta yo día a día contigo. Sabes o espero que sepas que no te tengo mania, pero yo estas cosas no las tolero.

Aparte de eso, no estás definiendo el tipo de valor que devuelves en la función, pero bueno, eso es una minucia comparado con lo que verdaderamente importa.

En fin, aquí tienes mi versión con dicho error corregido, ale, a copiar se ha dicho... :

Código
  1.    Private Function Random_String(ByVal Length As Int32, _
  2.                                   Optional ByVal Characters As String = _
  3.                                   "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" _
  4.                                  ) As String
  5.  
  6.        Select Case Length
  7.  
  8.            Case Is < 1 ' Is 0 or negative
  9.                Throw New Exception("Length must be greater than 0")
  10.  
  11.            Case Else ' Is greater than 0
  12.  
  13.                Dim str As String = String.Empty
  14.                Dim rand As New Random, rand_length As Int32 = Characters.Length
  15.  
  16.                Do Until str.Length = Length
  17.                    str &= Characters.Substring(rand.Next(0, rand_length), 1)
  18.                Loop
  19.  
  20.                Return str
  21.  
  22.        End Select
  23.  
  24.    End Function

PD2: Quizás sea beneficioso crear un método parecido pero usando LINQ para procesar más rápido cadenas extremádamente largas.
« Última modificación: 31 Julio 2013, 02:35 am por EleKtro H@cker » En línea



Páginas: 1 ... 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 [27] 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 ... 60 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines