Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Compilerproblem!

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1048
Wohnort: Niederbayern

BeitragVerfasst am: 16.12.2006, 16:12    Titel: Compilerproblem! Antworten mit Zitat

Hallo!

Mein Problem:

Ein programmiertes Programm das als .EXE Datei nur mit BRUN45.EXE funktioniert!

Lösung: ???


Daten/Fakten:
Ich verwende eine zweite .BAS Datei die eine SUB enthält und von der ersten .BAS Datei aufgerufen wird.

Ich hoffe ihr könnt mir helfen!

Mit freundlichen Grüßen
ALWIM
_________________
SHELL SHUTDOWN -s -t 05
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 16.12.2006, 17:09    Titel: Antworten mit Zitat

Hi. lächeln
Wenn du den Source hast:
Sicherstellen, dass in der IDE im Menü "Optionen" "Vollständiges Menü" aktiviert ist. lächeln
Dann auf "Ausführen" und "EXE Datei erstellen". Dort den Dateinamen eingeben und anschließend bei "Erzeugen" die Option "Selbstständige EXE-Datei" aktivieren.

Fertig. lächeln
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1048
Wohnort: Niederbayern

BeitragVerfasst am: 16.12.2006, 17:19    Titel: Antworten mit Zitat

Hallo!

Diese Option ist angewählt/aktiviert aber ich brauche trotzdem BRUN45.EXE!

Mit freundlichen Grüßen
ALWIM
_________________
SHELL SHUTDOWN -s -t 05
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 16.12.2006, 17:37    Titel: Antworten mit Zitat

du bruachst diese datei wirklich NUR, wenn du "exe-datei benötigt BRUN45" aktiviert lässt. wenn du auf "selbstsätndige exe-datei" klickst, passiert es nicht mehr!
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1048
Wohnort: Niederbayern

BeitragVerfasst am: 16.12.2006, 18:00    Titel: Antworten mit Zitat

Hallo!

Ich habe ja geschrieben dass mein Programm BRUN45.EXE benötigt.

Und ich will gerne wissen warum?

Besser wäre es wenn ich auf BRUN45.EXE verzichten kann.

Wenn ich ohne BRUN45.EXE kompiliere kommt eine Fehlermeldung in meinem Programm.

Mit freundlichen Grüßen
ALWIM
_________________
SHELL SHUTDOWN -s -t 05
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 16.12.2006, 18:04    Titel: Antworten mit Zitat

Hör mal bitte...äh...lies dir bitte die Beiträge durch. zwinkern
BRUN45 is' prinzipiell ein "Interpreter" und hat folgenden Hintergrund:
1989 gab es noch nicht Plattenplatz in Massen und nicht jeder konnte sich immer einen aktuellen Computer leisten. zwinkern
Und wenn man viele QB-Anwendungen hatte (bzw. mehr als eine grinsen), konnte man dadurch, dass es große Funktionen, die in der BRUN45 untergebracht sind, von dem Programm aufgerufen wurden und nicht integriert waren, Speicherplatz sparen. lächeln

UND: Jetzt wär's mal ganz nützlich zu wissen, WELCHE Fehlermeldung dann kommt. zwinkern
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 16.12.2006, 18:04    Titel: Antworten mit Zitat

das ist der unterschied:
-programme, die mit brun45 auasgweführt werden, sind keine selbstsätndige exe-dateien. sie funkitioniern ungefähr wie in der IDE!
-porgramme, die ohne brun45 kompiliert werden, sind echte exe-dateien. sie verhalten sich dementsprechend auch anders und dürften auch schneller sein.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1048
Wohnort: Niederbayern

BeitragVerfasst am: 16.12.2006, 18:14    Titel: Antworten mit Zitat

Hallo!

16-Bit-MS-DOS-Teilsystem

C:\Dokume~1\Alex\Desktop\STOP.EXE
Die NTVDM-CPU hat einen ungültigen Befehl entdeckt.
Cs:1da4 IP:c21e OP:ff ff 00 00 00 Klicke sie auf "Schließen", um die Anwendung zu beenden.

Diese Fehlermeldung kommt nur wenn ich auf die SUB der zweiten .BAS Datei zugreife!!!

Mit freundlichen Grüßen
ALWIM
_________________
SHELL SHUTDOWN -s -t 05
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 16.12.2006, 18:16    Titel: Antworten mit Zitat

lädst du die zwei dateien über eine MAK-Datei?..... peinlich
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 16.12.2006, 18:16    Titel: Antworten mit Zitat

Mal 'ne Frage: bindest du die Datei mittles CHAIN/RUN ein?
Wie viele EXEn werden erstellt?
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1048
Wohnort: Niederbayern

BeitragVerfasst am: 16.12.2006, 18:23    Titel: Antworten mit Zitat

Hallo!


Ich rufe ein .BAS auf und gleichzeitig wird das zweite .BAS geladen!

Eine EXE Datei wird erstellt.

Ich verwende die Maussteuerung. MAUSMODL.BAS

Also hier meine geladenen .BAS Dateien STOP.BAS/ STOP2.BAS/ MAUSMODL.BAS

Dann erstelle ich eine nur EINE .EXE Datei!!!

Mit BRUN45.EXE funktioniert das Programm ohne Probleme ohne BRUN45.EXE kriege ich diese (steht oben) Fehlermeldung!!!

Kein CHAIN/ SHELL/ RUN

Mit freundlichen Grüßen
ALWIM
_________________
SHELL SHUTDOWN -s -t 05
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 16.12.2006, 18:24    Titel: Antworten mit Zitat

tja, dann werden die anderen programme einfach nicht eingebunden.
nochmal: existiert eine datei namens STOP.MAK?
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1048
Wohnort: Niederbayern

BeitragVerfasst am: 16.12.2006, 18:29    Titel: Antworten mit Zitat

Hallo!

Ja diese .MAK existiert!

edit:

Kann mir jemand helfen?

Ich möchte gern dass mein Programm ohne BRUN45.EXE funktioniert!

Mit freundlichen Grüßen
ALWIM
_________________
SHELL SHUTDOWN -s -t 05
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Flo
aka kleiner_hacker


Anmeldungsdatum: 23.06.2006
Beiträge: 1210

BeitragVerfasst am: 17.12.2006, 12:43    Titel: Antworten mit Zitat

also:
ich habs grad ausprobiert was ich glaub, was du gemacht hast
code von TEST1.bas:
Code:

print "Hallo"
chain "Test2.bas"

code von test2.bas:
Code:

Print "CIAO"
end


wenn ich test1 im interpreter ausführ, gehts
wenn ichs kompiliere (test1) und die exe ausführ, schmiert mir die DOSBOX ab...

vllt machstes so (wenn nur subs bzw, functions drin sind)
die bas-datei mit den subs: (wenns mehrere dateien sind, zusammenführen!)
vollständiges menü unter optionben muss aktiviert sein!
ausführen--> bibliothek erstellen (erstellen...)

das hauptprogramm mit QB /L [die Qlb-datei].QLB aufrufen...
_________________
MFG
Flo

Satoru Iwata: Wer Spaß am Spielen hat, fragt nicht nach Grafik.

zum korrekten Verstaendnis meiner Beitraege ist die regelmaessige Wartung des Ironiedetektors unerlaesslich.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 17.12.2006, 13:33    Titel: Antworten mit Zitat

ALWIM hat Folgendes geschrieben:
Kann mir jemand helfen?

Ich möchte gern dass mein Programm ohne BRUN45.EXE funktioniert!
..dann poste es doch bitte..
Raten bringt hier keine Lösung.
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1048
Wohnort: Niederbayern

BeitragVerfasst am: 17.12.2006, 18:13    Titel: Antworten mit Zitat

Hallo!

Hier mein Quellcode!!

Code:
DECLARE SUB FELD ()
DECLARE SUB LADEN ()
DECLARE SUB SEE ()
DECLARE SUB INFO ()
DECLARE SUB PLAYER ()
DECLARE SUB RUNDEN ()
DECLARE SUB FELT (X!, Y!, XX!, YY!, FARBEN!)
DECLARE SUB CPRINT (FFTEXT$, FFHEIGHT, FFWIDTH, FFCOLOR1, FFCOLOR2, FFCOLOR3)
DECLARE SUB TEILNEHMER ()
DECLARE SUB INGET (ANZAHLE!, STELLEN!, ZEILEN!, X$)
DECLARE SUB SPIELFELD ()
DECLARE SUB getmaus ()
DECLARE SUB maus (OnOff%)
DECLARE SUB MausSet (X%, Y%)
DECLARE SUB Poken ()
COMMON SHARED mausk%, mausx%, mausy%
Poken
MausSet 280, 150
SCREEN 12: DEFINT Z
WIDTH 80, 60
CLS
DIM SHARED z(380)
DIM SHARED SPIELER$(1 TO 30)
DIM SHARED GESAMTSPIELER
DIM SHARED RUNDE
DIM SHARED WO
DIM SHARED S1
DIM SHARED S2
DIM SHARED S3
DIM SHARED S4
DIM SHARED S5
DIM SHARED S6
DIM SHARED S7
DIM SHARED S8
DIM SHARED S9
DIM SHARED S10
DIM SHARED S11
DIM SHARED S12
DIM SHARED S13
DIM SHARED S14
DIM SHARED S15
DIM SHARED ROUND
DIM SHARED GGG
DIM SHARED WAS


DEMO = 1
ROUND = 1
Q = 30
SPIELER$(Q) = "SPIELFREI"
YX = 30
XY = 53
A$ = INKEY$
SPIELFELD
RUNDEN

' Ist noch einiges zu Testzwecken drin!!! Teilweise auch REM Befehle!!!


DO

REM LOCATE 1, 1: PRINT "X: "; mausx%; " Y: "; mausy%; " K: "; mausk%
maus 1
getmaus
A$ = INKEY$
SELECT CASE A$
CASE CHR$(43): IF ROUND < RUNDE THEN ROUND = ROUND + 1: CPRINT "RUNDE: " + LTRIM$(STR$(ROUND)) + " ", 6, 38, 15, 13, 5
CASE CHR$(45): IF ROUND > 1 THEN ROUND = ROUND - 1: CPRINT "RUNDE: " + LTRIM$(STR$(ROUND)) + " ", 6, 38, 15, 13, 5
CASE CHR$(13): IF GESAMTSPIELER > 2 THEN WAS = 1: GOSUB PLAYE
CASE CHR$(0) + "S": FELT 220, 60, 619, 420, 0: GGG = 0: WAS = 0: ROUND = 1: CPRINT "RUNDE: " + LTRIM$(STR$(ROUND)) + " ", 6, 38, 15, 13, 5

