Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: z3nth10n en 26 Diciembre 2013, 23:37 pm



Título: [SOURCE] Advanced Cloc: Lector de líneas de código
Publicado por: z3nth10n en 26 Diciembre 2013, 23:37 pm
Hola buenas, lo primero aclarar que esta app que he hecho me baso en otra app que, en fin, no es tan clara de usar como voy a explicar:

Antes de ayer me acorde de Lino en DEV-EHN 2013 (http://foro.elhacker.net/programacion_general/ehndev_2013_concurso_de_desarrollo_de_aplicaciones_hilo_oficial-t391786.0.html;msg1862494#msg1862494) por que tenía la curiosidad de medir las líneas de código de algunos juegos decompilables... Así que nada, pues me puse a buscar por Google, y encontré Cloc (http://cloc.sourceforge.net), el caso es que me costo ver un poco al principio como se usaba, y luego vi que era por un Batch, a raíz de esto cree un post (http://foro.elhacker.net/scripting/batch_problema_al_leer_multiples_niveles_de_subdirectorios-t405562.0.html) en el que Elektro me ayudo un poco, y después de algunos retoques hice funcionar el script... Así que se me ocurrió la genial idea de hacer una app en la que fuese más intuitivo usar esta app :P

Así que sin más dilaciones aquí traigo "mi" app:

(http://gyazo.com/cef65ea04aba61e46c32fd52c0b5e336.png)

Básicamente adapte hice una app con VB.NET en el que abre el mismo Batch pero con los parametros más fácil de introducir... Es decir, que esta app es solo una adaptación para que la gente lo pueda usar más facilmente, el corazon de la máquina que lee todo no lo hice yo... Así que, si bueno, es un poco nub usar una app de tercero y añadir poco código encima de todo, pero es  un poco más intuitivo a la hora de usar, aun que también tiene sus contras como por ejemplo que no se puede visualizar el progreso cuando está Analizando el código de un proyecto... Futuramente añadiré esa opción...



Descripción:

Con esta pequeña app se puede obtener cuantas líneas tiene su proyecto.

Uso:

Introducir la carpeta de su proyecto y dar a Analizar, esperar un poco y un TXT con toda la información se abrirá...

Descarga:

http://www.mediafire.com/download/uqww40oyauyn8q1/Advanced%20Cloc.rar



Ya se que no es muy ético, pero bueno, mejoraré un poco la app, a ver si consigo hacer mi propia app, o por lo menos hacer más código para poder mostrar el Output en HTML o cualquier cosa que quede mejor :P

Un saludo.


Título: Re: [SOURCE] Advanced Cloc: Lector de líneas de código
Publicado por: Eleкtro en 27 Diciembre 2013, 10:35 am
Desde el aprecio te digo que tienes un problema con el concepto de "Ética", realizar una GUI para facilitar el uso de una aplicación CLI y compartirla sin ánimo de lucro ...no tiene nada de malo, eso sí, estoy seguro que al autor de la app no le gustaría nada que no le hayas dado créditos en tu app (para variar).

Sobre el código que has realizado, como te llevo diciendo desde hace días la utilización de un script Bat como intermediario para ejecutar un proceso (o para sacar el output, me da igual) es complétamente absurdo, esto es .NET, no Batch.

Cita de: Advanced CLOC
Código
  1. Dim OutputFile As String = System.IO.Path.GetTempPath & "File.txt"
  2.  
  3. Dim pInfo As ProcessStartInfo
  4.  
  5.    Private Sub Analizar(ByVal Directory As String)
  6.  
  7.        pInfo = New ProcessStartInfo("cloc.bat", """" & Application.StartupPath & """ """ & Directory & """ """ & OutputFile & """")
  8.        Proceso.EnableRaisingEvents = True
  9.        pInfo.WindowStyle = ProcessWindowStyle.Hidden
  10.        Proceso.StartInfo = pInfo
  11.        Proceso.Start()
  12.  
  13.    End Sub

Si quieres mejorar la aplicación, por ahí es por donde debes empezar, por ejemplo:

Código
  1. Private ReadOnly OutputFile As String = IO.Path.GetTempFileName
  2.  
  3. Private pInfo As ProcessStartInfo = New ProcessStartInfo
  4.  
  5.    Private Sub Analizar(ByVal Directory As String)
  6.  
  7.        With pInfo
  8.            .FileName = IO.Path.Combine(Application.StartupPath, "cloc-1.60.exe")
  9.            .Arguments = String.Format("{0} --out={1}", Directory, Me.OutputFile)
  10.            .CreateNoWindow = True
  11.            .UseShellExecute = False
  12.            '.RedirectStandardOutput = True
  13.            '.RedirectStandardError = True
  14.        End With
  15.  
  16.        With Proceso
  17.            .EnableRaisingEvents = True
  18.            .StartInfo = pInfo
  19.        End With
  20.  
  21.        Proceso.Start()
  22.  
  23.    End Sub

Aparte de eso, en el Script .bat hay un fallo, debes expandir las variables especiales (%~1/%~2/%~3) para quitarle las comillas, y encerrarlas entre comillas. Pero mejor olvidémonos de ese Script.

Saludos


Título: Re: [SOURCE] Advanced Cloc: Lector de líneas de código
Publicado por: El Benjo en 29 Diciembre 2013, 02:50 am
Mmmm, Elektro (como siempre) tiene razón. Eso de andar pasando los parámetros entre uno dos o x cantidad de intermediarios no tiene razón de ser. En todo caso por qué no copias el código fuente de la aplicación original (en caso de que puedas conseguirlo) dentro de tu aplicación. Es más si te sirve utiliza el de Lino, yo fui quien hizo esa aplicación. Analiza el código y ve si te sirve.

Nota: Lino a la hora de analizar los comentarios toma una linea linea mezclada (código y comentario al final) como una línea válida y no toma en cuenta ese comentario en el conteo. Esto es así para que haya equivalencia entre el número total de lineas y el número de lineas con código y con comentario.

Saludos.


Título: Re: [SOURCE] Advanced Cloc: Lector de líneas de código
Publicado por: Eleкtro en 8 Enero 2014, 21:44 pm
Este aporte ha sido añadido al  Recopilatorio de temas interesantes (http://foro.elhacker.net/net/recopilatorio_de_temas_interesantes-t301256.0.html)  ;)

Gracias por compartir.

Salu2!


Título: Re: [SOURCE] Advanced Cloc: Lector de líneas de código
Publicado por: z3nth10n en 9 Enero 2014, 15:06 pm
Gracias a ti por añadir. ::)