Autor
|
Tema: Librería de Snippets para VB.NET !! (Compartan aquí sus snippets) (Leído 527,143 veces)
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.866
|
Si el ejemplo del MSDN y otros ejemplos ya los habré intentado mil veces Novlucker 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
Mensajes: 1.583
"Jack of all trades, master of none." - Zenthion
|
Esto lleva 3 días sin recibir Snippets! Mala señal... Eliminar duplicados de un ListBoxSe necesita un listbox, algunos elementos repetidos entre sí dentro de el y un botón. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click MsgBox(Eliminar(ListBox1) & " elementos duplicados en el List.", MsgBoxStyle.Information) End Sub Function Eliminar(ByVal LB As ListBox) As Int32 Dim i As Int32 Dim j As Int32 Dim n As Int32 ' Recorre los items ( compara empezando desde el primero , de abajo hacia arriba) For i = 0 To LB.Items.Count - 2 For j = LB.Items.Count - 1 To i + 1 Step -1 ' ... si es el mismo If LB.Items(i).ToString = LB.Items(j).ToString Then LB.Items.RemoveAt(j) ' elimina el elemento indicando el índice n += 1 'lleva la cuenta de los duplicados End If Next Next Return n ' retorna los eliminados End Function
Resultado:PD: Este code lo he sacado de aquí: http://www.listeningonlineingles.com/2012/10/eliminar-duplicados-de-un-listbox-en.htmlPero 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
Mensajes: 9.866
|
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: #Region " [ListBox] Remove Duplicates " ' [ListBox] Remove Duplicates ' ' // By Elektro H@cker ' ' Examples : ' RemoveDuplicates(ListBox1) Private Sub RemoveDuplicates(ByVal [Listbox] As ListBox) Dim ItemArray() As String = [Listbox].Items.Cast(Of String).Distinct().ToArray [Listbox].Items.Clear() [Listbox].Items.AddRange(ItemArray) End Sub #End Region
Saludos!
|
|
« Última modificación: 24 Julio 2013, 18:04 pm por EleKtro H@cker »
|
En línea
|
|
|
|
z3nth10n
Desconectado
Mensajes: 1.583
"Jack of all trades, master of none." - Zenthion
|
Y si quiero saber cuantos están repes?
|
|
|
En línea
|
⏩ Interesados hablad por Discord.
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.866
|
Y si quiero saber cuantos están repes? Usa la lógica y saca la diferencia: 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: #Region " Remove Array Duplicates " ' Remove Array Duplicates ' ' // By Elektro H@cker ' ' Examples : ' Dim myarray(10) As String ' myarray(0) = "a" : myarray(1) = "b" : myarray(2) = "b" : myarray(3) = "a" ' myarray = RemoveDuplicates(myarray) Private Function RemoveDuplicates(ByVal Myarray() As String) As String() Array.Resize(Myarray, Myarray.Cast(Of String).Distinct().ToArray.LongLength - 1) Return Myarray End Function #End Region
|
|
« Última modificación: 24 Julio 2013, 19:24 pm por EleKtro H@cker »
|
En línea
|
|
|
|
z3nth10n
Desconectado
Mensajes: 1.583
"Jack of all trades, master of none." - Zenthion
|
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 FormImports System.Net.Mail Public Class Form1 Function SendEmail(ByVal Recipients As List(Of String), _ ByVal FromAddress As String, _ ByVal Subject As String, _ ByVal Body As String, _ ByVal UserName As String, _ ByVal Password As String, _ Optional ByVal Server As String = "smtp.gmail.com", _ Optional ByVal Port As Integer = 587, _ Optional ByVal Attachments As List(Of String) = Nothing) As String Dim Email As New MailMessage() Try Dim SMTPServer As New SmtpClient For Each Attachment As String In Attachments Email.Attachments.Add(New Attachment(Attachment)) Next Email.From = New MailAddress(FromAddress) For Each Recipient As String In Recipients Email.To.Add(Recipient) Next Email.Subject = Subject Email.Body = Body SMTPServer.Host = Server SMTPServer.Port = Port SMTPServer.Credentials = New System.Net.NetworkCredential(UserName, Password) SMTPServer.EnableSsl = True SMTPServer.Send(Email) Email.Dispose() Return "Email to " & Recipients(0) & " from " & FromAddress & " was sent." Catch ex As SmtpException Email.Dispose() Return "Sending Email Failed. Smtp Error." Catch ex As ArgumentOutOfRangeException Email.Dispose() Return "Sending Email Failed. Check Port Number." Catch Ex As InvalidOperationException Email.Dispose() Return "Sending Email Failed. Check Port Number." End Try End Function Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim Recipients As New List(Of String) Recipients.Add("SomeEmailAddress") Dim FromEmailAddress As String = Recipients(0) Dim Subject As String = "Test From VB." Dim Body As String = "email body text, if you are reading this from your gmail account, the program worked." Dim UserName As String = "GMAIL USERNAME WITHOUT (@GMAIL>COM)" Dim Password As String = "Password" Dim Port As Integer = 587 Dim Server As String = "smtp.gmail.com" Dim Attachments As New List(Of String) MsgBox(SendEmail(Recipients, FromEmailAddress, Subject, Body, UserName, Password, Server, Port, Attachments)) End Sub End Class
Ale, ponte a optimizar xD
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. Un saludo.
|
|
|
En línea
|
⏩ Interesados hablad por Discord.
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.866
|
Comprobar si un archivo es un archivo de registro válido (version 5.0) #Region " Is Registry File " ' [ Is Registry File Function ] ' ' // By Elektro H@cker ' ' Examples : ' MsgBox(IsRegFile("C:\RegistryFile.reg")) ' IsRegistryFile Private Function IsRegFile(ByVal RegistryFile As String) As Boolean Dim Regedit_Signature As String = "windows registry editor version 5.00" Return IO. File. ReadAllText(RegistryFile ). ToLower. Trim. StartsWith(Regedit_Signature ) End Function #End Region
El núcleo de mi programa REG2BAT, mejorado para soportar caracteres inválidos por Batch (para escaparlos) #Region " Reg2Bat " ' [ Reg2Bat Function ] ' ' // By Elektro H@cker ' ' Examples : ' MsgBox(Reg2Bat("C:\Registry.reg")) Public Enum REG2BAT_Format As Int16 BINARY = 1 DWORD = 2 QWORD = 3 EXPAND_SZ = 4 MULTI_SZ = 5 REG_SZ = 0 End Enum ' Reg2Bat Private Function Reg2Bat(ByVal Reg_File As String) As String ' Source Input ' Join he lines, delete the Regedit linebreaks characters: "\ ", and then split the lines. Dim RegFile() As String = Split( _ String. Join("@@@Reg2Bat@@@", IO. File. ReadAllLines(Reg_File )) _ .Replace("\@@@Reg2Bat@@@ ", "") _ .Replace("@@@Reg2Bat@@@", Environment.NewLine), _ Environment.NewLine) Dim RegLine As String = String.Empty ' Where the Regedit Line will be stored. Dim RegKey As String = String.Empty ' Where the Regedit Key will be stored. Dim RegVal As String = String.Empty ' Where the Regedit Value will be stored. Dim RegData As String = String.Empty ' Where the Regedit Data will be stored. Dim Batch_Commands As String = String.Empty ' Where the decoded Regedit strings will be stored. Batch_Commands &= ":: Converted with REG2BAT by Elektro H@cker" Batch_Commands &= Environment.NewLine & Environment.NewLine Batch_Commands &= "@Echo OFF" Batch_Commands &= Environment.NewLine & Environment.NewLine ' Start reading the Regedit File For X As Int64 = 0 To RegFile.LongLength - 1 RegLine = RegFile(X).Trim Select Case True Case RegLine.StartsWith(";") ' Comment line Batch_Commands &= Environment.NewLine Batch_Commands &= String.Format("REM {0}", RegLine.Substring(1, RegLine.Length - 1).Trim) Batch_Commands &= Environment.NewLine Case RegLine.StartsWith("[-") ' Key to delete RegKey = RegLine.Substring(2, RegLine.Length - 3).Trim Batch_Commands &= String.Format("REG DELETE ""{0}"" /F", RegKey) Batch_Commands &= Environment.NewLine Case RegLine.StartsWith("[") ' Key to add RegKey = RegLine.Substring(1, RegLine.Length - 2).Trim Batch_Commands &= String.Format("REG ADD ""{0}"" /F", RegKey) Batch_Commands &= Environment.NewLine Case RegLine.StartsWith("@=") ' Default Value to add RegData = Split(RegLine, "@=", , CompareMethod.Text).Last Batch_Commands &= String.Format("REG ADD ""{0}"" /V """" /D {1} /F", RegKey, RegData) Batch_Commands &= Environment.NewLine Case RegLine.StartsWith("""") _ AndAlso RegLine.Split("=").Last = "-" ' Value to delete RegVal = RegLine.Substring(1, RegLine.Length - 4) Batch_Commands &= String.Format("REG DELETE ""{0}"" /V ""{1}"" /F", RegKey, RegVal) Batch_Commands &= Environment.NewLine Case RegLine.StartsWith("""") ' Value to add ' Check data type: Select Case RegLine.Split("=")(1).Split(":")(0).ToLower Case "hex" ' Binary RegVal = Format_Regedit_String(Get_Regedit_Value(RegLine, REG2BAT_Format.BINARY)) RegData = Get_Regedit_Data(RegLine, REG2BAT_Format.BINARY) Batch_Commands &= String.Format("REG ADD ""{0}"" /V ""{1}"" /T ""REG_BINARY"" /D ""{2}"" /F", RegKey, RegVal, RegData) Batch_Commands &= Environment.NewLine Case "dword" ' DWORD (32 bit) RegVal = Format_Regedit_String(Get_Regedit_Value(RegLine, REG2BAT_Format.DWORD)) RegData = Get_Regedit_Data(RegLine, REG2BAT_Format.DWORD) Batch_Commands &= String.Format("REG ADD ""{0}"" /V ""{1}"" /T ""REG_DWORD"" /D ""{2}"" /F", RegKey, RegVal, RegData) Batch_Commands &= Environment.NewLine Case "hex(b)" ' QWORD (64 bIT) RegVal = Format_Regedit_String(Get_Regedit_Value(RegLine, REG2BAT_Format.QWORD)) RegData = Get_Regedit_Data(RegLine, REG2BAT_Format.QWORD) Batch_Commands &= String.Format("REG ADD ""{0}"" /V ""{1}"" /T ""REG_QWORD"" /D ""{2}"" /F", RegKey, RegVal, RegData) Batch_Commands &= Environment.NewLine Case "hex(2)" ' EXPAND SZ RegVal = Format_Regedit_String(Get_Regedit_Value(RegLine, REG2BAT_Format.EXPAND_SZ)) RegData = Format_Regedit_String(Get_Regedit_Data(RegLine, REG2BAT_Format.EXPAND_SZ)) Batch_Commands &= String.Format("REG ADD ""{0}"" /V ""{1}"" /T ""REG_EXPAND_SZ"" /D ""{2}"" /F", RegKey, RegVal, RegData) Batch_Commands &= Environment.NewLine Case "hex(7)" ' MULTI SZ RegVal = Format_Regedit_String(Get_Regedit_Value(RegLine, REG2BAT_Format.MULTI_SZ)) RegData = Format_Regedit_String(Get_Regedit_Data(RegLine, REG2BAT_Format.MULTI_SZ)) Batch_Commands &= String.Format("REG ADD ""{0}"" /V ""{1}"" /T ""REG_MULTI_SZ"" /D ""{2}"" /F", RegKey, RegVal, RegData) Batch_Commands &= Environment.NewLine Case Else ' REG SZ RegVal = Format_Regedit_String(Get_Regedit_Value(RegLine, REG2BAT_Format.REG_SZ)) RegData = Format_Regedit_String(Get_Regedit_Data(RegLine, REG2BAT_Format.REG_SZ)) Batch_Commands &= String.Format("REG ADD ""{0}"" /V ""{1}"" /T ""REG_SZ"" /D ""{2}"" /F", RegKey, RegVal, RegData) Batch_Commands &= Environment.NewLine End Select End Select Next Return Batch_Commands End Function ' Get Regedit Value Private Function Get_Regedit_Value(ByVal Line As String, ByVal REG2BAT_Format As REG2BAT_Format) As String Dim str As String = Nothing Select Case REG2BAT_Format Case REG2BAT_Format.BINARY : str = Split(Line, "=hex:", , CompareMethod.Text).First Case REG2BAT_Format.DWORD : str = Split(Line, "=dword:", , CompareMethod.Text).First Case REG2BAT_Format.QWORD : str = Split(Line, "=hex(b):", , CompareMethod.Text).First Case REG2BAT_Format.EXPAND_SZ : str = Split(Line, "=Hex(2):", , CompareMethod.Text).First Case REG2BAT_Format.MULTI_SZ : str = Split(Line, "=Hex(7):", , CompareMethod.Text).First Case REG2BAT_Format.REG_SZ : str = Split(Line, """=""", , CompareMethod.Text).First Case Else : Return Nothing End Select If str.StartsWith("""") Then str = str.Substring(1, str.Length - 1) If str.EndsWith("""") Then str = str.Substring(0, str.Length - 1) Return str End Function ' Get Regedit Data Private Function Get_Regedit_Data(ByVal Line As String, ByVal REG2BAT_Format As REG2BAT_Format) As String Dim Data As String = Nothing Select Case REG2BAT_Format Case REG2BAT_Format.BINARY Return Split(Line, (Split(Line, "=hex:", , CompareMethod.Text).First & "=hex:"), , CompareMethod.Text).Last.Replace(",", "") Case REG2BAT_Format.DWORD Return "0x" & Split(Line, (Split(Line, "=dword:", , CompareMethod.Text).First & "=dword:"), , CompareMethod.Text).Last.Replace(",", "") Case REG2BAT_Format.QWORD Line = StrReverse(Split(Line, (Split(Line, "=hex(b):", , CompareMethod.Text).First & "=hex(b):"), , CompareMethod.Text).Last.Replace(",", "")) For Each [byte] In Line.Split(",") : Data &= StrReverse([byte]) : Next Return Data Case REG2BAT_Format.EXPAND_SZ Line = Split(Line, (Split(Line, "=Hex(2):", , CompareMethod.Text).First & "=hex(2):"), , CompareMethod.Text).Last.Replace(",00", "").Replace("00,", "") For Each [byte] In Line.Split(",") : Data &= Chr(Val("&H" & [byte])) : Next Return Data.Replace("""", "\""") Case REG2BAT_Format.MULTI_SZ Line = Split(Line, (Split(Line, "=Hex(7):", , CompareMethod.Text)(0) & "=hex(7):"), , CompareMethod.Text).Last.Replace(",00,00,00", ",\0").Replace(",00", "").Replace("00,", "") For Each [byte] In Line.Split(",") If [byte] = "\0" Then Data &= "\0" ' Line separator for multiline. Else Data &= Chr(Val("&H" & [byte])) End If Next Return Data.Replace("""", "\""") Case REG2BAT_Format.REG_SZ Data = Split(Line, (Split(Line, """=""", , CompareMethod.Text)(0) & """="""), , CompareMethod.Text).Last Data = Data.Substring(0, Data.Length - 1) Return Data Case Else Return Nothing End Select End Function ' Format Regedit String Private Function Format_Regedit_String(ByVal str As String) As String str = str.Replace("%", "%%") If Not str.Contains("""") Then Return str str = str.Replace("\""", """") Dim strArray() As String = str.Split("""") For num As Long = 1 To strArray.Length - 1 Step 2 strArray(num) = strArray(num).Replace("^", "^^") ' This replace need to be THE FIRST. strArray(num) = strArray(num).Replace("<", "^<") strArray(num) = strArray(num).Replace(">", "^>") strArray(num) = strArray(num).Replace("|", "^|") strArray(num) = strArray(num).Replace("&", "^&") ' strArray(num) = strArray(num).Replace("\", "\\") Next Return String.Join("\""", strArray) End Function #End Region
|
|
« Última modificación: 27 Julio 2013, 13:38 pm por EleKtro H@cker »
|
En línea
|
|
|
|
The_Saint
Desconectado
Mensajes: 74
Ezo
|
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
Mensajes: 1.583
"Jack of all trades, master of none." - Zenthion
|
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:Imports System.Text Public Class Form1 Function Randomize() 'Fuck the police Dim s As String = "abcdefghijklmnopqrstuvwyxzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" 'Aquí se define los caracteres que se van a mostrar Dim r As New Random 'Se declara la Class Random Dim sb As New StringBuilder 'Se declarar la Class StingBuilder For i As Integer = 1 To 8 'Aquí se llama al ciclo For; el 8 representa el numero de caracteres en la cadena Dim idx As Integer = r.Next(0, 35) 'Esto no se muy bien que hace xD sb.Append(s.Substring(idx, 1)) 'Y esto lo muestra? Next Return sb.ToString 'Esto lo returna para que luego en el MsgBox salga el valor correcto End Function Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 'Evento de un botón, por poner algún evento Dim Max As Integer = 10 'Aquí el numero de MsgBox a mostrar For i As Integer = 0 To Max 'Aquí se llama al ciclo For MsgBox(Randomize()) 'Aquí se muestran las MsgBox Next End Sub End Class
Con esto voy a poder hacer muchas, pero que muchas troleadas Un saludo. Extra en PHP, para que Elektro aprenda:function rand_string($length) { $str = ""; //Por si no quieres ningún E_NOTICE por culero. :P $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; //Aquí se define los caracteres que se van a mostrar $size = strlen($chars); //Aquí se devuelve la longitud del string dado for($i = 0; $i < $length; $i++) { //Un ciclo For de toda la vida $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 } return $str; //Aquí se returna para luego mostrarla con un Echo } echo rand_string(8); //Aquí se muestra con una longitud de 8 caracteres... //Ejemplo: http://phpfiddle.org/main/code/7rx-rnp
Ejemplo: http://phpfiddle.org/main/code/7rx-rnp PD: Espero que sepas agradecer la molestia que me he tomado..
|
|
« Última modificación: 31 Julio 2013, 00:20 am por Ikillnukes »
|
En línea
|
⏩ Interesados hablad por Discord.
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.866
|
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: 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?...
...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... : Private Function Random_String(ByVal Length As Int32, _ Optional ByVal Characters As String = _ "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" _ ) As String Select Case Length Case Is < 1 ' Is 0 or negative Throw New Exception("Length must be greater than 0") Case Else ' Is greater than 0 Dim str As String = String.Empty Dim rand As New Random, rand_length As Int32 = Characters.Length Do Until str.Length = Length str &= Characters.Substring(rand.Next(0, rand_length), 1) Loop Return str End Select 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
|
|
|
|
|
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
|
25,820
|
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,068
|
3 Febrero 2014, 20:19 pm
por Eleкtro
|
|
|
Librería de Snippets para Delphi
« 1 2 »
Programación General
|
crack81
|
15
|
21,058
|
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,065
|
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,508
|
4 Julio 2018, 21:35 pm
por Eleкtro
|
|