CASE CHR$(0) + "<": SPIELER$(1) = "": SPIELER$(2) = "": SPIELER$(3) = "": SPIELER$(4) = "": SPIELER$(5) = "": SPIELER$(6) = "": SPIELER$(7) = "": SPIELER$(8) = "": SPIELER$(9) = "": SPIELER$(10) = "": SPIELER$(11) = "": SPIELER$(12) = "": SPIELER$( _
13) = "": SPIELER$(14) = "": SPIELER$(15) = "": FELD


CASE CHR$(27): SYSTEM
END SELECT
COLOR 15
LOCATE 2, 72: PRINT TIME$
TEILNEHMER
 SELECT CASE mausk%
   CASE 1
REM ************************************Spieler 1**************************
    SELECT CASE mausx%
         CASE 5 TO 205
           SELECT CASE mausy%
             CASE 61 TO 83
             XP = 10
             WO = 1
maus 0
INGET 22, XP, 3, SPIELER$(WO)
maus 1
TEILNEHMER
RUNDEN
           END SELECT
       END SELECT
REM ************************************Spieler 2**************************
    SELECT CASE mausx%
         CASE 5 TO 205
           SELECT CASE mausy%
             CASE 85 TO 107
             XP = 13
             WO = 2
IF S1 = 1 THEN maus 0
IF S1 = 1 THEN INGET 22, XP, 3, SPIELER$(WO)
IF S1 = 1 THEN maus 1
TEILNEHMER
RUNDEN
           END SELECT
       END SELECT
REM ************************************Spieler 3**************************
    SELECT CASE mausx%
         CASE 5 TO 205
           SELECT CASE mausy%
             CASE 109 TO 131
             XP = 16
             WO = 3
IF S2 = 1 THEN maus 0
IF S2 = 1 THEN INGET 22, XP, 3, SPIELER$(WO)
IF S2 = 1 THEN maus 1
TEILNEHMER
 RUNDEN
           END SELECT
       END SELECT
REM ************************************Spieler 4**************************
    SELECT CASE mausx%
         CASE 5 TO 205
           SELECT CASE mausy%
             CASE 133 TO 155
             XP = 19
             WO = 4
IF S3 = 1 THEN maus 0
IF S3 = 1 THEN INGET 22, XP, 3, SPIELER$(WO)
IF S3 = 1 THEN maus 1
TEILNEHMER
RUNDEN
           END SELECT
       END SELECT
REM ************************************Spieler 5**************************
    SELECT CASE mausx%
         CASE 5 TO 205
           SELECT CASE mausy%
             CASE 157 TO 179
             XP = 22
             WO = 5
IF S4 = 1 THEN maus 0
IF S4 = 1 THEN INGET 22, XP, 3, SPIELER$(WO)
IF S4 = 1 THEN maus 1
TEILNEHMER
RUNDEN
           END SELECT
       END SELECT
REM ************************************Spieler 6**************************
    SELECT CASE mausx%
         CASE 5 TO 205
           SELECT CASE mausy%
             CASE 181 TO 203
             XP = 25
             WO = 6
IF S5 = 1 AND DEMO = 0 THEN maus 0
IF S5 = 1 AND DEMO = 0 THEN INGET 22, XP, 3, SPIELER$(WO)
IF S5 = 1 AND DEMO = 0 THEN maus 1
TEILNEHMER
RUNDEN
           END SELECT
       END SELECT
REM ************************************Spieler 7**************************
    SELECT CASE mausx%
         CASE 5 TO 205
           SELECT CASE mausy%
             CASE 205 TO 227
             XP = 28
             WO = 7
IF S6 = 1 THEN maus 0
IF S6 = 1 THEN INGET 22, XP, 3, SPIELER$(WO)
IF S6 = 1 THEN maus 1
TEILNEHMER
RUNDEN
           END SELECT
       END SELECT
REM ************************************Spieler 8**************************
    SELECT CASE mausx%
         CASE 5 TO 205
           SELECT CASE mausy%
             CASE 229 TO 251
             XP = 31
             WO = 8
IF S7 = 1 THEN maus 0
IF S7 = 1 THEN INGET 22, XP, 3, SPIELER$(WO)
IF S7 = 1 THEN maus 1
TEILNEHMER
RUNDEN
           END SELECT
       END SELECT
REM ************************************Spieler 9**************************
    SELECT CASE mausx%
         CASE 5 TO 205
           SELECT CASE mausy%
             CASE 253 TO 275
             XP = 34
             WO = 9
IF S8 = 1 THEN maus 0
IF S8 = 1 THEN INGET 22, XP, 3, SPIELER$(WO)
IF S8 = 1 THEN maus 1
TEILNEHMER
RUNDEN
           END SELECT
       END SELECT
REM ************************************Spieler 10**************************
    SELECT CASE mausx%
         CASE 5 TO 205
           SELECT CASE mausy%
             CASE 277 TO 299
             XP = 37
             WO = 10
