Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi "Compilierter Quelltext" = Meine Lines of Code? (https://www.delphipraxis.net/16654-compilierter-quelltext-%3D-meine-lines-code.html)

Neg 21. Feb 2004 01:41


"Compilierter Quelltext" = Meine Lines of Code?
 
Nur mal so des Interesses halber...
Wenn man auf "Projekt erzeugen" klickt und dann auf "Infos über Projekt", dann zeigt er in dem Fenster ja unter anderem an "Compilierter Quelltext: %x Zeilen". Entspricht dieses x tatsächlich den von mir selbst geschriebenen Lines of Code (+ die von Delphi automatisch erzeugten Klassen usw.) oder wird dieser Wert noch irgendwie verfälscht?

dizzy 21. Feb 2004 01:51

Re: "Compilierter Quelltext" = Meine Lines of Code
 
Wenn du noch Units eingebunden hast, die nicht als .dcu vorliegen, aber nicht von dir sind, so werden diese mitgezählt, da sie ebenfalls neu kompiliert werden müssen. Das hab ich z.B. bei den Benutzung der Graphics32-Library sehr deutlich: ich selber hab vielleicht so 400 Zeilen geschrieben, kompiliert werden aber mal locker gute 12.000!

Bei den mitgelieferten Kompos und Units aber dürfte dieser Wert nur deine geschriebenen Zeilen ergeben. Zu beachten: Ein "begin" ist keine eigene Zeile; Anweisungen die eigentlich eine Zeile sind, sich aber über mehrere erstrecken (der Übersichtlichkeit wegen) sind auch nur eine Zeile.

Es hieße auch besser: "Kompilierte Anweisungen", als "Kompilierte Zeilen"....

gruss,
dizzy

Neg 1. Mär 2004 00:38

Re: "Compilierter Quelltext" = Meine Lines of Code
 
Um das Thema noch mal hochzuholen...

Gibt es da irgendeinen Trick, wirklich nur die eigenen LOCs zu zählen?

empanyc 1. Mär 2004 01:56

Re: "Compilierter Quelltext" = Meine Lines of Code
 
Manche Editoren geben dir die Zeilenanzahl aus.
Sonst schreibst halt kurz selber so ein Programm.
Leere Zeilen und Kommentare rauswerfen.
Steuerungszeichen für Zeilenende+NeueZeile zählen, fertig.

;)

gruß
Mario

Neg 1. Mär 2004 02:16

Re: "Compilierter Quelltext" = Meine Lines of Code
 
Die Zeilenzahl nützt mir nicht wirklich was, sonst hätte ich diesen Thread ja nicht aufgemacht :zwinker:. Ich meine, bei dutzenden von Units jeweils die letzte Zeilenzahl notieren und addieren, das macht nicht wirklich Spaß. Außerdem stimmt dieser Wert sowieso vorne und hinten nicht.

Und selbst ein Programm schreiben ist sooo trivial nun auch wieder nicht. Man müsste die LOCs aller selbstgeschriebenen Units finden, wobei das weder einfach nur alle eingebundenen Units sind, sonst würde die Zahl vom Delphi-Compiler ja ausreichen, noch kann man einfach alle files im entsprechenden Ordner durchgehen, weil da ja auch welche liegen können, die gar nicht zum Projekt gehören. Ausserdem sind LOCs (im Sinne von Anweisungszeilen), wie Dizzy ja schon erklärt hat, nicht identisch mit der Zahl der Zeilen ohne Leerzeilen und Kommentare. Im Grunde müsste das Zählprogramm also auch grob die Syntax einer pas-file kennen, um korrekt zählen zu können.

Am einfachsten wäre es halt, wenn man dem Delphi-Compiler, der ja schließlich genau weiß, wieviele Answeisungen er compiliert hat, irgendwie sagen könnte, er soll die fremden Units nicht mitzählen. Gibt's denn da nirgends eine versteckte Option, den Compiler dazu zu überreden?

empanyc 1. Mär 2004 02:25

Re: "Compilierter Quelltext" = Meine Lines of Code
 
