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:

Probleme mit altem Programm in fblite

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



Anmeldungsdatum: 10.07.2013
Beiträge: 2

BeitragVerfasst am: 10.07.2013, 08:09    Titel: Probleme mit altem Programm in fblite Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


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

BeitragVerfasst am: 10.07.2013, 09:27    Titel: Antworten mit Zitat

Code:
SHARED x%, y%

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
chrid



Anmeldungsdatum: 10.07.2013
Beiträge: 2

BeitragVerfasst am: 10.07.2013, 10:09    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 10.07.2013, 12:56    Titel: Variablen-Initialisierung bei expliziter Deklaration Antworten mit Zitat

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
Code:
int x = 123;

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail 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 -> Allgemeine Fragen zu FreeBASIC. 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