include 2mal mit gleicher datei möglich?
Übersicht

onkelz89Betreff: include 2mal mit gleicher datei möglich? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hi
ich denke der titel beschreibt die frage schon ganz gut aber hier nochmal genauer. also ich habe eine "checkup" datei die mehrmals im spiel (beim laden) aufgerufen werden muss. jetzt sieht mein code wie folgt aus: Code: [AUSKLAPPEN] . . . Include "checkup.bb" . . . Include "checkup.bb" . . . das ganz ist vor der schleife... aber blitz läd nur das erste mal die datei. warum? mfg onkelz |
||
![]() |
dominik |
![]() Antworten mit Zitat ![]() |
---|---|---|
welchen Sinn soll es auch habe die Datei zweimal zu laden. Da is doch nur Code drinn, und keine sich während des Programmablaufs verändernden Informationen. Und wenn der Code in ner Function steht kannst du doch die öfter aufrufen, dazu musst du doch nich die include neu aufrufen.
Aber wahrscheinlich is besser du erklärst dein prob und den Sinn des proggs genauer. PS: Kann auch nicht gehen weil der Code beim starten, auch der aus der Include, als ein kompletter Code compiliert wird. |
||
BB+ 1.41|Sempron 2.8|geforce fx5200|1GB DDR|XP home SP2 / prof. |
onkelz89 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
nich ganz weil ich zeigs genauer:
include datei: Code: [AUSKLAPPEN] ... variabel$=send$ ... und dann der code im hauptprogramm: Code: [AUSKLAPPEN] ... send$="1" Include "checkup.bb" ... send$="2" Include "checkup.bb" ... deswegen... weil sich halt meherer werte ändern |
||
![]() |
Spikespine |
![]() Antworten mit Zitat ![]() |
---|---|---|
kann nicht funktionieren. In der Include datei kanst du wohl kaum auf variablen im Hauptprigramm zugreifen. Warum machst du nicht einfach einmal in der Include-Datei
Code: [AUSKLAPPEN] Global variabel$
und im Hauptprogramm Code: [AUSKLAPPEN] Include "checkup.bb"
variabel$ = send$ grüße, Spikespine ps: abgesehen davon funktionieren zwei include-befehle mit der gleichen datei glaub sowieso nicht. |
||
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax |
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aus einer Include Datei kann man klar auf Globals aus dem Haupt-Script zugreifen!
Der Precompiler kopiert den Code aus der Include-Datei an die Stelle des Include-Befehls, und dann geht erst der Compiler ran! eigentlich müßte das auch 2 mal mit der selbe datei gehen... Nimm halt einfach ne Funktion oda ne Subroutine. |
||
onkelz89 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok ich werds versuchen danke | ||
onkelz89 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
habs mit ner funktion gemacht ... aber jetzt sagt er zu einer datei sie wäre nicht vorhanden...
(kann man in funktionen überhaupt openfile usw. benutzen?) funktion: BlitzBasic: [AUSKLAPPEN]
oben das laden: BlitzBasic: [AUSKLAPPEN]
EDIT: ah ok mein fehler klappt doch (filename$ muss natürlich global sein ![]() |
||
![]() |
x-pressive |
![]() Antworten mit Zitat ![]() |
---|---|---|
Etwas ähnlich hat mich vor kurzem auch mal beschäftigt. Praktisch und unerhört nützlich wäre nämlich z.B. das:
BlitzBasic: [AUSKLAPPEN]
...geht aber leider nicht. ![]() |
||
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL |
onkelz89 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
so gehts hoffe es hilft dir
BlitzBasic: [AUSKLAPPEN]
1.bb BlitzBasic: [AUSKLAPPEN]
2.bb BlitzBasic: [AUSKLAPPEN] Print \"auswahl2\" bei mir hat es funktioniert mfg onkelz |
||
![]() |
PSY |
![]() Antworten mit Zitat ![]() |
---|---|---|
der compiler mag wohl keine einzeiligen if .... then include's ![]() |
||
onkelz89 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich fands auch komisch.. habs erst normal mit if... then gamacht aber da kam ne fehlermeldung ... und so (siehe oben) klappts ohne fehler...
blitz halt ![]() |
||
![]() |
x-pressive |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bei mir klappt das immer noch nicht -da kommt immer die Fehlermeldung "Const can only appear in main program". In meinem include file habe ich die Text Strings als Const deklariert -die erlaubt Blitz aber nur im Hauptprogramm, wenn man Includes mit IF...THEN einbindet. Ansonsten geht das aber. Schon komisch.
Nicht einmal das erlaubt er: BlitzBasic: [AUSKLAPPEN]
Da spuckt er "Expecting include filename" aus ![]() |
||
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL |
![]() |
bruZard |
![]() Antworten mit Zitat ![]() |
---|---|---|
Leute ... wann kapiert Ihr endlich die Funktionsweise eines "Include" ???
Include bindet den angegebenen Quelltext ein bevor irgendetwas kompiliert wird. Das was der Compiler da macht ist derselbe Effekt als würdet Ihr per Copy&Paste den angegebenen Quelltext selbst an der Stelle einfügen an der das Include steht. Mann, Mann, Mann ... das habe ich jetzt bestimmt zum 1.000.000sten Mal erklärt. |
||
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32
User posted image |
![]() |
PSY |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Leute ... wann kapiert Ihr endlich die Funktionsweise eines "Include" ???
Include bindet den angegebenen Quelltext ein bevor irgendetwas kompiliert wird. Das was der Compiler da macht ist derselbe Effekt als würdet Ihr per Copy&Paste den angegebenen Quelltext selbst an der Stelle einfügen an der das Include steht. Mann, Mann, Mann ... das habe ich jetzt bestimmt zum 1.000.000sten Mal erklärt. Hab nie was anderes behauptet.... Mit folgendem Code werden halt sowohl die englisch.bb als auch die deutsch.bb beim compilieren in den Code eingebunden. Kann man einfach nachprüfen, indem man die .exe scannt. Es geht schliesslich darum, den Code übersichtlicher zu machen... ist ja auch Sinn & Zweck von includes Code: [AUSKLAPPEN] Print "testprogramm"
var=input("1=englisch - 2=deutsch") If var=1 Then Include"englisch.bb" EndIf If var=2 Then Include"deutsch.bb" EndIf WaitKey() Code: [AUSKLAPPEN] englisch.bb
Print "auswahl1" Code: [AUSKLAPPEN] deutsch.bb
Print "auswahl2" L8er PSY |
||
![]() |
Hummelpups |
![]() Antworten mit Zitat ![]() |
---|---|---|
warum das funktioniert ist mir schleierhaft.
Der Compiler war ja noch garnicht am werk und könnte so den Quelltext bzw. die if abfrage garnicht auswerten. Grundsätzlich hätte ich nie eine solche Struktur verwendet und die englisch deutsch in ini oder txt oder wasa uch immer gespeiuchert und in ein Array geladen. IMurDOOM |
||
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus |
![]() |
x-pressive |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hast du schon mal einige hundert Texte als Array in deinen Code geladen und versucht, später noch mal durchzublicken, welches Array-Element welchen Text enthält? Nie wieder ![]() Die einzig professionelle Lösung wäre, ein File mit Konstanten zu includen -so müsste man auch nicht alle Sprachtexte DOPPELT laden (oder überhaupt Variablen und Speicher damit verschwenden). Aber das funktioniert dann halt nur mit einem File, so das man eben den Namen der Includedatei vor jedem Kompilieren einer anderen Sprachversion wieder anpassen muß. Kostet Nerven. |
||
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL |
![]() |
Hummelpups |
![]() Antworten mit Zitat ![]() |
---|---|---|
Man könnte genauso gut die Felder per String ansprechen.
print messagepack$("Willkommen") was aber ne menge speicher frisst, sich aber relativ leicht einfügen lässt. German.ini Code: [AUSKLAPPEN] Wilkommen
Willkommen Tschüss! Tschüss! Englisch.ini Code: [AUSKLAPPEN] Willkommen
Welcome Tschüss! Bye! Oder so ähnlich, ist sicherlich auch nicht optimal. Würde man jeweils die erste zeile weg lassen, müsste man die ansprachetexte in dem Array selber füllen, durch diese Zeile fällt es ja dann weg. Code: [AUSKLAPPEN] tmp_var=0
While not eof(datei) tmp_var:+1 messagepack$(tmp_var,0)=readline(datei) messagepack$(tmp_var,1)=readline(datei) wend Ihr wisst was ich meine, warum laber ich mich hier fusselig? ^^ Aber halt enormer speicherverbrauch würde ich sagen, halt gut doppelt so viel. IMurDOOM |
||
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus |
![]() |
x-pressive |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich kann nur davon abraten, Arrays für viele Texte zu benutzen -es ist quasi unmöglich einen Überblick zu behalten, welches Array-Element welchen Text enthält -und ständiges Nachsehen, verlangsamt den Workflow brutal.
Und es ist extrem fehleranfällig. Vertipp dich mal bei einem Array-Index, das produziert die seltsamsten Fehler und solche Fehlersuchen können ewig dauern. In dem man Konstanten benutzt, spart man Speicher, erhöht die Arbeitsgeschwindigkeit und sieht auch im Quelltext sofort, welcher Text wo benutzt wird, wenn man seinen Konstanten aussagekräftige Namen gibt wie TXT_ENTERNAME$, TXT_GAMEPAUSED$ etc.. Bei Arrays wird das in längeren Quellcodes zur absolut unübersichtlichen Geduldsprobe. |
||
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL |
f L i P |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
um sich den rest sparen zu können und auf den eigentlichen titel zu kommen. wie bruzard schon sagte pastet der precompiler den code innerhalb eines includefiles an der jeweiligen stelle einfach vorm compilieren ein
lösung: man erstellt ne funktion in der included wird, diese kann man schließlich mehrfach aufrufen include-file.bb: Code: [AUSKLAPPEN] Print("included") main-file.bb: Code: [AUSKLAPPEN] Function includeFunc() Include "include-file.bb" End Function includeFunc includeFunc |
||
mir egal wer dein Vater ist- solange ich hier am angeln bin wird nicht über's wasser gelaufen! |
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
hm, mit Goto gehts auch! | ||
between angels and insects |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group