Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: agus0 en 18 Diciembre 2010, 04:03 am



Título: [Herramienta+Source] Creador de "Cabezeras" para Codigo Fuente
Publicado por: agus0 en 18 Diciembre 2010, 04:03 am
Hola Foro Como ahora estoy empezando a Hacer módulos y demás proyectos que voy a compartir dije ... "Tengo que ponerle mi marca, Como hacen Los chicos del foro..." así que para facilitarme la creación de estos me hice un programa que los Auto completa.... y lo comparto con Ustedes, por supuesto también el Source.

Se que el Código se puede reducir... pero Lo hice rapidito y sin pensarlo mucho, lo que mas me importaba era el resultado final, igual por supuesto siempre estoy abierto a criticas constructivas... sin mas Bla, Bla, Bla:


(http://www.freeimagehosting.net/uploads/7b394bc66c.jpg)

Descargar Ejecutable (SOLO "*.exe) (http://www.mediafire.com/?ox1cem1iichlegy)

Descargar Source (http://www.mediafire.com/?9h0fx3ofr2483ka)

                                                                                                                                                           

Solo mMakeHeader.bas:

Código
  1. '////////////////////////////////////////////////////////////////////////////////////////////////////////'
  2. '///                                                                                                  ///'
  3. '///  º Tite:          mMakeHeader.bas                                                                ///'
  4. '///  º Author:        agus0                                                                          ///'
  5. '///  º Mail:          agus0@vbfree.com.ar                                                            ///'
  6. '///  º Date:          17/12/10                                                                       ///'
  7. '///  º Contributors:  -                                                                              ///'
  8. '///  º Web:           www.agus0.com.ar & www.vbfree.com.ar                                           ///'
  9. '///                                                                                                  ///'
  10. '////////////////////////////////////////////////////////////////////////////////////////////////////////'
  11.  
  12. Option Explicit
  13.  
  14. Private Const cLine1 = "'/////////////////////////////////////////////////////////////////////////////////////////////////////////'"
  15. Private Const cLine2 = "'///                                                                                                   ///'"
  16. Private Const cLineT = "'///  º Tite:          TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT  ///'"
  17. Private Const cLineA = "'///  º Author:        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA  ///'"
  18. Private Const cLineM = "'///  º Mail:          MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM  ///'"
  19. Private Const cLineD = "'///  º Date:          DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD  ///'"
  20. Private Const cLineC = "'///  º Contributors:  CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC  ///'"
  21. Private Const cLineW = "'///  º Web:           WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW  ///'"
  22. Private Const cLine3 = "'///                                                                                                   ///'"
  23. Private Const cLine4 = "'/////////////////////////////////////////////////////////////////////////////////////////////////////////'"
  24. Private Const cCadenaT = "TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT"
  25. Private Const cCadenaA = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
  26. Private Const cCadenaM = "MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM"
  27. Private Const cCadenaD = "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"
  28. Private Const cCadenaC = "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC"
  29. Private Const cCadenaW = "WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW"
  30.  
  31. Public Function MakeHeader(Titulo As String, Autor As String, Mail As String, Fecha As String, Ayuda As String, Web As String, Optional Style As String = "///", Optional Vig As String = "º") As Variant
  32.    Dim Linea1, Linea2, LineaT, LineaA, LineaM, LineaD, LineaC, LineaW, Linea3, Linea4 As String
  33.    Dim B As Integer
  34.    Dim Space As String
  35.    'Estilos:
  36.    Linea1 = Replace(cLine1, "///", Style)
  37.    Linea2 = Replace(cLine2, "///", Style)
  38.    Linea3 = Replace(cLine3, "///", Style)
  39.    Linea4 = Replace(cLine4, "///", Style)
  40.    LineaT = Replace(cLineT, "º", Vig)
  41.    LineaT = Replace(LineaT, "///", Style)
  42.    LineaA = Replace(cLineA, "º", Vig)
  43.    LineaA = Replace(LineaA, "///", Style)
  44.    LineaM = Replace(cLineM, "º", Vig)
  45.    LineaM = Replace(LineaM, "///", Style)
  46.    LineaD = Replace(cLineD, "º", Vig)
  47.    LineaD = Replace(LineaD, "///", Style)
  48.    LineaC = Replace(cLineC, "º", Vig)
  49.    LineaC = Replace(LineaC, "///", Style)
  50.    LineaW = Replace(cLineW, "º", Vig)
  51.    LineaW = Replace(LineaW, "///", Style)
  52.    'Pasaje de Variables (Max Len 77)
  53.    Titulo = Left(Titulo, 77)
  54.    Autor = Left(Autor, 77)
  55.    Mail = Left(Mail, 77)
  56.    Fecha = Left(Fecha, 77)
  57.    Ayuda = Left(Ayuda, 77)
  58.    Web = Left(Web, 76)
  59.    Space = ""
  60.    For B = Len(Titulo) To 77
  61.        Space = Space & " "
  62.    Next B
  63.    LineaT = Replace(LineaT, cCadenaT, Titulo & Space)
  64.    Space = ""
  65.    For B = Len(Autor) To 77
  66.        Space = Space & " "
  67.    Next B
  68.    LineaA = Replace(LineaA, cCadenaA, Autor & Space)
  69.    Space = ""
  70.    For B = Len(Mail) To 77
  71.        Space = Space & " "
  72.    Next B
  73.    LineaM = Replace(LineaM, cCadenaM, Mail & Space)
  74.    Space = ""
  75.    For B = Len(Fecha) To 77
  76.        Space = Space & " "
  77.    Next B
  78.    LineaD = Replace(LineaD, cCadenaD, Fecha & Space)
  79.    Space = ""
  80.    For B = Len(Ayuda) To 77
  81.        Space = Space & " "
  82.    Next B
  83.    LineaC = Replace(LineaC, cCadenaC, Ayuda & Space)
  84.    Space = ""
  85.    For B = Len(Web) To 77
  86.        Space = Space & " "
  87.    Next B
  88.    LineaW = Replace(LineaW, cCadenaW, Web & Space)
  89.    'Juntar
  90.    MakeHeader = Linea1 & vbCrLf & Linea2 & vbCrLf & LineaT & vbCrLf & LineaA & vbCrLf & LineaM & vbCrLf & LineaD & vbCrLf & LineaC & vbCrLf & LineaW & vbCrLf & Linea3 & vbCrLf & Linea4 & vbCrLf
  91. End Function
  92.  
  93.  


Título: Re: [Herramienta+Source] Creador de "Cabezeras" para Codigo Fuente
Publicado por: BlackZeroX en 18 Diciembre 2010, 06:48 am
.
En lugar de los for next y de las constantes con gran cantidad de texto no seria mejor usar

String()

Dulces Lunas!¡.
.


Título: Re: [Herramienta+Source] Creador de "Cabezeras" para Codigo Fuente
Publicado por: Psyke1 en 18 Diciembre 2010, 11:41 am
Ey agus0, la idea es buena! ;)
En serio, me gusto, solo unas cosas:

Podrias hacerlo más configurable:

*Poder meter las Webs que se quiera en diferentes líneas (con paramArray creo que podrias hacer algo), un ej:
Código
  1. Option Explicit
  2.  
  3. Private Sub Form_Load()
  4.    TestPA "Que", "vivan", "las", "ranas"
  5. End Sub
  6.  
  7. Sub TestPA(ParamArray Frog())
  8.    MsgBox Join$(Frog, vbNewLine)
  9. End Sub

*En la fecha podrias poner por defecto la fecha actual con Date$

*Si hay un campo vacío lo puedes eliminar

*El codigo se puede optimizar/reducir bastante.
Código
  1. MakeHeader = Linea1 & vbCrLf & Linea2 & vbCrLf & LineaT & vbCrLf & LineaA & vbCrLf & LineaM & vbCrLf & LineaD & vbCrLf & LineaC & vbCrLf & LineaW & vbCrLf & Linea3 & vbCrLf & Linea4 & vbCrLf
Si usaras una array que guardara las lineas podner todo eso con join (al principio te puse un ej)

*No me gusta esto :  :-\
Código
  1. Private Const cLine1 = "'/////////////////////////////////////////////////////////////////////////////////////////////////////////'"
  2. Private Const cLine2 = "'///                                                                                                   ///'"
  3. Private Const cLineT = "'///  º Tite:          TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT  ///'"
  4. Private Const cLineA = "'///  º Author:        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA  ///'"
  5. Private Const cLineM = "'///  º Mail:          MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM  ///'"
  6. Private Const cLineD = "'///  º Date:          DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD  ///'"
  7. Private Const cLineC = "'///  º Contributors:  CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC  ///'"
  8. Private Const cLineW = "'///  º Web:           WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW  ///'"
  9. Private Const cLine3 = "'///                                                                                                   ///'"
  10. Private Const cLine4 = "'/////////////////////////////////////////////////////////////////////////////////////////////////////////'"
  11. Private Const cCadenaT = "TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT"
  12. Private Const cCadenaA = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
  13. Private Const cCadenaM = "MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM"
  14. Private Const cCadenaD = "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"
  15. Private Const cCadenaC = "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC"
  16. Private Const cCadenaW = "WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW"

*Después lo que dice Black de usar String$() para las repeticiones

*Un detallito:
Código
  1. '///  º Tite:          mMakeHeader.bas                                                                ///'
Es Title no Tite... :xD
...

Con esto ya tienes para un rato, solo son sugerencias, nada más...  :P

DoEvents! :P


Título: Re: [Herramienta+Source] Creador de "Cabezeras" para Codigo Fuente
Publicado por: agus0 en 18 Diciembre 2010, 13:35 pm
Gracias Ranita, Lo de La Fecha se me había ocurrido ahora cuando lo retoque le agrego que el ancho varíe según el largo de la cadena mas larga así no es exageradamente grande, Jajaj no me di cuenta de lo de Title jaja. Después Voy a Chequear todo lo que me dijeron por que hay cosas que no conocía.

Gracias por Sus Recomendaciones y me alegro que te guste la idea :)


Título: Re: [Herramienta+Source] Creador de "Cabezeras" para Codigo Fuente
Publicado por: raul338 en 18 Diciembre 2010, 15:00 pm
Esta linda la idea, y tambien seria mejor si pudieras poner que el usuario elija con que caracteres rellenar el cuadro!

Código
  1. '///  º Contributors:  -  
Queda muy orgulloso eso :xD


Título: Re: [Herramienta+Source] Creador de "Cabezeras" para Codigo Fuente
Publicado por: Karcrack en 18 Diciembre 2010, 15:17 pm
Os recomiendo MZ-Tools, que ademas de tener la opcion de crear cabeceras tiene otras muchas cosas utiles :D
Código:
http://www.mztools.com/v3/download_sp.aspx

Un saludo :)


