LineCounter - Wie viele Codezeilen haben meine VB-Projekte?

    • Release

    Es gibt 17 Antworten in diesem Thema. Der letzte Beitrag () ist von mrwebber.

      LineCounter - Wie viele Codezeilen haben meine VB-Projekte?

      Name des Programms:
      LineCounter

      Beschreibung:
      Ich hatte langsam keine Lust mehr, immer von Hand die Zeilen meiner Projekte zu addieren.
      Also musste eine kleines Programm her ...

      LineCounter gibt einfach die Anzahl der Zeilen aller VB-Projekte aus, die sich im Projekt-Ordner befinden.
      Ich weiß, dass sich das auch jeder selbst schreiben kann, aber warum die Mühe, wenn es bereits fertig ist :)

      Screenshot:


      Verwendete Programmiersprache und IDE:
      Visual Basic .NET (IDE: VB 2012)

      Download:
      Im Anhang!

      Lizenz/Weitergabe:
      Freeware

      Rückmeldungen:
      Okay um hier mal einigen Fragen gerecht zu werden:
      • Die in Visual Studio eingebaute Zählmethode zählt nicht direkt die Zeilen. Ich kenne das genaue Verfahren nicht, meine aber mal gelesen zu haben, dass die das aus IL zurückrechnen oder sowat ... sorry wenn das nicht ganz stimmt, auf jeden fall kommen bei VS immer weniger Zeilen raus, wie wenn man's von Hand zählt ^^
      • Das mit den Codezeilen ist so: Ich möchte hier wirklich die Zeilen in der Datei zählen, damit ich einen Überblick bekomme, wie viel "Code" ich nun produziert habe. Das hat auch den Hintergrund, dass ich selbst niemals Leerzeilen in meinen Klassen habe und auch keine reinen Kommentarzeilen. Die Kommentar stehen immer hinter dem Code. Ist ne interessante Diskussion, evtl. kann ich die reinen Kommantarzeilen versuchen, rauszufiltern. Designer-Dateien usw. werden ignoriert, nur die eigens erstellten Klassen zählen mit rein :)
      • Ich werde mir die Verbesserungvorschläge z.B. hinsichtlich der GUI von Niko mal annehmen, obwohl das gar nicht so ein "großes" Projekt werden sollte - habe mich aber über die tolle Kritik gefreut ;)

      Updates:
      • Es ist nun die GUI sofort sichtbar
      • Datagridview verwendet (kannte ich noch gar nicht, auch mal wieder was gelernt), also Sortierung ist nun möglich
      • Rekursive Suche nach Projekt-Ordnern via .sln-Datei. Somit sind bei mir auch noch 3 Projekte aufgetaucht, die sich in Unterordnern verkrümelt hatten ;)
      • Update ist im Anhang
      Dateien
      • LineCounter.exe

        (33,28 kB, 354 mal heruntergeladen, zuletzt: )

      Variablen über das Internet senden? [VB.NET] Universal Ticket.dll :thumbup:
      Lasse deine Programme selbstständig lernen! [VB.NET] Brain.dll
      :thumbsup:

      Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von „mrwebber“ ()

      Also ich find's interessant. Ich wollte schon immer mal die Codezeilen von meinen Projekten zählen, war aber zu faul mir ein Projekt dazu zu machen.
      Ein paar Verbesserungsvorschläge hätte ich noch:

      Wenn Du den Code zum Auslesen in die OnShown-Methode verlegst, wird die Form angezeigt und dann kommt erst der Dialog.
      Dadurch hat man während dem Zählen nicht das Gefühl, dass Dein Programm verschwunden ist.

      VB.NET-Quellcode

      1. Protected Overrides Sub OnShown(e As System.EventArgs)
      2. Using FBD As New FolderBrowserDialog
      3. If FBD.ShowDialog = Windows.Forms.DialogResult.OK Then
      4. '...
      5. End If
      6. End Using
      7. MyBase.OnShown(e)
      8. End Sub

      Im Idealfall könntest Du das Zählen an sich auch in einen separaten Thread verlegen. Dann zeigst Du auf der Form einen Text an (z.B. "Bitte warten, während gezählt wird..."). Sobald alles fertig ist, sagst Du dem Hauptthread, dass er eine ListBox mit den Daten anzeigen soll.

      Die Form könntest Du skalierbar lassen. Dann bekommt man alle Zeilen auf den Bildschirm, wenn man ein paar mehr hat.

      Interessant wäre auch eine Option, vordefinierte Dateien nicht mitzuzählen. Beispielsweise FormYY.Designer.vb oder im MyProject-Ordner die Application.Designer.vb, AssemblyInfo.vb, Resources.Designer.vb und Settings.Designer.vb

      Edit: Weil's angesprochen wurde. Man sollte in den Dateien unterscheiden zwischen tatsächlichen Codezeilen und Whitespace bzw. Kommentaren (welche ja nicht wirklich mitgezählt werden sollten).
      Das könnte man auch separat zählen. Dann könnte man schon eine detailiertere Ausgabe machen.

      Edit 2: Eine Funktion zum Kopieren der Ergebnisse in die Zwischenablage wäre auch super.
      Sortiermöglichkeit nach Projektname und nach Zeilenanzahl.
      (An der Stelle würde sich ein DataGridView (oder ähnlich) sicher gut anbieten)

      Edit 3: Mir ist gerade noch aufgefallen. Projekte werden nicht nach Projektmappenordnern erkannt (kennzeichnet sich durch eine Projektmappenname.sln-Datei im Ordner.
      Das sollte man genauer auseinanderhalten.
      Ein Beispiel:
      Ich gebe diesen Ordner an: C:\Projects
      Darin befindet sich dieser Projektordner: C:\Projects\Project01 mit der Projekmappentdatei C:\Projects\Project01\Project01.sln und den Projektordnern C:\Projects\Project01\MainProject und C:\Projects\Project01\PlugInInterfaces
      Da sollte man für jeden Ordner, der in C:\Projects gefunden wird, prüfen, ob eine .sln-Datei mit dem selben Namen wie der Ordner vorhanden ist. Wenn das der Fall ist, ist es ein Projektmappenordner.
      Ansonsten sollte im Ordner nach weiteren Ordnern gesucht wurden (Rekursion).
      "Luckily luh... luckily it wasn't poi-"
      -- Brady in Wonderland, 23. Februar 2015, 1:56
      Desktop Pinner | ApplicationSettings | OnUtils

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Niko Ortner“ ()

      Jo, ein Zeilen-Zähler sollte unbedingt nur die Dateien durchflöhen, die inne Solution auch eingebunden sind.
      In SolutionExplorer ist sone Analyse der .sln und .vbproj - Dateien drinne, falls jmd. sich daran versuchen möchte.


      Manawyrm schrieb:

      wie zählt dein Programm? Wirkliche Nutzzeilen ja nicht, oder?
      interessante Frage. ich sehe viele verschiedene möglichkeiten, code-zeilen zu zählen - das ergibt sich aus den verschiedenen Arten von Zeilen, die in den Code-Dateien rumfahren:
      Leerzeilen, Kommentare, Doku-Kommentare, tatsächlich vom Progger geschriebener Code, generierte Zeilen im User-Code, Code-Block-Abschlüsse, Code in Designer-Dateien, weitere?...

      Als Richtwert für Code-Effizienz und Wiederverwendbarkeit würde ich sogar Methoden-Köpfe auslassen - also nur wirkende Anweisungen zählen, die der Progger hingeschrieben hat.

      hingegen um Aufblähung zu messen natürlich auch Leerzeilen, Kommentare, Doku-Kommentare hineinnehmen in die Zählung.

      VS hat ja auch Code-Analyse-Tools - nur bewerten die z.T. nach bescheuerten Kriterien, oder auch nach Kriterien, die ich garnet verstehe.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()

      Edit by ErfinderDesRades: unnötiges Vollzitat entfernt

      Huch, das gibt's ja schon! :huh: :D

      Ja, ich suche rekursiv. :thumbup:

      Variablen über das Internet senden? [VB.NET] Universal Ticket.dll :thumbup:
      Lasse deine Programme selbstständig lernen! [VB.NET] Brain.dll
      :thumbsup:

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()

      Edit by ErfinderDesRades: unnötiges Vollzitat entfernt

      Hi, ich habe nichts mehr daran gemacht ... war im Urlaub und das Programm erfüllt meine Ansprüche mometan :thumbup:

      Variablen über das Internet senden? [VB.NET] Universal Ticket.dll :thumbup:
      Lasse deine Programme selbstständig lernen! [VB.NET] Brain.dll
      :thumbsup:

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()

      Dein Programm will mir irgendwie erzählen, dass ich in allen meinen Projekten keine einzige Zeile Code geschrieben habe, bis auf eines in dem ich 9 Codezeilen haben soll? Irgendwas stimmt da nicht...
      Abgesehen davon: Welche Dateien ließt dein Tool denn alle aus? Nur Code-Dateien? Oder alle Dateien die es finden kann? Wie wäre es, wenn man die Dateiendungen der zu durchsuchenden Dateien angeben kann und auch einstellen kann, dass Kommentarzeilen und leere Zeilen nicht gezählt werden? Am besten sollte man dabei eine Auswahl aus verschiedenen Kommentar-Typen die es in verschiedenen Programmiersprachen gibt haben sowie die Möglichkeit, eigene Anfänge für einen Kommentar zu definieren. Im Moment ist das Projekt weniger als 20 Minuten Zeitaufwand, wenn es denn funktionieren würde.
      lg
      Suscurtl
      Edit by ErfinderDesRades: unnötiges Vollzitat entfernt - es nervt langsam :cursing:

      Hm. Komischerweise bist du der erste, bei dem das Programm nicht funktioniert. Ich tippe einfach mal darauf, dass du den Projects-Ordner nicht korrekt ausgewählt hast.
      Es werden .vb-Dateien berücksichtigt. Designer.vb nicht, auch Assebly.vb nicht. Nur deine eigenen .vb-Klassen. Bitte lese doch einfach die Beschreibung oben.
      Das Projekt ist nicht umsonst unter "Kleinkram" gepostet. Falls es dir zu wenig Komfort bietet, darfst du es gerne selbst machen, mir reicht die Funktion völlig aus.
      Ich hatte das Programm für mich selbst geschrieben - und dachte dann vllt. kann's ja sonst noch jemand aus dem VBP brauchen. Ich wollte damit keine Mega-Supported-Projekt machen, sondern nur das teilen, was ich bisher für mich gemacht habe.
      Wie auch oben geschrieben gibt es in meinen Codes keine Kommentarzeilen, sondern nur Code-Zeilen mit Kommentaren hinten dran.

      Variablen über das Internet senden? [VB.NET] Universal Ticket.dll :thumbup:
      Lasse deine Programme selbstständig lernen! [VB.NET] Brain.dll
      :thumbsup:

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „ErfinderDesRades“ ()

      Bei mir tritt das gleiche Problem auf wie bei suscurtl! Ich wähle mein Projektordner aus, aber ich bekomme immer die Nachricht das 0 Projekte und 0 Codezeilen gefunden wurden :S
      Hab es mit allen aktuellen Projekten probiert .. leider ohne Erfolg :(

      Edit: Es geht doch .. man muss den HauptOrdner wählen .. z.B. den Desktop wie bei mir damit es geht. :thumbsup:
      Ja ... Vielleicht sollte ich das nocheinmal deutlich machen: Man muss den Ordner auswählen, in dem sich die Projektordner der einzelnen Projekte befinden.
      Deshalb auch Projects-Ordner. So wird der ja von Visual Studio genannt und befindet sich meist unter: C:\Users\MrWebber\Documents\Visual Studio 2012\Projects

      Viel Spaß noch ... :)

      Variablen über das Internet senden? [VB.NET] Universal Ticket.dll :thumbup:
      Lasse deine Programme selbstständig lernen! [VB.NET] Brain.dll
      :thumbsup: