Archiv verlassen und diese Seite im Standarddesign anzeigen : Programmteile auslagern
elkokiller
22.02.2009, 11:10
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?
Ist es eigentlich unter Bascom möglich, ein zweites Bascom-Programm ... in das Hauptprogramm einzubinden?
Ja das geht:
$include "Zweites_Programm.bas"
Gruß Dirk
elkokiller
22.02.2009, 13:02
muss ich variablen dann im hauptprogramm oder im ausgelagertem festlegen?
BlaueLed
22.02.2009, 13:19
Hi,
das ist egal. Mach das wie es für Dich am einfachsten ist.
Gruß Kay
elkokiller
22.02.2009, 14:04
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)
$regfile = "..."
...
$include "my_functions.bas"
Do
...
Loop
End
(Inhalt myfunctions.bas)
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:
mfg
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 :)
muss ich das zweite Programm nicht auch compilieren?
Nein, das wird mit dem "Hauptprogramm" compiliert.
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
elkokiller
22.02.2009, 16:42
na da muss ich noch ein bisschen experimentieren
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.