IF S9 = 1 THEN maus 0
IF S9 = 1 THEN INGET 22, XP, 3, SPIELER$(WO)
IF S9 = 1 THEN maus 1
TEILNEHMER
RUNDEN
           END SELECT
        END SELECT
REM ************************************Spieler 11**************************
    SELECT CASE mausx%
         CASE 5 TO 205
           SELECT CASE mausy%
             CASE 301 TO 323
             XP = 40
             WO = 11
IF S10 = 1 THEN maus 0
IF S10 = 1 THEN INGET 22, XP, 3, SPIELER$(WO)
IF S10 = 1 THEN maus 1
TEILNEHMER
RUNDEN
           END SELECT
        END SELECT
REM ************************************Spieler 12**************************
    SELECT CASE mausx%
         CASE 5 TO 205
           SELECT CASE mausy%
             CASE 325 TO 347
             XP = 43
             WO = 12
IF S11 = 1 THEN maus 0
IF S11 = 1 THEN INGET 22, XP, 3, SPIELER$(WO)
IF S11 = 1 THEN maus 1
TEILNEHMER
RUNDEN
           END SELECT
        END SELECT
REM ************************************Spieler 13**************************
    SELECT CASE mausx%
         CASE 5 TO 205
           SELECT CASE mausy%
             CASE 349 TO 371
             XP = 46
             WO = 13
IF S12 = 1 THEN maus 0
IF S12 = 1 THEN INGET 22, XP, 3, SPIELER$(WO)
IF S12 = 1 THEN maus 1
TEILNEHMER
RUNDEN
           END SELECT
        END SELECT
REM ************************************Spieler 14**************************
    SELECT CASE mausx%
         CASE 5 TO 205
           SELECT CASE mausy%
             CASE 373 TO 395
             XP = 49
             WO = 14
IF S13 = 1 THEN maus 0
IF S13 = 1 THEN INGET 22, XP, 3, SPIELER$(WO)
IF S13 = 1 THEN maus 1
TEILNEHMER
RUNDEN
           END SELECT
        END SELECT
REM ************************************Spieler 15**************************
    SELECT CASE mausx%
         CASE 5 TO 205
           SELECT CASE mausy%
             CASE 397 TO 419
             XP = 52
             WO = 15
IF S14 = 1 THEN maus 0
IF S14 = 1 THEN INGET 22, XP, 3, SPIELER$(WO)
IF S14 = 1 THEN maus 1
TEILNEHMER
RUNDEN
           END SELECT
        END SELECT
      SELECT CASE mausx%
        CASE 220 TO 298
          SELECT CASE mausy%
            CASE 434 TO 462
            WAS = 1:
GOSUB PLAYE
          END SELECT
      END SELECT
      SELECT CASE mausx%
        CASE 584 TO 610
          SELECT CASE mausy%
            CASE 430 TO 475
            SYSTEM
          END SELECT
      END SELECT
     


' REM bitte nicht löschen!!!!


REM       SELECT CASE mausx%
REM         CASE 3 TO 50
REM           SELECT CASE mausy%
REM             CASE 3 TO 28
REM         
REM             LADEN
REM           END SELECT
REM       END SELECT




   CASE 0

REM ************************************INFO**************************
REM     FELT 286, 2, 344, 28, 0
   
    SELECT CASE mausx%
         CASE 286 TO 344
           SELECT CASE mausy%
             CASE 2 TO 28
           IF GGG <> 10 THEN INFO
           END SELECT
       END SELECT
    SELECT CASE mausx%
         CASE 0 TO 639
           SELECT CASE mausy%
             CASE 29 TO 479
                IF GGG = 10 AND WAS = 0 THEN FELT 220, 60, 619, 420, 0: GGG = 0: WAS = 0: ROUND = 1: CPRINT "RUNDE: " + LTRIM$(STR$(ROUND)) + " ", 6, 38, 15, 13, 5
                IF GGG = 10 AND WAS = 1 THEN GGG = 0: GOSUB PLAYE
           END SELECT
       END SELECT
    SELECT CASE mausx%
         CASE 0 TO 285
           SELECT CASE mausy%
             CASE 0 TO 28
                IF GGG = 10 AND WAS = 0 THEN FELT 220, 60, 619, 420, 0: GGG = 0: WAS = 0: ROUND = 1: CPRINT "RUNDE: " + LTRIM$(STR$(ROUND)) + " ", 6, 38, 15, 13, 5
                IF GGG = 10 AND WAS = 1 THEN GGG = 0: GOSUB PLAYE
           END SELECT
       END SELECT
    SELECT CASE mausx%
         CASE 345 TO 639
           SELECT CASE mausy%
             CASE 0 TO 28
                IF GGG = 10 AND WAS = 0 THEN FELT 220, 60, 619, 420, 0: GGG = 0: WAS = 0: ROUND = 1: CPRINT "RUNDE: " + LTRIM$(STR$(ROUND)) + " ", 6, 38, 15, 13, 5
                IF GGG = 10 AND WAS = 1 THEN GGG = 0: GOSUB PLAYE
           END SELECT
       END SELECT
END SELECT
LOOP
PLAYE:
FELT 220, 60, 619, 420, 0
F = FREEFILE
OPEN "STOP.INI" FOR OUTPUT AS #F
FOR i = 1 TO 15 STEP 1
 PRINT #F, SPIELER$(i)
