AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

.inc VS .pas

Ein Thema von TopDogg · begonnen am 25. Sep 2003 · letzter Beitrag vom 26. Sep 2003
Antwort Antwort
TopDogg

Registriert seit: 28. Jun 2002
51 Beiträge
 
#1

.inc VS .pas

  Alt 25. Sep 2003, 22:39
h! alle.
nur mal so ne frage.
wo is der unterschied zwischen dem einbinden einer .inc und einer .pas?

.inc
Delphi-Quellcode:
program
  Test;

uses
  Windows,
  Messages;

{$INCLUDE Test.inc}

...
und hier .pas

Delphi-Quellcode:
program
  Test;
 
uses
  Windows,
  Messages,
  Test{.pas};

...
ich weiss das ne .pas anders aufgebaut ist, aber is das der einzige unterschied?

thnx
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: .inc VS .pas

  Alt 25. Sep 2003, 22:51
Angeblich erzeugt eine pas-Datei einen Overhead oder so. Assarbad kann dir da genaueres sagen. Deswegen nutze ich auch wenn es geht und ich nur Code auslagern will Include-Dateien. Soll es eigenständiger Code sein, also eien Klasse oder so, dann nehme ich pas-Dateien.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: .inc VS .pas

  Alt 25. Sep 2003, 22:52
Die Dateiendung spielt keine Rolle.
Der Unterschied ist der:

In der uses-Klausel werden ganze Units eingebunden, die mindestens vollständige interface- und implementation-Abschnitte haben.

Die Compilerdirektive $INCLUDE fügt den Inhalt einer Datei so in den Quelltext ein, als wäre er an diese Stelle geschrieben worden, allerdings mit der Einschränkung, dass dies nicht innerhalb eines Anweisungsblocks geschehen kann.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#4

Re: .inc VS .pas

  Alt 25. Sep 2003, 22:54
Nein, es gibt noch mehr Unterschiede.
Eine *.INC Datei, sprich Include, wird wie es der name verät als Quelltext in die entsprechende Pascal Source "hineinkopiert". Das bedeutet auch das ein Include in mehreren Pascal Sourcen eben dann auch mehrmals eingeklinkt wird und somit der evtl. Code in der Include mehrmals in der EXE vorkommt. Man sollte in der Include nur ordinale Konstanten oder globale Kompilerschalter einbauen.

Gruß Hagen
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: .inc VS .pas

  Alt 25. Sep 2003, 23:04
Aber nur, wenn ich ihn mehrmal "inklude", oder?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Brüggendiek

Registriert seit: 13. Dez 2002
Ort: Dortmund
275 Beiträge
 
Delphi 5 Standard
 
#6

Re: .inc VS .pas

  Alt 25. Sep 2003, 23:49
Hallo!

Includes haben gegenüber Units noch einen Nachteil: sie müssen beim Compilieren des Sources immer mit compiliert werden.
Units werden nur dann neu compiliert, wenn es nötig ist.

Bei einer geänderten Include-Datei, die in mehrenen Units eines Projekts vorkommen, weiß ich nicht, was da passiert. Es kann sein, daß Delphi die Änderung erkennt und die ganze Unit übersetzt, kann aber auch anders sein.

Wenn man in mehreren Units Compilerschalter verstellen will oder Ähnliches, sollte man das über "Projekt", "Optionen", "Verzeichnisse/Bedingungen", "Bedingungen" in Verbindung mit bedingter Compilierung erledigen. Nach einer Änderung einfach mit "Projekt", "Erzeugen" alles durchcompilieren und gut is.

Includes stammen aus der Turbo-Pascal-Zeit (bis Version 6). Da mußten die Entwicklungsumgebung, der Source, das ausführbare Programm und die verarbeiteten Daten in den Speicher reinpassen, den MS-DOS und die Treiber von den 640KByte übriggelassen hatten.
Die .INC-Dateien waren dann bei dem Speicherverbrauch nicht relevant. Also alles, was fertig ist, in die .INC und damit wieder Platz schaffen.
Bei Version 7 gab es einen Compiler, der alles in den Erweiterungsspeicher packte (jenseits von 1MByte) und sich nur ca. 10KByte Speicher genehmigte. Da war es dann wieder möglich, mehrere Dateien offenzuhaben und trotzdem zu testen.

Fazit: Für .INC finde ich heute keine sinnvolle Anzuwendung mehr.

Gruß

Dietmar Brüggendiek
Dietmar Brüggendiek
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#7

Re: .inc VS .pas

  Alt 26. Sep 2003, 00:14
Zitat:
Includes stammen aus der Turbo-Pascal-Zeit (bis Version 6). Da mußten die Entwicklungsumgebung, der Source, das ausführbare Programm und die verarbeiteten Daten in den Speicher reinpassen, den MS-DOS und die Treiber von den 640KByte übriggelassen hatten.
Die .INC-Dateien waren dann bei dem Speicherverbrauch nicht relevant. Also alles, was fertig ist, in die .INC und damit wieder Platz schaffen.
Bei Version 7 gab es einen Compiler, der alles in den Erweiterungsspeicher packte (jenseits von 1MByte) und sich nur ca. 10KByte Speicher genehmigte. Da war es dann wieder möglich, mehrere Dateien offenzuhaben und trotzdem zu testen.

Fazit: Für .INC finde ich heute keine sinnvolle Anzuwendung mehr.
Diesen Aussagen kann ich so nicht zustimmen. Includes erfüllen eine bestimmte Aufgabe, nämlich mehrfachverwendeten Source auch mehrfach verwendbar zu machen ohne diesen jedesmal in den Source reinkopieren zu müssen. Es gibt auch heute noch solche sinnvollen Aufgaben für Includes.

Dies hat rein garnichts mit Speicherproblemen oder historischen Begebenheiten zu tun, es erscheint nur veraltet weil das Wissen um Includes langsam ausstirbt. Die Behauptung das dadurch Speicher gespart wird ist sogar unlogisch, denn die Include wird in den Pascal Source beim compilieren eingefügt so als wäre es Source. Somit erhöht sich der Speicherverbrauch der Sourcen bei Includes, und erst recht bei Mehrfachverwendung der gleichen Includes. Ebenfalls leidet die Compilergeschwindigkeit darunter, denn nun wird der gleiche Source aus einer Include jedesmal erneut compiliert. D.h. wenn 5 Pascal Source die gleiche Include benutzen so muß der Compiler diesen included Source auch 5 mal separat compilieren.

Es gab aber bis BP4 bestimmte "Speicherbegrenzungen" die aber nur darin begründet waren das der IDE Texteditor nur 64Kb große Quelltexte bearbeiten konnte. Bei größeren Datenmengen, z.B. hardcoded Datentabellen, wurden diese dann in Includes ausgelagert damit der Sourceeditor arbeiten konnte.


Gruß Hagen
  Mit Zitat antworten Zitat
TopDogg

Registriert seit: 28. Jun 2002
51 Beiträge
 
#8

Re: .inc VS .pas

  Alt 26. Sep 2003, 00:22
Danke fuer die antworten.
Ich wollte das nur mal so wiessen.
Bleiben tu ich dennoch bei den .INC da es irgendwie "sauberer" im code fuer mich aussieht.
Grosse projeket habe ich e nicht.
Nur einfache mit 5-6 funktionen, und da gefaellt mir die methode mit .INC besser. Ueber geschmack kann man streiten.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz