[SOURCE] Advanced Cloc: Lector de líneas de código

Iniciado por z3nth10n, 26 Diciembre 2013, 23:37 PM

0 Miembros y 1 Visitante están viendo este tema.

z3nth10n

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 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, 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 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:



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.

Interesados hablad por Discord.

Eleкtro

#1
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 (vbnet,1,3,7) [Seleccionar]

Dim OutputFile As String = System.IO.Path.GetTempPath & "File.txt"

Dim pInfo As ProcessStartInfo

   Private Sub Analizar(ByVal Directory As String)

       pInfo = New ProcessStartInfo("cloc.bat", """" & Application.StartupPath & """ """ & Directory & """ """ & OutputFile & """")
       Proceso.EnableRaisingEvents = True
       pInfo.WindowStyle = ProcessWindowStyle.Hidden
       Proceso.StartInfo = pInfo
       Proceso.Start()

   End Sub

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

Código (vbnet,1,3,8,9) [Seleccionar]

Private ReadOnly OutputFile As String = IO.Path.GetTempFileName

Private pInfo As ProcessStartInfo = New ProcessStartInfo

   Private Sub Analizar(ByVal Directory As String)

       With pInfo
           .FileName = IO.Path.Combine(Application.StartupPath, "cloc-1.60.exe")
           .Arguments = String.Format("{0} --out={1}", Directory, Me.OutputFile)
           .CreateNoWindow = True
           .UseShellExecute = False
           '.RedirectStandardOutput = True
           '.RedirectStandardError = True
       End With

       With Proceso
           .EnableRaisingEvents = True
           .StartInfo = pInfo
       End With

       Proceso.Start()

   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








El Benjo

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.
www.es.neftis-ai.com

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.

Eleкtro

#3
Este aporte ha sido añadido al  Recopilatorio de temas interesantes  ;)

Gracias por compartir.

Salu2!








z3nth10n


Interesados hablad por Discord.