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:

Problem mit GET und Random-File... Bug?

 
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
goooofy



Anmeldungsdatum: 12.09.2005
Beiträge: 69

BeitragVerfasst am: 16.09.2006, 18:58    Titel: Problem mit GET und Random-File... Bug? Antworten mit Zitat

Hallo,
der folgende Code funktioniert komischerweise unter QBasic problemlos, unter FreeBasic bricht er immer bei GET ab. Ohne Fehlermeldung.

Schreiben und Auslesen einer String-Variablen beliebiger Größe in/aus einer Direktzugriffsdatei mit fester Datensatzlänge:

Code:
CLS

text$ = "hallo"

OPEN "test.dat" FOR RANDOM AS #1 LEN = 12
 PUT #1, 2, text$
CLOSE #1

text$ = ""

OPEN "test.dat" FOR RANDOM AS #1 LEN = 12
 GET #1, 2, text$          'Hier bricht FreeBasic ab. Wo liegt der Fehler?
CLOSE #1

PRINT text$
DO: LOOP WHILE INKEY$ = ""
SYSTEM


Hat jemand eine Idee, wie ich die Daten noch erfolgreich auslesen kann?
Die "test.dat" habe ich ursprünglich mal wie hier exemplarisch dargestellt in QBasic mit Record-Lengh 12 erstellt, sie beinhaltet zig Datensätze die ich nun auslesen will, was unter Qbasic ja auch geht, aber weshalb bei Freebasic nicht?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


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

BeitragVerfasst am: 16.09.2006, 20:59    Titel: Antworten mit Zitat

wenn das nicht mehr klappt, würde ich mal binary statt random versuchen. die variable muss dann schon VOR dem auslesen 12 bytes lang sein.
_________________
» 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
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 17.09.2006, 00:11    Titel: Antworten mit Zitat

Hi goooofy,
villeicht hilft dir das bei deinen Untersuchungen weiter:
Code:
'Ä=Ž , Ö=™ , Ü=š ; ä=„ , ö=”, ü=? , ß=á ,§=õ , ©=¸
Option Explicit
Dim Text$, y
CLS

text$ = "hallo"
? "Vor Open1"
OPEN "test.dat" FOR RANDOM AS #1 LEN = 12
? "Vor Put"
 PUT #1, 2, text$
? "Vor Close1"
CLOSE #1
? "<" &text$ &">"

text$ = String(12, " ")

? "Vor Open2"
OPEN "test.dat" FOR RANDOM AS #1 LEN = 12
? "Vor Get"
y=GET(1, 2, text$) 'Hier bricht FreeBasic ab. Wo liegt der Fehler? Falscher Funktionsaufruf!
? "Vor Close2"
CLOSE #1
? "<" &y &">"
? "<" &text$ &">"

PRINT text$

DO: LOOP WHILE INKEY$ = ""
SYSTEM

Anmerken möchte ich noch, daß 'SYSTEM' KEINE gute Lösung ist(End wäre besser..)
Ein im Forum durchaus üblicher Kommentar ist:
Die DO: LOOP-Schleife sollte besser so aussehen:
Code:
Do
  Sleep 1
Loop While Inkey=""
Außerdem ist die Verwendung von Binary als Modus vorzuziehen
(Schau in die Befehlsreferenz..)
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 17.09.2006, 12:11    Titel: Antworten mit Zitat

Hi goooofy,
wie Jojo schon schrieb ist der Fehler in der Stringlänge zu suchen.
Legst du 'text' gleich mit einer Länge von 12 Zeichen an geht es auch mit RANDOM in FB.
Code:
Cls
Dim text As String*12
text = "hallo"

Open "test.dat" For Random As #1 Len = 12
Put #1, 2, text

Print text
text = "xyz"
Print text

Get #1, 2, text
Close #1

Print text
Sleep

Gruß Volta
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
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 -> 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