Ja das geht:Ist es eigentlich unter Bascom möglich, ein zweites Bascom-Programm ... in das Hauptprogramm einzubinden?
$include "Zweites_Programm.bas"
Gruß Dirk
Hallo,
ich habe mal ne Frage zur Programmgestaltung.
Ist es eigentlich unter Bascom möglich, ein zweites Bascom-Programm, in dem sich ausgelagerte Programmteile befinden, in das Hauptprogramm einzubinden?
Ich meine z.B. einen Programmteil der eine Routine beinhaltet die man in anderen Programmen identisch benötigt wie z.B. einen DCF77 Programmteil der dann Wochentage, Weckerfunktionen, etc. beinhaltet?
Ja das geht:Ist es eigentlich unter Bascom möglich, ein zweites Bascom-Programm ... in das Hauptprogramm einzubinden?
$include "Zweites_Programm.bas"
Gruß Dirk
muss ich variablen dann im hauptprogramm oder im ausgelagertem festlegen?
Hi,
das ist egal. Mach das wie es für Dich am einfachsten ist.
Gruß Kay
muss ich das zweite Programm nicht auch compilieren?
nein, das macht der Compiler für dich. bei einem $include macht der Compiler eigentlich nichts anderes, als den Inhalt der angegebenen Datei einfach an der Stelle im Code einzufügen, dann wird kompiliert.
Aufpassen muss man allerdings mit Funktionsdefinitionen (Deklaration bringt keine Probleme) und Unterprogrammen (Label und Return), wenn die im regulär ablaufendem Programm stehen werden die auch abgearbeitet.
Abhilfe schafft, was ich auch in Includes immer mache, ein einfaches Goto.
Also in etwa so:
(Inhalt Hauptprogramm)(Inhalt myfunctions.bas)Code:$regfile = "..." ... $include "my_functions.bas" Do ... Loop EndmfgCode:Declare Function MyFunction(Byval parameter As Byte) as Byte Dim MyVariable as Byte Config XX ... ' Funktionen überspringen Goto MyFunctions_runprog Function MyFunction(Byval parameter As Byte) as Byte ... End Function Test_procedure: ... Return MyFunctions_runprog:
edit:
Achja man kompiliert dann immer nur die Hauptdatei, die Includes muss man da gar nicht anrühren. Weils mir aber auch immer wieder passiert, dass wenn ich eine Include bearbeitet habe und dann kompilieren will, das ich die Include kompiliere, was natürlich einen Haufen Fehler rauswirft. Das kann man umgehen, wenn man in jeder Include am Anfang "$nocompile" schreibt. Ist aber mehr was ergonomisches denn funktionelles![]()
Nein, das wird mit dem "Hauptprogramm" compiliert.Zitat von elkokiller
Man kann sogar die $nocompile Directive in den File schreiben, dann macht Bascom auch kein versehentliches compile.
Denk nur dran, dass der Inhalt des include Files komplett an die Stelle kommt, wo der $include Befehl steht. D.h., wenn dort eine sub enthalten ist und die wird ganz am Anfang reingebracht, dann läuft dein Programm evtl. direkt da rein.
Gruß
Rolf
na da muss ich noch ein bisschen experimentieren
Lesezeichen