Ich bin zwar immernoch der Meinung man kann des mit ein klein wenig
Aufwand schon ziemlich genau hinbringen aber, ich hab mal etwas für
dich bei google gesucht und bin dahin gekommen:

Code Counter

einfach mal auf google.de "pascal count lines" eingeben und den
6. (und 1. sinnvollen) Links anklicken und fertisch. ;)

gruß
mario

Neg 1. Mär 2004 02:38

Re: "Compilierter Quelltext" = Meine Lines of Code
 
Ist ja nett von dir, dass du für mich bei Google suchst.
Aber das hätte ich eigentlich auch selbst machen können. :zwinker:
Eigentlich möchte ich aber auch kein Zusatzprogramm, sondern einfach nur den Compiler die fremden Units nicht mitzählen lassen. Aber vermutlich wird das wohl nicht gehen. :|

Das Programm nützt mir übrigens nicht wirklich viel, weil es nur Shareware ist und die Begrenzungen doch recht happig sind.

empanyc 1. Mär 2004 05:00

Re: "Compilierter Quelltext" = Meine Lines of Code
 
Oh mann. ;)

Es interessiert ja auch niemand wirklich wieviele relevante Codezeilen
man geschrieben hat, oder hast du schonmal Programme gesehen, bei
denen sie dir die genaue Anzahl der benötigten Zeilen angegeben haben? :)
Also ich habe zumindest immer nur gerundete Angaben gesehen.
Und man kann ja immer irgendwo nochmal ne Zeile rausschinden, egal
ob's dadurch übersichtlicher oder schneller wird.
Mich hat bisher nur die Anzahl der Zeilen interessiert, die ich
wirklich geschrieben habe.

Aber egal, du hast eben nach dem Fall gefragt.
Meine Fehlinterpretation.

choose 2. Mär 2004 07:06

Re: "Compilierter Quelltext" = Meine Lines of Code
 
Hallo Neg,

wie dizzy bereits beschrieben hat, werden die Zeilen der Units gezählt,
Zitat:

Zitat von dizzy
die nicht als .dcu vorliegen

Richtiger wäre die negative Formulierung:
Code:
Ausgenommen von der Zählung sind die Units, die ausschließlich als DCU vorliegen
Was Du also machen kannst, ist die nicht zu zählenden Units (PAS) aus dem Suchpfad zu entfernen und nur deren erzeugte DCUs im entsprechenden Ordner zu belassen.

FriFra 2. Mär 2004 09:55

Re: "Compilierter Quelltext" = Meine Lines of Code
 
Zitat:

Zitat von Neg
...einfach nur den Compiler die fremden Units nicht mitzählen lassen. Aber vermutlich wird das wohl nicht gehen. :|

Genau so ist es, es geht nicht. Woran soll denn der Compiler die "fremden" Units erkenen? :gruebel:
Solange eine zu kompilierende *.pas Datei vorliegt könnte die jeder geschrieben haben...


Mal davon abgesehen, weiss ich nicht so recht wozu das gut sein soll? Wirst Du etwa nach Codezeilen bezahlt :shock: ?
Microsoft wurde übrigens von IBM bei der Erstellung von OS2 nach Codezeilen bezahlt... das ist aber laaaange her ;) ...

Neg 2. Mär 2004 20:30

Re: "Compilierter Quelltext" = Meine Lines of Code
 
Zitat:

Genau so ist es, es geht nicht. Woran soll denn der Compiler die "fremden" Units erkenen?
Doch, das kann er erkennen. Stichwort: Projektverwaltung.

Zitat:

Mal davon abgesehen, weiss ich nicht so recht wozu das gut sein soll? Wirst Du etwa nach Codezeilen bezahlt?
Nö, das nicht, aber es würde mich einfach mal interessieren. Ist aber auch egal...

FriFra 3. Mär 2004 08:32

Re: "Compilierter Quelltext" = Meine Lines of Code
 
Zitat:

Zitat von Neg
Zitat:

Genau so ist es, es geht nicht. Woran soll denn der Compiler die "fremden" Units erkenen?
Doch, das kann er erkennen. Stichwort: Projektverwaltung.

Es gibt aber auch eigene Units, die NICHT von der Projektverwaltung erfasst werden.