NEXT i
PRINT #F, SPIELER$(Q)
PRINT #F, GESAMTSPIELER, RUNDE, XY, YX, ROUND
CLOSE #F
SEE
RETURN
REM Daten für Türe
DATA  26 , 45 ,-129 ,-32513 ,-129 ,-32513 ,-129 ,-32513 , 0 , 0 ,-1 ,-16129 ,-1 ,-16129 ,-1 ,-16129 , 0 , 0 ,-1 ,-16129
DATA -49 ,-16129 ,-1 ,-16129 , 0 , 0 , 252 ,-16383 , 192 ,-16383 , 252 ,-16383 ,-253 , 254 , 255 ,-16383 , 192 ,-16383 , 255 ,-16383
DATA -256 , 254 ,-16129 ,-16383 , 192 ,-16383 ,-16129 ,-16383 , 16128 , 254 ,-3841 ,-16383 , 192 ,-16383 ,-3841 ,-16383 , 3840 , 254 ,-769 ,-16383
DATA  192 ,-16383 ,-769 ,-16383 , 768 , 254 ,-25 ,-16383 , 216 ,-16383 ,-1 ,-16383 , 24 , 254 ,-21 ,-16191 , 212 ,-16383 ,-1 ,-16191
DATA  20 , 62 ,-18 ,-16159 , 209 ,-16383 ,-1 ,-16159 , 17 , 30 ,-16410 ,-16159 , 16601 ,-16383 ,-1 ,-16159 , 16409 , 30 ,-20498 ,-16159
DATA  20689 ,-16383 ,-1 ,-16159 , 20497 , 30 , 27119 ,-16159 ,-26928 ,-16383 ,-1 ,-16159 ,-27120 , 30 ,-20762 ,-16287 , 20953 ,-16255 ,-1 ,-16159
DATA  20761 , 158 ,-20742 ,-16223 , 20933 ,-16319 ,-1 ,-16159 , 20741 , 94 ,-20738 ,-16159 , 20929 ,-16383 ,-1 ,-16159 , 20737 , 30 ,-20737 ,-16159
DATA  20928 ,-16383 ,-1 ,-16159 , 20736 , 30 ,-4353 ,-16159 , 4544 ,-16383 ,-1 ,-16159 , 4352 , 30 ,-257 ,-16159 , 448 ,-16383 ,-1 ,-16159
DATA  256 , 30 ,-257 ,-16159 , 448 ,-16383 ,-1 ,-16159 , 256 , 30 ,-1 ,-16159 , 192 ,-16383 ,-1 ,-16159 , 0 , 30 ,-1 ,-16159
DATA  192 ,-16383 ,-1 ,-16159 , 0 , 30 ,-1 ,-16159 , 1216 ,-16383 ,-1 ,-16159 , 1024 , 30 ,-1 ,-16159 , 704 ,-16383 ,-1 ,-16159
DATA  512 , 30 ,-1 ,-16159 , 448 ,-16255 ,-1 ,-16159 , 256 , 158 ,-1 ,-16159 , 192 ,-16383 ,-1 ,-16159 , 0 , 30 ,-1 ,-16159
DATA  192 ,-16383 ,-1 ,-16159 , 0 , 30 ,-1 ,-16159 , 192 ,-16383 ,-1 ,-16159 , 0 , 30 ,-1 ,-16159 , 192 ,-16383 ,-1 ,-16159
DATA  0 , 30 ,-1 ,-16159 , 192 ,-16383 ,-1 ,-16159 , 0 , 30 ,-1 ,-16159 , 192 ,-16383 ,-1 ,-16159 , 0 , 30 ,-1 ,-16159
DATA  192 ,-16383 ,-1 ,-16159 , 0 , 30 ,-1 ,-16159 , 192 ,-16383 ,-1 ,-16159 , 0 , 30 ,-1 ,-16159 , 192 ,-16383 ,-1 ,-16159
DATA  0 , 30 ,-1 ,-16159 , 192 ,-16383 ,-1 ,-16159 , 0 , 30 ,-1 ,-16159 , 192 ,-16383 ,-1 ,-16159 , 0 , 30 ,-241 , 224
DATA  0 , 0 ,-241 , 224 , 0 , 0 ,-253 , 224 , 0 , 0 ,-253 , 224 , 0 , 0 ,-256 , 224 , 0 , 0 ,-256 , 224
DATA  0 , 0 , 16128 , 224 , 0 , 0 , 16128 , 224 , 0 , 0 , 3840 , 224 , 0 , 0 , 3840 , 224 , 0 , 0 , 768 , 224
DATA  0 , 0 , 768 , 224 , 0 , 0 , 0 , 224 , 0 , 0 , 0 , 224 , 0 , 0 , 0 , 32 , 0 , 0 , 0 , 32
DATA  0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
DATA 380

DEFSNG Z
SUB CPRINT (FFTEXT$, FFHEIGHT, FFWIDTH, FFCOLOR1, FFCOLOR2, FFCOLOR3)
C = LEN(FFTEXT$)
PALETTE 4, 7
COLOR 4
LOCATE FFHEIGHT, FFWIDTH: PRINT FFTEXT$;
G = FFHEIGHT * 8 - 8
FOR F = FFWIDTH * 8 - 8 TO FFWIDTH * 8 + C * 8 - 8
FOR X = 0 TO 7
IF X < 2 THEN IF POINT(F, G + X) = 4 THEN PSET (F, G + X), FFCOLOR1
IF X > 1 AND X < 5 THEN IF POINT(F, G + X) = 4 THEN PSET (F, G + X), FFCOLOR2
IF X > 4 THEN IF POINT(F, G + X) = 4 THEN PSET (F, G + X), FFCOLOR3
NEXT
NEXT
PALETTE
COLOR 15
END SUB

SUB FELD
FELT 5, 60, 205, 420, 0

LINE (5, 60)-(205, 420), 2, B
FOR RAHMEN = 84 TO 396 STEP 24: REM 276
LINE (6, RAHMEN)-(204, RAHMEN), 2
NEXT RAHMEN

FELT 0, 0, 639, 30, 7
FELT 220, 60, 619, 420, 0
FELT 563, 2, 637, 28, 0
FELT 2, 2, 50, 28, 0
FELT 286, 2, 344, 28, 0
FELT 220, 434, 298, 462, 0
REM FELT 420, 434, 494, 462, 0
COLOR 10: LOCATE 2, 37: PRINT "S T O P"
CPRINT "DATEI", 2, 2, 15, 13, 5
CPRINT "LADEN", 3, 2, 15, 13, 5
TEILNEHMER
CPRINT "TEILNEHMER", 6, 8, 15, 13, 5
CPRINT "AUSLOSUNG", 56, 29, 15, 13, 5
CPRINT "RUNDE: " + LTRIM$(STR$(ROUND)) + " ", 6, 38, 15, 13, 5
CPRINT "TEILNEHMER: " + LTRIM$(STR$(GESAMTSPIELER)) + " ", 56, 8, 15, 13, 5
CPRINT "RUNDENZAHL: " + LTRIM$(STR$(RUNDE)) + " ", 58, 8, 15, 13, 5

 


END SUB

SUB FELT (X, Y, XX, YY, FARBEN)
LINE (X, Y)-(X, YY - 1), 15
LINE (X, Y)-(XX - 1, Y), 15
LINE (X + 1, YY)-(XX, YY), 8
LINE (XX, Y + 1)-(XX, YY), 8
PSET (X, YY), 7
PSET (XX, Y), 7
VIEW (X + 2, Y + 2)-(XX - 2, YY - 2), FARBEN, FARBEN
VIEW (0, 0)-(639, 479)
END SUB

SUB INFO
FELT 220, 60, 619, 420, 0: GGG = 0
CPRINT "SCHACHTUNIERORGANISATIONSPROGRAMM", 10, 37, 15, 13, 5
CPRINT "S", 10, 37, 15, 11, 3
CPRINT "T", 10, 43, 15, 11, 3
CPRINT "O", 10, 49, 15, 11, 3
CPRINT "P", 10, 62, 15, 11, 3
CPRINT "Demoversion:  5 Teilnehmer,  5 Runden, = 1 System", 14, 29, 15, 7, 8
CPRINT "Vollversion: 15 Teilnehmer, 15 Runden, = ? System", 16, 29, 15, 7, 8
CPRINT "", 18, 30, 15, 7, 8
CPRINT "Demoversion:", 20, 29, 15, 7, 8
CPRINT "Systeme: Rundensystem", 22, 29, 15, 7, 8
CPRINT "Speichern der ausgelosten Runden nicht mögich!", 24, 29, 15, 7, 8

CPRINT "", 26, 29, 15, 7, 8

CPRINT "Vollversion:", 28, 29, 15, 7, 8
CPRINT "Systeme: Rundensystem, ????", 30, 29, 15, 7, 8
CPRINT "Speichern und Laden der Auslosung", 32, 29, 15, 7, 8

CPRINT "", 34, 29, 15, 7, 8

CPRINT "Ab Version 2:", 36, 29, 15, 7, 8
CPRINT "(Eingabe der Punkte und Anzeige der Tabelle ???)", 38, 29, 15, 7, 8

CPRINT "", 40, 29, 15, 7, 8

CPRINT "Funktionen:", 42, 29, 15, 7, 8
CPRINT "+/- Wahl der nächsten Runde --- Eingabe der Namen", 44, 29, 15, 7, 8
CPRINT "Enter/Maus Auslosung --- ESC oder Maus Ende", 46, 29, 15, 7, 8

CPRINT "", 48, 29, 15, 7, 8
CPRINT "Version 1.02 Demo", 50, 29, 15, 7, 8

CPRINT "Copyright 2006, Lenhard Alexander (ESK-Plattling)", 52, 29, 15, 7, 8
GGG = 10
END SUB

SUB INGET (ANZAHLE, STELLEN, ZEILEN, X$)
X$ = RTRIM$(X$)
BB = LEN(X$)
CPRINT X$ + "_", STELLEN, ZEILEN, 15, 7, 8
1111 AA$ = "": WHILE AA$ = "": COLOR 15: AA$ = INKEY$: LOCATE 2, 72: PRINT TIME$: WEND
IF ASC(AA$) < 32 AND ASC(AA$) <> 27 AND ASC(AA$) <> 13 AND ASC(AA$) <> 8 THEN GOTO 1111
IF ASC(AA$) > 126 THEN GOTO 1111
IF LEFT$(AA$, 1) = CHR$(0) THEN GOTO 1111
SELECT CASE AA$
 CASE CHR$(13), CHR$(27): CPRINT X$ + " ", STELLEN, ZEILEN, 15, 7, 8: EXIT SUB
 CASE CHR$(8): BB = BB - 1: IF BB < 0 THEN BB = 0:  ELSE LET X$ = LEFT$(X$, BB): CPRINT X$ + "_ ", STELLEN, ZEILEN, 15, 7, 8
 CASE IS <> "": BB = BB + 1: IF BB = ANZAHLE + 1 THEN BB = BB - 1: GOTO 1111 ELSE X$ = X$ + AA$: CPRINT X$ + "_", STELLEN, ZEILEN, 15, 7, 8
END SELECT
GOTO 1111
END SUB

SUB RUNDEN
CPRINT "TEILNEHMER: " + LTRIM$(STR$(GESAMTSPIELER)) + " ", 56, 8, 15, 13, 5
CPRINT "RUNDENZAHL: " + LTRIM$(STR$(RUNDE)) + " ", 58, 8, 15, 13, 5
END SUB

SUB SPIELFELD
DEFINT Z
LINE (5, 60)-(205, 420), 2, B
FOR RAHMEN = 84 TO 396 STEP 24: REM 276
LINE (6, RAHMEN)-(204, RAHMEN), 2
NEXT RAHMEN
FOR i = 0 TO 380: READ z(i): NEXT
PUT (584, 430), z: REM 584 , 430
FELT 0, 0, 639, 30, 7
FELT 220, 60, 619, 420, 0
FELT 563, 2, 637, 28, 0
FELT 2, 2, 50, 28, 0
FELT 286, 2, 344, 28, 0
FELT 220, 434, 298, 462, 0
REM FELT 420, 434, 494, 462, 0
COLOR 10: LOCATE 2, 37: PRINT "S T O P"
CPRINT "DATEI", 2, 2, 15, 13, 5
CPRINT "LADEN", 3, 2, 15, 13, 5

CPRINT "TEILNEHMER", 6, 8, 15, 13, 5
CPRINT "AUSLOSUNG", 56, 29, 15, 13, 5
CPRINT "RUNDE: " + LTRIM$(STR$(ROUND)) + " ", 6, 38, 15, 13, 5
CPRINT "TEILNEHMER: " + LTRIM$(STR$(GESAMTSPIELER)) + " ", 56, 8, 15, 13, 5
CPRINT "RUNDENZAHL: " + LTRIM$(STR$(RUNDE)) + " ", 58, 8, 15, 13, 5
END SUB

DEFSNG Z
SUB TEILNEHMER
IF SPIELER$(1) = "" THEN S1 = 0 ELSE S1 = 1
IF SPIELER$(2) = "" THEN S2 = 0 ELSE S2 = 1
IF SPIELER$(3) = "" THEN S3 = 0 ELSE S3 = 1
IF SPIELER$(4) = "" THEN S4 = 0 ELSE S4 = 1
IF SPIELER$(5) = "" THEN S5 = 0 ELSE S5 = 1
IF SPIELER$(6) = "" THEN S6 = 0 ELSE S6 = 1
IF SPIELER$(7) = "" THEN S7 = 0 ELSE S7 = 1
IF SPIELER$(8) = "" THEN S8 = 0 ELSE S8 = 1
IF SPIELER$(9) = "" THEN S9 = 0 ELSE S9 = 1
IF SPIELER$(10) = "" THEN S10 = 0 ELSE S10 = 1
IF SPIELER$(11) = "" THEN S11 = 0 ELSE S11 = 1
IF SPIELER$(12) = "" THEN S12 = 0 ELSE S12 = 1
IF SPIELER$(13) = "" THEN S13 = 0 ELSE S13 = 1
IF SPIELER$(14) = "" THEN S14 = 0 ELSE S14 = 1
IF SPIELER$(15) = "" THEN S15 = 0 ELSE S15 = 1
GESAMTSPIELER = S1 + S2 + S3 + S4 + S5 + S6 + S7 + S8 + S9 + S10 + S11 + S12 + S13 + S14 + S15
IF GESAMTSPIELER < 3 THEN RUNDE = 0
IF GESAMTSPIELER > 2 THEN RUNDE = 3
IF GESAMTSPIELER > 4 THEN RUNDE = 5
IF GESAMTSPIELER > 6 THEN RUNDE = 7
IF GESAMTSPIELER > 8 THEN RUNDE = 9
IF GESAMTSPIELER > 10 THEN RUNDE = 11
IF GESAMTSPIELER > 12 THEN RUNDE = 13
IF GESAMTSPIELER > 14 THEN RUNDE = 15
IF GESAMTSPIELER > 16 THEN RUNDE = 0
END SUB


Ein weiteres Problem:

Ich möchte die eingegebenen Spieler abspeichern was auch funktioniert aber laden und wieder editieren können geht nicht.

Wenn rechts 4 Spieler sind möchte ich die Namen wieder laden können (nach dem speichern) und dann die Namen wieder verändern können.

Habe dies bereits probiert aber erfolglos!

Einige Teiles des Quellcodes sind noch am Beginn der Programmierung nd werden noch weiter optimiert wenn die geplanten Funktionen funktionieren

