 |
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 |
katerkarlo
Anmeldungsdatum: 01.09.2006 Beiträge: 8
|
Verfasst am: 27.04.2009, 13:03 Titel: was ist "-lang"? |
|
|
Hi, ich glaube diese Frage ist recht simpel.
Ich habe freebasic auf den neuesten stand gebracht aber jetzt das problem das ein teil meiner programme nicht mehr gestartet werden.
Ich benutze FBIde als Editor und die Programmausführung wird mit einer ganzen dicken liste an fehlermeldungen abgebrochen.
Die Fehlermeldungen sind alle in dieser art:
Zitat: | error 136: Default types or suffixes are only valid in -lang deprecated or fblite or qb, found usw.. |
Frage:
Wie richte ich FBIte so ein das die Programme wieder laufen ohne das ich den ganzen Code anpassen muss?
edit: alle fehler liegen offensichtlich in meinen sub/function deklarationen, fb stört sich am ',' was hat sich geändert?
Eine beispieldeklaration von mir:
Code: | declare function collision(ax,ay,bx,by,cx,cy,dx,dy,result,kreuzpunkt_y,kreuzpunkt_x) |
|
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 27.04.2009, 13:39 Titel: |
|
|
mit dem parameter -lang erwartet der Compiler die angabe des dialekts. ist wahrscheinlich die abkürzung von language .. also "sprache". der Compiler unterstützt verschiedene Dialekte, die sich in verschiedenen Fähigkeiten und Sprachumfang unterscheiden.
In deinem Beispiel:
Am "," stört sich der Compiler nicht. Sondern eher daran das du dort keine Datentypen den einzelnen Variablen in der Parameterliste angibst und dass du der Funktion für ihren Rückgabewert keinen Datentyp verpasst.
Code: |
declare function collision(ax as integer,ay as integer,bx as integer,by as integer,cx as integer,cy as integer,dx as integer,dy as integer,kreuzpunkt_y as integer,kreuzpunkt_x as integer) as integer
|
Ich weiss nicht genau, was du dort in dieser funktion machst.
Soweit es mir ersichtlich war, erwartest du eine Reihe von Ganzzahlen. Und eine Variable hast du "Result" genannt wo du wahrscheinlich BYREF die Ausgabe der Funktion zurückgibst.
Vorrausgesetzt, meine annahme der Datentypen war richtig, so kannst du am ende innerhalb der Funktion mit "Return Result" den Wert direkt an die ausgabe der funktion weiterleiten.
(Dann ist der Datentyp der Funktionsrückgabe auch Integer)
so kannst du dann die funktion folgender maßen aufrufen:
Code: |
result = collision(ax, ay, bx, by, cx, cy, dx, dy, double,kreuzpunkt_y, kreuzpunkt_x)
|
|
|
Nach oben |
|
 |
katerkarlo
Anmeldungsdatum: 01.09.2006 Beiträge: 8
|
Verfasst am: 27.04.2009, 14:09 Titel: |
|
|
mmhh ja vielen dank aber gibt es da nicht eine schnellere möglichkeit zb fb zu sagen es soll sich mal bitteschön die typen selber raussuchen?
Das Programm lief mit dem älteren fb einwandfrei.
Soll heißen es hat zwar gemeckert das ich keine variablen-typen angegeben habe aber trotzdem das programm korrekt ausgeführt.
also bevor ich mich da hinsetze und mir die arbeit mache 2000 zeilen code nachzuarbeiten installiere ich mir doch lieber wieder das alte fb.
Klar ist auch das ich mich dann halt bei zukünftigen projekten drann halte alle variabeln ordentlich zu dimensionieren.
Es gibt doch SICHER einen weg auch ältere fb-programme von mir mit dem neuen FB lauffähig zu machen OHNE den Code großartig verändern zu müssen oder? |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 27.04.2009, 14:50 Titel: |
|
|
Ich weiss das mit der jeweils aktuellsten Version vom FBC immer mehr QB-Dialekt-Überbleibsel wegfallen und wegfallen werden. Welche das im Detail sind weiss ich allerdings, nicht, ich hoffe das hier im forum da jemand mehr drüber bescheid weiss.
Ich würde dir allerdings empfehlen auf ältere dialekte zu verzichten, weil du dich damit um einige neue Funktionen um um einen größeren Sprachumfang beraubst.
Schreibs lieber um und du hast mehr freiheiten bzw möglichkeiten als vorher!
Bequemlichkeit ist nicht immer gut, wenn man davon ausgehen will, dass das programm genau das machen soll, wofür man es programmiert hat
Wenn du FBIDE oder den FBEdit verwendest, kannst du dort in den Einstellungen den Parameter " -lang qb " für den FBC feste einstellen. Dann brauchst du den nicht extra bei jedem neukompilieren angeben. Oder mach dir ne Batch-Datei wenn du dein Programm immer von der Kommandozeile aus kompilieren willst.
Ich hab früher auch ne menge in QB getextet, nur irgendwann hat mich der neue sprach- und funktionsumfang vom neuen FBC zu sehr interessiert und seit dem programmier ich "ordentlich" .. klar, auch wenn man sich an die FBC-Eigene Syntax hält, kann man "hässlich" programmieren, aber das ist grad nicht das thema XD |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 27.04.2009, 14:51 Titel: |
|
|
schau mal in die FreeBASIC-Referenz:
http://www.freebasic-portal.de/index.php?s=reftopic&id=600 _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 27.04.2009, 14:53 Titel: |
|
|
@volta: Cool, wusst ich auch noch nicht XD.. man lernt nie aus besonders wenn man eine Meta-muffel ist XD |
|
Nach oben |
|
 |
katerkarlo
Anmeldungsdatum: 01.09.2006 Beiträge: 8
|
Verfasst am: 27.04.2009, 15:13 Titel: |
|
|
Zitat: | #lang "deprecated" |
Problem gelöst VIELEN DANK volta !!
Aber hey, vielleicht sollte ich ja auch auf OneCypher hören , nicht so faul sein und meine Zeit sinnlos damit verschwenden ein Programm was bereits lief nochmal 3 stunden nachzubearbeiten statt mal kurz diese eine zeile einzufügen.... |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 27.04.2009, 16:02 Titel: |
|
|
"Aber hey, vielleicht sollte ich ja auch auf OneCypher hören , nicht so faul sein und meine Zeit sinnlos damit verschwenden ein Programm was bereits lief nochmal 3 stunden nachzubearbeiten statt mal kurz diese eine zeile einzufügen...."
klingt fast ironisch :-/ .. war nur ein gut gemeinter rat ... Altlasten machen eigentlich immer nur probleme! früher oder später jedenfalls... |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 27.04.2009, 16:13 Titel: |
|
|
katerkarlo hat Folgendes geschrieben: | Aber hey, vielleicht sollte ich ja auch auf OneCypher hören , nicht so faul sein und meine Zeit sinnlos damit verschwenden ein Programm was bereits lief nochmal 3 stunden nachzubearbeiten statt mal kurz diese eine zeile einzufügen.... |
OneCypher hat Folgendes geschrieben: | klingt fast ironisch :-/ |
Da würde ich das "fast" weglassen.
katerkarlo hat Folgendes geschrieben: |
Zitat: | #lang "deprecated" |
Problem gelöst |
deprecated heißt übrigens "missbilligt" oder "abgelehnt". Dieser Compilermodus dient dazu, dass Bestandsprogramme, die noch immer veraltete und inzwischen nicht mehr regulär unterstützte Sprachelemente nutzen, noch in einem "Kompatibilitätsmodus" compiliert werden können, damit sie nicht grundlegend umgeschrieben werden müssen. Als Basis für neue Programme ist dieser "Fallback-Modus" des Compilers nicht zu empfehlen, da man nicht genau sagen kann, bis wann welcher Grad der Abwärtskompatibilität aufrecht erhalten wird. Wenn eben möglich, sollte man stattdessen versuchen, seine Programme entsprechend zu ändern, dass sie im Standardmodus compiliert werden können.
OneCypher hat Folgendes geschrieben: | war nur ein gut gemeinter rat |
Der war meiner Ansicht nach nicht nur "gut gemeint", sondern auch noch fachlich völlig richtig.  _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 27.04.2009, 16:13 Titel: |
|
|
Ein recht umfangreiches meiner Programme habe ich inzwischen mindestens zum fünften Mal komplett neu geschrieben, vorwiegend wegen Dialektwechsel. Als verschwendete Zeit habe ich das nie empfunden. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 27.04.2009, 16:36 Titel: |
|
|
@Sebastian: Schon ok, ich kanns verstehen wenn man sich arbeit sparen will. Seine artikulation war nur nich ganz nett .. nichts für ungut  |
|
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.
|
|