Título: Re: [Herramienta+Source] Creador de "Cabezeras" para Codigo Fuente
Publicado por: agus0 en 18 Diciembre 2010, 16:18 pm
Os recomiendo MZ-Tools, que ademas de tener la opcion de crear cabeceras tiene otras muchas cosas utiles :D
Código:
http://www.mztools.com/v3/download_sp.aspx

Un saludo :)

No conocía ningún programa por el estilo. pero me imagine que habría alguno...  es mas pensé "Seguro alguien de foro tira un "Tenes X programa para hacer eso"...

Gracias Karcrack ahora lo Pruebo


Título: Re: [Herramienta+Source] Creador de "Cabezeras" para Codigo Fuente
Publicado por: Psyke1 en 18 Diciembre 2010, 16:29 pm
Os recomiendo MZ-Tools, que ademas de tener la opcion de crear cabeceras tiene otras muchas cosas utiles :D
Código:
http://www.mztools.com/v3/download_sp.aspx

Un saludo :)
Wooow Karcry, esta genial! :D

DoEvents! :P


Título: Re: [Herramienta+Source] Creador de "Cabezeras" para Codigo Fuente
Publicado por: agus0 en 18 Diciembre 2010, 16:42 pm
Wooow Karcry, esta genial! :D

DoEvents! :P

Si es verdad Lo Termine de probar Esta excelente!! Murió mi Proyecto :S