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:

$INCLUDE Dateien

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Spezielle Fragen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
The real Agent D



Anmeldungsdatum: 24.11.2005
Beiträge: 605
Wohnort: Hall i. T.

BeitragVerfasst am: 17.03.2006, 14:48    Titel: $INCLUDE Dateien Antworten mit Zitat

Hi,

ich will ein programm proggen, das Variablen mit dem inhalt einer $INCLUDE Datei Werte zuweist, während ein anderes Programm den Innhalt der Datei umschreibt grinsen . Wie ist das jetzt, wenn ich das Programm zu einer exe compilliere, greift dann die exe auf die include Datei zu, oder wird deren Innhalt unveränderlich in exe eingefügt?
Ich wollte einfach nicht die trial and error Methode verwenden, da ich bevor ich zu proggen beginne eine fixe Antwort brauche Ja!.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 17.03.2006, 14:51    Titel: Antworten mit Zitat

geht nicht. nach dem kompilieren sind sämtliche Variablennamen hinfällig, die kannst du also nicht mehr benutzen. bei QB geht das, in FB nicht und in QB auch nur, wenn du das programm im interpreter laufen lässt. Die Variablen in einer .exe zu ändern ist selbstmord auch wenn es mit viel aufwand möglich ist..
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 17.03.2006, 17:28    Titel: Antworten mit Zitat

Möglich wäre aber eine kleine DLL die ien Sub enthält die BYREF die Variabeln bekommt und überschreibt.

Einfacher gesagt:
Du schreibt eine Sub-Routine, die nur Werte setzt und packst diese in eine DLL.
Das Hauptprogramm öffnet nun die DLL und hat nun die Daten.

Alernativ übergibst du die Variabeln/Inhalt per Parameter an dein Programm.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
The real Agent D



Anmeldungsdatum: 24.11.2005
Beiträge: 605
Wohnort: Hall i. T.

BeitragVerfasst am: 19.03.2006, 15:18    Titel: Antworten mit Zitat

Wie schreibe ich diese DLL und wie greife ich darauf zu?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 19.03.2006, 15:43    Titel: Antworten mit Zitat

Eine DLL ist eigentlich ein ganz Normals Programm, das aber nur aus Sub Routinen/Funktionen besteht.
Freebasic erzeugt eine DLL, wenn man das Parameter "-dylib" übergibt.
fbc hat Folgendes geschrieben:
-dylib Create a DLL, including the import library


aufgerufen wird DLL hier mit:
Code:
declare function NameDerFunction lib "NameDerDLL" alias NameDerFunction  (Parameter) as integer

oder
Code:
declare Sub NameDerSub lib "NameDerDLL" alias NameDerSub  (Parameter)

Nach her kannst du die Subroutinie/Fuinktion ganz Normal benutzen.

siehe auch im Freebasic Ordner:
FreeBASIC\examples\dll\

Edit:/
Der Benutzer braucht dann zum verändern der Werte einfach Freebasic und auch das geht nicht während laufzeit, sondern nur vordem starten.

Wenn ich dich jetzt richtig verstehe, willst du das zwei Programm irgendwie Daten austauschen, dafür gäbe es bessere Mittel.
z.B. die Zwischenablage von Windows

oder eine Text Datei die das eine Programm schreibt und das andere liest. (dann muss man aber aufpassen, das die Datei nicht im falschen moment gelesen wird)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 19.03.2006, 15:57    Titel: Antworten mit Zitat

Das hier ist aber das QB-Forum...
DLLs unter QB sind meines Wissens nach nicht realisierbar...

Zum Thema QB und Bilbliotheken kannst du dir ja mal das hier anschauen:
http://www.antonis.de/faq/qbmonfaq-dateien/134109793.html
http://www.antonis.de/faq/qbmonfaq-dateien/981600022.html
http://www.antonis.de/faq/qbmonfaq-dateien/1077309130.html
http://www.antonis.de/faq/qbmonfaq-dateien/1829123019.html

jb
_________________
Elektronik und Programmieren
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 19.03.2006, 17:47    Titel: Antworten mit Zitat

Das stimmt, aber "$INCLUDE" ist doch ein Freebasic Befehl?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 19.03.2006, 17:52    Titel: Antworten mit Zitat

'$include 'bla.bi'
#include "bla.bi"
geht beides.
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 19.03.2006, 18:30    Titel: Antworten mit Zitat

QuickBASIC's Hilfe hat Folgendes geschrieben:

$INCLUDE - $INCLUDE ist ein Metabefehl, der QuickBASIC veranlasst, andere BASIC Quelldateien an spezifizierten Punkten während der Kompilation einzulesen und zu kompilieren.

Syntax:
REM $INCLUDE: 'Dateispez'
oder
' $INCLUDE: 'Dateispez'

Siehe auch ->Metabefehl Syntax<-


jb
_________________
Elektronik und Programmieren
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 19.03.2006, 18:56    Titel: Antworten mit Zitat

öhm stimmt wir sind ja im QB-Forum, in FreeBASIC geht beides, in QB geht _nur_ '$include 'bla.bi'
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 19.03.2006, 18:58    Titel: Antworten mit Zitat

Fast; es muss '$INCLUDE: 'kA.bi' heißen... zwinkern

jb
_________________
Elektronik und Programmieren
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 19.03.2006, 18:59    Titel: Antworten mit Zitat

na gut Zunge rausstrecken
wer benutzt schon QB oder '$ in FB *pfeif*
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The real Agent D



Anmeldungsdatum: 24.11.2005
Beiträge: 605
Wohnort: Hall i. T.

BeitragVerfasst am: 19.03.2006, 19:02    Titel: Antworten mit Zitat

Ich versuch einfach mal eine Datei zu schreiben, in der Zahlen stehen, die mein Programm einließt und Variablen zu weist. Während das andere Programm den Innhalt löscht und neu schreibt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 19.03.2006, 19:05    Titel: Antworten mit Zitat

So lange du interpretierst geht das auch. Nur als .EXE wird's nicht laufen...

jb
_________________
Elektronik und Programmieren
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
The real Agent D



Anmeldungsdatum: 24.11.2005
Beiträge: 605
Wohnort: Hall i. T.

BeitragVerfasst am: 19.03.2006, 19:09    Titel: Antworten mit Zitat

Warum nicht? Und wie soll es dann laufen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 19.03.2006, 19:18    Titel: Antworten mit Zitat

Wenn ein Programm, das ein $inc verwendet, kompiliert wird, dann wird an der Stelle, an der
das $inc vorkommt, der enthaltene Quellcode direkt mitkompiliert. Da zum Kompilieren
allerdings QB.EXE benötigt wird, kann die erzeugte .EXE nicht einfach selber den includierten
Code compilieren. Ein
Code:

IF x = 1 THEN '$INCLUDE: 'BLA.BI'

wäre also auch nicht möglich.
Das ist das Problem.
Wenn es dir nur um Variablen geht, könntest du dir einfach ein eigenes Variablensystem
basteln, das die Werte der Variablen in temporäre Dateien schreibt.
Eine andere sicherlich komplexere Möglichkeit wäre, dir eine eigene Scriptsprache zu
schreiben, dessen Scripte deine kompilierte .EXE dann selber während der Laufzeit interpretiert...

Vielleicht erklärst du mal, worum genau es dir geht, denn vielleicht gibt es auch eine viel einfachere Lösung für dein Problem lächeln

jb
_________________
Elektronik und Programmieren
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
The real Agent D



Anmeldungsdatum: 24.11.2005
Beiträge: 605
Wohnort: Hall i. T.

BeitragVerfasst am: 20.03.2006, 14:37    Titel: Antworten mit Zitat

jb hat Folgendes geschrieben:

Wenn es dir nur um Variablen geht, könntest du dir einfach ein eigenes Variablensystem
basteln, das die Werte der Variablen in temporäre Dateien schreibt.


Genau das habe ich auch gesagt. cool

The real Agent D hat Folgendes geschrieben:

Ich versuch einfach mal eine Datei zu schreiben, in der Zahlen stehen, die mein Programm einließt und Variablen zu weist. Während das andere Programm den Innhalt löscht und neu schreibt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 20.03.2006, 16:07    Titel: Antworten mit Zitat

Ups... peinlich
Na wenigstens läuft's jetzt lächeln

jb
_________________
Elektronik und Programmieren
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Spezielle Fragen 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