Löschen der eingegebenen Spielernamen geht zur Zeit mit F2 und wird auch noch geändert

Ich hoffe ihr könnt mir helfen!

Mit freundlichen Grüßen
ALWIM
_________________
SHELL SHUTDOWN -s -t 05
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 17.12.2006, 18:33    Titel: Antworten mit Zitat

Code:
DIM SHARED S1
DIM SHARED S2
DIM SHARED S3
DIM SHARED S4
DIM SHARED S5
DIM SHARED S6
DIM SHARED S7
DIM SHARED S8
DIM SHARED S9
DIM SHARED S10
DIM SHARED S11
DIM SHARED S12
DIM SHARED S13
DIM SHARED S14
DIM SHARED S15
'...
IF SPIELER$(1) = "" THEN S1 = 0 ELSE S1 = 1
IF SPIELER$(2) = "" THEN S2 = 0 ELSE S2 = 1
IF SPIELER$(3) = "" THEN S3 = 0 ELSE S3 = 1
IF SPIELER$(4) = "" THEN S4 = 0 ELSE S4 = 1
IF SPIELER$(5) = "" THEN S5 = 0 ELSE S5 = 1
IF SPIELER$(6) = "" THEN S6 = 0 ELSE S6 = 1
IF SPIELER$(7) = "" THEN S7 = 0 ELSE S7 = 1
IF SPIELER$(8) = "" THEN S8 = 0 ELSE S8 = 1
IF SPIELER$(9) = "" THEN S9 = 0 ELSE S9 = 1
IF SPIELER$(10) = "" THEN S10 = 0 ELSE S10 = 1
IF SPIELER$(11) = "" THEN S11 = 0 ELSE S11 = 1
IF SPIELER$(12) = "" THEN S12 = 0 ELSE S12 = 1
IF SPIELER$(13) = "" THEN S13 = 0 ELSE S13 = 1
IF SPIELER$(14) = "" THEN S14 = 0 ELSE S14 = 1
IF SPIELER$(15) = "" THEN S15 = 0 ELSE S15 = 1

Dein Code strotzt ja nur so vor überflüssigen Redundanzen! durchgeknallt Dreael beschreibt in einem seiner Artikel, wie sich sowas vermeiden lässt. Dadurch wird dein Code übersichtlicher, kleiner und vermutlich auch leichter compilierbar. Wenn du überall solche Codestellen drin hast, wird der Quelltext riesig groß und das Compilieren schwierig. Außerdem könntest du die ganzen Bildschirmausgaben und Meldungen in eine externe Datei auslagern. So könnte die passende FUNCTION aussehen:
Code:
FUNCTION Text$(nr%)
DIM f as integer
f=freefile
OPEN "texte.dat" FOR INPUT AS #f
DO UNTIL EOF(f)
 INPUT #f, d%, t$
 IF d% = nr% THEN
  CLOSE #f
  Text$ = t$
  EXIT FUNCTION
 END IF
LOOP
CLOSE #f
Text$ = "Fehler! ID " + LTRIM$(STR$(nr%)) + " nicht gefunden!"
END FUNCTION

In der Datei texte.dat stünde sowas:
Code:
1,"Hallo und herzlich willkommen bei meiner Anwendung!"
2,"Dies ist ein langer Text. Sowas sollte in externen Dateien verstaut werden. Der Quellcode wird übersichtlicher und man bekommt keine Probleme mit zu geringem String-Space."
3,"Noch ein langer String zum Ausprobieren des Auslagerns von Informationen in externe Dateien!"
4,"Zeile 1 eines Textes..."
5,"Zeile 2 eines Textes..."
6,"Zeile 3 eines Textes..."
7,"Zeile 4 eines Textes..."
8,"Zeile 5 eines Textes..."
9,"Zeile 6 eines Textes..."
...

In deinem Programm machst du dann einfach nur:
Code:
PRINT Text(1)
'Jetzt 6 Zeilen platzsparend ausgeben
FOR i% = 4 TO 9
 PRINT Text(i%)
NEXT i%
SLEEP: END

Das ist eine Möglichkeit, mit der man oft schon viel bei Verwendung von QB erreicht. In FB ist es egal, da hat man genug Speicher zur Verfügung, wenn's der PC hergibt. zwinkern

Irgendwelche unerklärlichen Compilierschwierigkeiten hängen häufig damit zusammen, dass das Programm zu lang ist, zu viele Variablen deklariert wurden etc.
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1048
Wohnort: Niederbayern

BeitragVerfasst am: 24.12.2006, 08:41    Titel: Antworten mit Zitat

Hallo!

Speichern, Laden, Auslosung, löschen das alles geht einwandfrei!

Doch ich möchte mit der Maus die Punkte für die jeweilige Runde eingeben können und auch diese abspeichern!

Wie kann man so etwas einfach und billig machen?

Habe alles erdenkliche schon versucht aber nicht geschafft!

Der Quellcode ist auch schon weiter geschrumpft!
Habe ihn optimiert.

Komme zur Zeit selten ins Internet.

Ich wünsche allen hier im Forum schöne frohe Weihnachten und ein gutes neues Jahr!

Mit freundlichen Grüßen
ALWIM
_________________
SHELL SHUTDOWN -s -t 05
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz