Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Lehmeier
Anmeldungsdatum: 25.02.2011 Beiträge: 5
|
Verfasst am: 25.02.2011, 20:53 Titel: FB Variablen immer deklarieren ? |
|
|
Hallo,
ich wollte mich nach langer Zeit mal wieder an kleinen Programmen versuchen aber leider bekomme ich immer "Fehler 41" und die Ausgabe das Variablen deklariert werden müßen. Seit wann ist das in Basic der Fall ? Ich kenne es nur das Variablen einfach gesetzt werden können.
MfG R.Lehmeier |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 25.02.2011, 21:41 Titel: |
|
|
Hallo und willkommen im Forum!
Ähnlich wie z. B. in Java müssen Variablen seit längerer Zeit auch in FreeBASIC explizit deklariert werden. Während früher
Code: | For i% = 1 To 10
Print "Hallo Welt"
Next i% |
ohne DIM-Anweisung für i möglich war, muss heute jede Variable deklariert werden:
Code: | Dim i As Integer
For i = 1 To 10
Print "Hallo Welt"
Next i |
oder alternativ
Code: | For i As Integer = 1 To 10
Print "Hallo Welt"
Next i |
Da Variablen vor ihrer Verwendung stets deklariert werden, ist keine Typangabe über Suffixe mehr nötig; Bezeichnersuffixe (%, $, ...) finden keine Anwendung mehr.
Sollen aber alte QB-Programme möglichst ohne viele Veränderungen compiliert werden, bietet der Compiler mit der Kommandozeilenoption -lang qb einen Syntax-Kompatibilitätsmodus zu QBasic an. In diesem Modus können Variablen auch weiterhin wie einst in QB implizit deklariert werden. Auf der anderen Seite stehen die neuen Funktionen aus FreeBASIC in diesem Modus aber nicht direkt zur Verfügung.
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
Lehmeier
Anmeldungsdatum: 25.02.2011 Beiträge: 5
|
Verfasst am: 25.02.2011, 22:19 Titel: |
|
|
Sebastian hat Folgendes geschrieben: | Hallo und willkommen im Forum!
Ähnlich wie z. B. in Java müssen Variablen seit längerer Zeit auch in FreeBASIC explizit deklariert werden. Während früher
Code: | For i% = 1 To 10
Print "Hallo Welt"
Next i% |
ohne DIM-Anweisung für i möglich war, muss heute jede Variable deklariert werden:
Code: | Dim i As Integer
For i = 1 To 10
Print "Hallo Welt"
Next i |
|
Die alte Variante fand ich besser. Das machte Basic ja so einfach.
Zitat: | Da Variablen vor ihrer Verwendung stets deklariert werden, ist keine Typangabe über Suffixe mehr nötig; Bezeichnersuffixe (%, $, ...) finden keine Anwendung mehr. |
Auch nicht schlecht.
Was mir aber auffällt ist das beim einfügen von Zeilen die Sprungmarken nicht mit angepasst werden. Hier könnte man sicherlich noch etwas nacharbeiten.
Bei kleinen Programmen mag es ja noch gehen aber wenn Sie länger werden dürfte es in einer Menge Nacharbeit münden.
MfG R.Lehmeier |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 25.02.2011, 22:28 Titel: |
|
|
Sprungmarken sollten sowieso nicht mehr verwendet werden - erst recht keine numerischen. Wenn man auf GOTO/GOSUB schon nicht verzichten möchte, sollten es meiner Meinung nach wenigstens "sprechende" Label-Namen wie SchleifenAnfang: oder Hauptmenue: sein.
Besser noch wäre es aber aus vielen Gründen, stattdessen ganz auf Schleifen und Unterprogramme (SUBs und FUNCTIONs) zu setzen. Beides wurde auch schon in QB-Zeiten nachdrücklich empfohlen (siehe z.B. Thomas Antonis QB-Monster-FAQ).
In alten Bestandsprogrammen muss aber dank des Kompatibilitätsmodus nicht alles geändert werden, damit die Programme mit FreeBASIC compiliert werden können. Nur in Neuentwicklungen würde ich auf jeden Fall auf Zeilennummern usw. verzichten. _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
Lehmeier
Anmeldungsdatum: 25.02.2011 Beiträge: 5
|
Verfasst am: 25.02.2011, 22:31 Titel: |
|
|
Sebastian hat Folgendes geschrieben: | Hallo und willkommen im Forum!
Ähnlich wie z. B. in Java müssen Variablen seit längerer Zeit auch in FreeBASIC explizit deklariert werden. Während früher
Code: | For i% = 1 To 10
Print "Hallo Welt"
Next i% |
ohne DIM-Anweisung für i möglich war, muss heute jede Variable deklariert werden:
Code: | Dim i As Integer
For i = 1 To 10
Print "Hallo Welt"
Next i |
|
Die alte Variante fand ich besser. Das machte Basic ja so einfach.
Zitat: | Da Variablen vor ihrer Verwendung stets deklariert werden, ist keine Typangabe über Suffixe mehr nötig; Bezeichnersuffixe (%, $, ...) finden keine Anwendung mehr. |
Auch nicht schlecht. Aber mir fiel auf das die Sprungmarken, beim Einfügen von Zeilen, nicht mit angepasst werden. Hier sollte noch mal nachgearbeitet werden. Bei kleineren Projekten ist es sicherlich kein Problem aber wenn Sie größer werden istes eine unnötige Fehlerquelle und Mehrarbeit.
Als GUI habe ich mir FBEdit und FBIde rausgesucht, falls es etwas mit dm Problem zutun haben sollte.
MfG R.Lehmeier |
|
Nach oben |
|
 |
|