 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
chrid
Anmeldungsdatum: 10.07.2013 Beiträge: 2
|
Verfasst am: 10.07.2013, 08:09 Titel: Probleme mit altem Programm in fblite |
|
|
Hallo zusammen,
ich muss mich bei der Arbeit momentan mit einem alten Programm auseinandersetzen (1991) das in fblite geschrieben ist.
Ich muss dazu sagen, dass ich keine Erfahrung mit Basic besitze und gerade dabei mir anhand meiner maroden c-Vorkenntnisse den Programmcode zu erschließen.
Testhalber wollte ich das Programm kompilieren. Ich habe dazu fblite "eingeschaltet".
Ich bekomme aber in der folgenden Zeile
SHARED x%, y%
den Fehler:
Expected End-of-Line, found 'SHARED'
Es scheint mir also das SHARED falsch benutzt wird.
im wiki habe ich gelesen, das man SHARED mit DIM, REDIM, STATIC, COMMON verbinden muss, jedoch bekomme ich dann den Fehler
ILLEGAL INSIDE FUNCTIONS, found COMMON
Ich hoffe ihr könnt mir helfen.
Danke schonmal im voraus |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 10.07.2013, 09:27 Titel: |
|
|
Wäre wenn überhaupt nur innerhalb von Funktionen erlaubt. Versuche lieber mal -lang qb statt -lang fblite, denn wenn das Programm so alt ist, wird es vielleicht in QBasic geschrieben sein - FB mitsamt seines Dialekts fblite gab es damals noch nicht. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
chrid
Anmeldungsdatum: 10.07.2013 Beiträge: 2
|
Verfasst am: 10.07.2013, 10:09 Titel: |
|
|
ich hatte das ganze jetzt mit
DIM SHARED PRGENDE% = 0
gelöst und habe die deklaration dann aus dem unterprogramm rausgeholt und ganz an den anfang gesetzt.
zumindest habe ich jetzt alle fehler rausbekommen.
wenn ich allerdings -lang qb einstelle anstatt fblite bekomme ich ne fehlermeldung, das eben jener ausdruck oben nicht funktioniert (ich schätze gleichzeitiges deklaren als SHARED und setzen der variable)
edit: ok habe jezt als
DIM SHARED PRGENDE%
PRGENDE% = 0
umgebastelt und funktioniert dann auch als -lang qb
außerdem wird das programm mit -lang qb besser dargestellt
danke! |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 10.07.2013, 12:56 Titel: Variablen-Initialisierung bei expliziter Deklaration |
|
|
Hallo und willkommen im Forum!
chrid hat Folgendes geschrieben: | DIM SHARED PRGENDE% = 0
wenn ich allerdings -lang qb einstelle anstatt fblite bekomme ich ne fehlermeldung, das eben jener ausdruck oben nicht funktioniert (ich schätze gleichzeitiges deklaren als SHARED und setzen der variable)
edit: ok habe jezt als
DIM SHARED PRGENDE%
PRGENDE% = 0 |
Ja, genau, in QBasic war es seinerzeit nicht möglich, eine Variable direkt bei ihrer expliziten Deklaration mit einem eigenen Wert zu initialisieren.
Während du in FreeBASIC
Code: | Dim x As Integer = 123 |
oder in C
schreiben kannst, muss das in QB in zwei Anweisungen aufgeteilt werden, sofern man die Variable explizit deklarieren möchte (... was in QB damals leider nicht verpflichtend / der Regelfall war).
Code: | Dim x As Integer
x = 123 |
(Analog natürlich mit DIM SHARED in dem Fall.)
Noch so ein Syntaxfeature, das man in QB sehr vermisst, ist z. B.
Code: | Dim As Integer a, b, c, d |
aus FreeBASIC. In QB (und sogar in VB6) musste man hingegen schreiben:
Code: | Dim a As Integer, b As Integer, c As Integer, d As Integer |
Wenn du mit -lang qb compilierst, versucht der FreeBASIC-Compiler, sich so genau wie möglich an das Verhalten des alten QBasic anzugleichen. Dadurch kann man alte Programme aus QB leichter nach FB portieren, aber bekommt auch viele Nachteile von QB zu spüren.
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
|
|
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.
|
|