Befehl "Include", Mehrfachverwendung net möglich!
Übersicht BlitzBasic Allgemein
MansoorBetreff: Befehl "Include", Mehrfachverwendung net möglich! |
So, Aug 01, 2004 16:18 Antworten mit Zitat |
|
---|---|---|
Hi Leutz,
Also, ich habe folgendes Problem mit dem befehl "Include"! Wieso kann man den Befehl "Include" nicht mehrfach einsetzten, also die Datei? Beispiel: Es sind 4 Daten vorhanden: 1.) data\Fonts\Fonts_1.bb 2.) data\Mainmenu.bb 3.) data\A\Menu_1.bb 4.) data\B\Menu_2.bb So, das Programm startet mit Mainmenu.bb Code: [AUSKLAPPEN] ; Code von Mainmenu.bb ........... ;#---[Fonts werden geladen! Include "data\Fonts\Fonts_1.bb" ...... ;Fonts werden verarbeitet SetFont Font_Arial_1 ........ ; If Bedingungen etc... If ..... Then Include "data\A\Menu_1.bb" ....... Bis hier ist alles ok! Aber nun kommts! Code: [AUSKLAPPEN] ; Code vom Menü_1.bb ....... ;#---[Fonts werden geladen! Include "data\Fonts\Fonts_1.bb" ..... ;Fonts werden verarbeitet SetFont Font_Arial_1 ...... ; If Bedingungen etc... If ..... Then Include "data\mainmenu.bb" If ..... Then Include "data\B\Menu_2.bb" Verarbeitung von mainmenu.bb & Fonts_1.bb ist net möglich! Aber die verarbeitung von Menu_2.bb ist möglich! So, um das Problem zu beheben braucht man andere Benennung für die Dateien mainmenu.bb & Fonts.bb ! Dann müsste der Code soaussehen von der Datei Menu_1.bb Code: [AUSKLAPPEN] ; Code von Menu_1.bb verbessert ....... ;#---[Fonts werden geladen! Include "data\Fonts\Fonts_2.bb" ..... ;Fonts werden verarbeitet SetFont Font_Arial_1 ...... ; If Bedingungen etc... If ..... Then Include "data\mainmenu_2.bb" If ..... Then Include "data\B\Menu_2.bb" So nun wie ihr seht ist der Code Inhalt der gleiche geblieben, nur der Dateiname wurde geändert und alles functioniert! Nur Include lässt dieselbe datei nicht benutzten! Das ist doch kacke, so bleibt der Inhalt des Codes aber man kommt bei solchen vielen Dateien (130.000 Zeilen Code) durcheinander! Dann müsste man per Varibilen den Code so strückturieren, dass man dinge nur einer Stelle zu verändern braucht! Ich habe mich mit dem Befehl "Include" 1 Studen beschäftigt und rumprobiert ob es doch kein Fehler bei meinen Code and anderen stellen liegt, aber zwecklos ! Die Mehrfacheverwendung von "Include" ist mit der selben Dateinamen zwecklos! |
||
User posted image |
simi |
So, Aug 01, 2004 16:28 Antworten mit Zitat |
|
---|---|---|
Ich denke dir ist die Funcktion von include nicht ganz klar.
Eigentlich Fügt man mit dem Include-Befehl eine Datei in die Maindatei. Diese Datei enthält entweder Functionen oder sonstige sachen, aber nicht ein code: Code: [AUSKLAPPEN] ;Includierte Datei Function bla(x$) Print x end Function Code: [AUSKLAPPEN] ;Haupdatei Include "Datei.bb" bla("Diese Function ist in einer externen Datei!") wautkey() end Das sind jetzt zwei Dateien, aber Blitz sieht es eigentlich so: Code: [AUSKLAPPEN] Function bla(x$) Print x end Function bla("Diese Function ist in einer externen Datei!") wautkey() end Ich hoffe du kommst nun draus. cu simi |
||
Vertex |
So, Aug 01, 2004 16:29 Antworten mit Zitat |
|
---|---|---|
Meister, Include und If haben soviel Gemeinsam wie der Papst und Kelly Trump. Entweder du inkludierst eine Datei oder lässt es, zur Laufzeit erscheint der Blitzcompiler nicht von Geisterhand und kompiliert dann deine Datei.
mfg olli |
||
vertex.dreamfall.at | GitHub |
sidolin |
So, Aug 01, 2004 16:32 Antworten mit Zitat |
|
---|---|---|
Zitat: Die Mehrfacheverwendung von "Include" mit dem selben Dateinamen zwecklos
ist ja auch logisch. wenn er eine datei einmal includet hat kann/muß er sie nicht noch mal includen. warum auch. |
||
..:: P4 1500 MHZ : 512 MB RDRAM : GFORCE 4 ::.. |
Mansoor |
So, Aug 01, 2004 16:44 Antworten mit Zitat |
|
---|---|---|
@ simi, Include ist dazu da um den Code aufzuteilen und übersichtlicher zu machen! Nur, das Mehrfache verwenden von Include ist net möglich!
@ sidolin, um z.b.: seine Mühe zusparen! Wäre sowas möglich hätten wir mehr Übersicht! @ All, ich will echt net Gusub oder Goto verwenden ! Da ich oft höre das diese Befehle böse sind! Edit: Zitat: Meister, Include und If haben soviel Gemeinsam wie der Papst und Kelly Trump. Entweder du inkludierst eine Datei oder lässt es, zur Laufzeit erscheint der Blitzcompiler nicht von Geisterhand und kompiliert dann deine Datei. mfg olli Naja, aber das mit dem If & Include functioniert, nur der Befehl Include macht ärger! PS: Was ist Kelly Tumb? |
||
User posted image |
graythread |
So, Aug 01, 2004 16:59 Antworten mit Zitat |
|
---|---|---|
Trump: http://tvshots.free.fr/images/trump/kelly01.jpg
Na ja, Vertex, ich wage mal dir (ansatzweise) zu wiedersprechen: Der Compiler darf doch ruhig immer includen, der Code wird zur Laufzeit ja nur ausgeführt, wenn die Bedinung zutrifft, ob er jetzt schon includet ist oder nicht gibt sich dann doch nix oder? cu (eine Vernichtende Antwort erwachtet) graythread €dit: Oder meintest du, dass er gar nicht includet, wenn ein Include im If Satz steht? |
||
Mansoor |
So, Aug 01, 2004 17:03 Antworten mit Zitat |
|
---|---|---|
graythread hat Folgendes geschrieben: Trump: http://tvshots.free.fr/images/trump/kelly01.jpg
Na ja, Vertex, ich wage mal dir (ansatzweise) zu wiedersprechen: Der Compiler darf doch ruhig immer includen, der Code wird zur Laufzeit ja nur ausgeführt, wenn die Bedinung zutrifft, ob er jetzt schon includet ist oder nicht gibt sich dann doch nix oder? cu (eine Vernichtende Antwort erwachtet) graythread Jo, der Befehl "Include" ist nur da um uns beim Coden zuhelfen und nachher wird ja daraus eine exe! Und jetzt frage ich mich auch, wieso man das net mehrfach benutzten kann mit dem selben Dateinamen? Ist irgendwie beknakt! Edit: Doch er includet wenn ein IF Satz ist, nur wenn der selbe Dateiname der schon Includet wurde, kann net nochmal includet werden! |
||
User posted image |
x.Force |
So, Aug 01, 2004 17:37 Antworten mit Zitat |
|
---|---|---|
anscheinend verstehst du den Sinn nicht richtig | ||
AMD Athlon XP 2000+ | 1024mb DDR-Ram | Asus Radeon 9600XT | BENQ FP757 17°Zoll TFT Was kümmert mich mein Geschwätz von gestern? (Konrad Adenauer) -.- |
Hubsi |
So, Aug 01, 2004 17:42 Antworten mit Zitat |
|
---|---|---|
Theoretisch könnte ja in der Datei eine Function oder eine Sprungmarke sein. Diese wäre dann doppelt vorhanden und wir hätten ein Problem. Ich vermute darum ist es nicht möglich. Das wird zwar auch so noch geprüft, aber irgendwas wird er sich dabei schon gedacht haben | ||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Vertex |
So, Aug 01, 2004 18:07 Antworten mit Zitat |
|
---|---|---|
graythread: Ein Compiler ist kein Interpreter. Und auch wenn, die meisten Interpreter übersetzen nicht den Originalcode zu Laufzeit, sondern dieser wird auch aus Geschwindigkeitsgründen vor dem exe Erstellen durchgeparst und für den Interpreter vorgekaut.
So Leute, was geht ist folgendes: demoversion.bb: Code: [AUSKLAPPEN] Print "Demoversion"
vollversion: Code: [AUSKLAPPEN] Print "Vollversion"
test.bb: Code: [AUSKLAPPEN] Const DEMOVERSION = True
If DEMOVERSION Then Include "demoversion.bb" Else Include "vollversion.bb" EndIf WaitKey Der Compiler erkennt automatisch das hier eine Konstante statts einer Variable eingesetzt wurde. mfg olli |
||
vertex.dreamfall.at | GitHub |
Hubsi |
So, Aug 01, 2004 18:25 Antworten mit Zitat |
|
---|---|---|
Er includet beide Dateien, führt aber durch das If-Konstrukt bedingt nur eine Hälfte aus. In der Exe würde das so aussehen:Code: [AUSKLAPPEN] If 1
Print "Vollversion" Else Print "Demo" EndIf |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Mansoor |
So, Aug 01, 2004 18:29 Antworten mit Zitat |
|
---|---|---|
Das Problem ist ja, das nicht 2 mal Include ausgeführt werden kann, wenn die Dateinamen gleich sind! Wie ist es in C++? Ist das dort möglich, denn langsam fange ich damit an! | ||
User posted image |
Bfox |
So, Aug 01, 2004 19:01 Antworten mit Zitat |
|
---|---|---|
Ich glaube nicht, dass das Möglich ist!
Der Sinn von Include ist das du andere Dateien einbindest! Um dann die Funktionen der Datei zu nutzen! Und nicht dass du den Code einfach einbindest und der dann ausgeführt wird! Einmal geht das aber eigentlich ist es nur dazu da dass man von der Datei die Funktionen benutzen kann, oder die Variablen und Konstanten! Ich hoffe dass du das jetzt verstanden hast! |
||
Glauben ist Mangel an Wissen! |
Mansoor |
So, Aug 01, 2004 19:08 Antworten mit Zitat |
|
---|---|---|
Bfox hat Folgendes geschrieben: Ich glaube nicht, dass das Möglich ist!
Der Sinn von Include ist das du andere Dateien einbindest! Um dann die Funktionen der Datei zu nutzen! Und nicht dass du den Code einfach einbindest und der dann ausgeführt wird! Einmal geht das aber eigentlich ist es nur dazu da dass man von der Datei die Funktionen benutzen kann, oder die Variablen und Konstanten! Ich hoffe dass du das jetzt verstanden hast! Wie oft muss ich noch sagen! Der Sinn von Include ist ja den Code aufzuteilen und es übersichtlicher zuhalten! Wenn du z.b.: ein Formular gecodet hast und es in deinem Code an 200.000 stellen verwenden willst, dann wirst du ja den Formular net neu schreiben oder die Dateiendung für jedes einfügen verändern! Du würdest sichlerlich dieselbe Datei Includen und würdest sehr viel Zeit, Aufwand, Mühe, Stress etc...sparen! |
||
User posted image |
Markus2 |
So, Aug 01, 2004 19:17 Antworten mit Zitat |
|
---|---|---|
Mansoor hat Folgendes geschrieben: Das Problem ist ja, das nicht 2 mal Include ausgeführt werden kann, wenn die Dateinamen gleich sind! Wie ist es in C++? Ist das dort möglich, denn langsam fange ich damit an!
Überlege doch mal was passiert wenn du zweimal die gleiche Datei includest , du hättest alle Funktionen doppelt , also nicht gerade logisch , oder ? Also mit C anzufangen rate ich dir ab wenn du das hier in BB noch nicht mal kapierst . Wenn du keine Includes hättest mußte also einen Quelltext haben der funktioniert . Wenn dem so ist kannst du den aufteilen in einzelne Dateien . |
||
Jolinah |
So, Aug 01, 2004 19:20 Antworten mit Zitat |
|
---|---|---|
Mit dem Sinn von Include hast du ja recht.
Aber es ist nicht für diese Weise von Code Aufteilung gedacht. Wenn du willst das sich etwas immer wieder wiederholen lässt dann packst du es eben in eine Funktion, includest die Datei ein einziges mal und führst diese Funktion aus jedesmal wenn du das Formular brauchst. So, nun ist dein Quellcode sauber aufgeteilt. Include Dateien dienen lediglich zur Auslagerung von Code in mehrere Dateien. Zweck davon ist das wenn du nen riesen Projekt hast nicht im ganzen Projekt rumwühlen musst wenn du mal nen Fehler hast. Sondern du weisst der Fehler liegt bei der Input Routine, aha "Input.bb". Oder nein er liegt in der GUI -> "GUI.bb" usw.. So bleibt die Datei mit der Hauptschleife des Programms übersichtlicher und es gibt kein Chaos. Sinnvollerweise lagert man immer Code eines gewissen Teilgebiets aus. Es würde also keinen Sinn machen eine Funktion die den Spieler bewegt und eine Funktion die irgendwelche Einträge in einer Datenbank auf einem externen Server ändert zusammen in eine Include Datei zu schreiben. Klar kann man das, es spricht nichts dagegen. Aber Include Dateien dienen auch der Gruppierung von Code, so das alle Teilgebiete zusammen unter einem eigenen Dach sind. Für das was du willst sind ja eigentlich Funktionen auch entwickelt worden, wieso lagerst du es nicht in Funktionen aus? |
||
- Zuletzt bearbeitet von Jolinah am So, Aug 01, 2004 19:26, insgesamt 2-mal bearbeitet
Ensign Joe |
So, Aug 01, 2004 19:23 Antworten mit Zitat |
|
---|---|---|
ey, bisch du bleed oder wat?
also: Das bringt nix include1.bb hat Folgendes geschrieben: function hallo()
print "Hallo" end function main.bb hat Folgendes geschrieben: include "include1.bb"
Das ist doch schwachsinnig!
hallo() print "He, net ausführen!!!" include "include1.bb" hallo weil du braust das teil dann ja nemme includen weil Hallo() aj schon vorhanden ist |
||
Ich habe jetzt eine Pommesbude aufgemacht am Münchner Hauptbahnhof.
Und da ich Herbert Görgens heiße, heißt diese Pommesbude Herbert's Pommesbude |
Mansoor |
So, Aug 01, 2004 19:34 Antworten mit Zitat |
|
---|---|---|
Also, das große Problem ist, das ich ohne "Goto, Gusub" im Code hin und her springen will!
@ Kann man Function in Function verwenden? Muss mal ausprobieren, ich glaube net! Aber man kann in Functions nicht raus springen, leider net möglich ! |
||
User posted image |
Hubsi |
So, Aug 01, 2004 19:40 Antworten mit Zitat |
|
---|---|---|
Function in Function geht ohne weiteres. Rausspringen geht mit Return? | ||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Markus2 |
So, Aug 01, 2004 19:43 Antworten mit Zitat |
|
---|---|---|
Ohne Gosub und Goto ?
Dafür sind doch Funk. da !??? Du kannst doch in ner Funk. wieder ne Funk. aufrufen , wo ist das Problem ? Zum raus springen gibt es Return was du genau so bei GoSub benutzt . Und bei Return kann man noch nen Rückgabe wert dran hängen fallst du es nicht weist . |
||
Übersicht BlitzBasic Allgemein
Powered by phpBB © 2001 - 2006, phpBB Group