himitsu 3. Mär 2004 09:49

Re: "Compilierter Quelltext" = Meine Lines of Code
 
Versuch's doch mal so:

- Projekt erzeugen
- die DCU's der Dateien löschen, die von dir sind
- Projekt compilieren (F9 oder Strg+F9)

das dürften dann dem tatsächlichen Wert näher kommen.

Hansa 3. Mär 2004 11:44

Re: "Compilierter Quelltext" = Meine Lines of Code
 
Warum soll das uninteressant sein, wieviele Codezeilen von einem selbst sind ? Als erstes gilt : Fremdcode (Komponenten etc.) gehören nicht in das eigene Projektverzeichnis. Ansonsten wirds schwieriger. Dann läßt MS-DOS grüßen. Am besten den Kommandozeilen-Compiler verwenden :
Code:
dcc32 "MeinProg"
Der hat in diesem Zusammenhang 2 Schalter : -m und -b (hinter Programmname setzen).

-b compiliert alles, wie in der IDE "Projekt erzeugen", also auch fremden Code. Nur den eigenen erhält man, indem die eigenen DCUs gelöscht werden. Geht DEL *.DCU nicht, wegen Fremdkompos usw. dann empfiehlt es sich, ein paar Quelltexte, die in jeder Unit gebraucht werden, zu modifizieren. Also z.B. ein Leerzeichen und dieses wieder entfernen. Der Compiler orientiert sich am Dateidatum. Dann kann man mit
Code:
dcc32 "MeinProg" -m
alle modifiziertenUnits compilieren. Wird jemand nach Zeilen bezahlt, so würde es sich empfehlen, eine Unit einzubinden, die bei jeder anderen in der uses-Liste steht. Dann bräuchte man nur diese einmal zu ändern und alle anderen würden mitcompiliert. Tja, so siehts aus.

Ah, noch was: Jede Zeile wird mitgezählt, auch Kommentare !

dizzy 3. Mär 2004 22:17

Re: "Compilierter Quelltext" = Meine Lines of Code
 
Zitat:

Zitat von Hansa
Ah, noch was: Jede Zeile wird mitgezählt, auch Kommentare !

Sicher das!? Meine Zeilenanzahl in einem "Ein-Unit"-Programm (ohne Fremdkompos und SchnickSchnack) die die Cursorposition, wenn er in der letzten Zeile steht, angibt, ist meist deutlich höher als die, die ich beim kompilieren bekomme. (<--- *brr* was ein Satz...)

Ich bin mir recht sicher, dass die Zeilen gezählt werden, die nach dem kompilieren mit einem blauen Punkt links gekennzeichnet sind! Weil es werden u.a. auch Prozeduren beim kompilieren ganz herausgelassen, wenn sie keinmal aufgerufen werden. Diese bekommen auch keine Pünktchen.


gruss,
dizzy

Hansa 4. Mär 2004 00:00

Re: "Compilierter Quelltext" = Meine Lines of Code
 
Zitat:

Zitat von dizzy
... bin mir recht sicher, dass die Zeilen gezählt werden, die nach dem kompilieren mit einem blauen Punkt links gekennzeichnet sind! Weil es werden u.a. auch Prozeduren beim kompilieren ganz herausgelassen, wenn sie keinmal aufgerufen werden. Diese bekommen auch keine Pünktchen...

Ich sage nur : selber ausprobieren. Außerdem habe ich den Kommandozeilen Compiler angesprochen. Irgendwelche bunte Pünktchen habe ich da noch nicht gesehen. :zwinker: Ein paar Seiten mit Leerzeilen werden genauso mitgezählt wie die Kommentare. 8)

dizzy 4. Mär 2004 17:21

Re: "Compilierter Quelltext" = Meine Lines of Code
 
...wer kompiliert denn schon via Kommandozeile... :gruebel: :mrgreen:

Hansa 4. Mär 2004 18:04

Re: "Compilierter Quelltext" = Meine Lines of Code
 
Wer so was macht ? Leute, die sich nicht von Pünktchen, egal ob blau oder grün ablenken lassen 8) und noch wissen, worauf es ankommt. :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz