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:

OPEN String$ FOR OUTPUT -> "Datei nicht gefunden!&qu

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



Anmeldungsdatum: 23.10.2004
Beiträge: 1271
Wohnort: Bayern

BeitragVerfasst am: 28.02.2006, 23:31    Titel: OPEN String$ FOR OUTPUT -> "Datei nicht gefunden!&qu Antworten mit Zitat

Hi @ all,

Eines vorneweg: Sowohl Forensuche als auch MonFAQ konnten mir leider nicht weiterhelfen.

Öhm... nunja, ich habe folgendes Problem. Um eine Datei zu öffnen, verwende ich für den Dateinamen eine Stringvariable. Dazu gleich ein Beispiel:
Code:
z$ = "33"
OPEN z$ FOR OUTPUT AS #1
' Codezeilen
CLOSE #1
END
Dieses Beispielprogramm funktioniert. Leider ist es bei mir so, dass ich Daten mit Hilfe einer FOR-Schleife in verschiedene Dateinamen ("33", "34", "35"...) speichern möchte. Da FOR-Schleifen mit Strings nichts anfangen können, muss für den Durchlauf eine Integer-Variable herhalten. Eine andere (String-)Variable wird nun per STR$ mit der Integer-Variable gefüttert. (STR$ sorgt ja dafür, dass Integervariablen in Stringvariablen umgewandelt werden) Wenn ich nun die Stringvariable als Parameter für den OPEN-Befehl benutze, bringt mir der Interpreter die Fehlermeldung "Datei nicht gefunden!"
Code:
z% = 33
z$ = STR$(z%)
OPEN z$ FOR OUTPUT AS #1 'Hier kommt die Fehlermeldung vom Interpreter
' Codezeilen
CLOSE #1
END
Das ist der fehlerhafte Codeabschnitt. (btw, der Übersicht halber habe ich das ganze FOR-Zeugs weggelassen. Der Fehler tritt auch in dieser Form auf)

Tjoa, was könnte ich tun, um den Fehler zu vermeiden? Ich habe nicht die geringste Ahnung, was der Interpreter von mir will. Dass ich die Dateinamen manuell von Hand eingebe fällt leider auch aus, da es sich bei meinem Programm um verschachtelte FOR-Schleifen handelt und ich ohne die Schleifen ca. 12mal so viel Quelltext bräuchte wie ohne sie^^. Wer kann mir helfen, ich bin für Rat äußerst dankbar.
_________________
DL Walk (Denkspiel) | DL Malek (Denkspiel) | DL Warrior (ASCII-Adventure) | DL Sokodos (Sokoban-Klon)
---
www.astorek.de.vu
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger
E-P-S



Anmeldungsdatum: 16.09.2004
Beiträge: 500
Wohnort: Neuruppin

BeitragVerfasst am: 01.03.2006, 00:02    Titel: Antworten mit Zitat

Wenn ich mich recht entsinne, mogelt STR$() noch ein Leerzeichen vor die Zahl, macht also z.B. aus der Zahl 1 den String " 1" und nicht "1".

Versuche mal: z$ = LTrim$(Str$(z%))

Möglicherweise liegt es daran.
_________________
Man kann sich öfter als zweimal im Leben halb tot lachen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 01.03.2006, 01:17    Titel: Antworten mit Zitat

und versuch mal, eventuell nicht beide variablen z zu nennen, das geht nich bei jeder version.
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Manuel



Anmeldungsdatum: 23.10.2004
Beiträge: 1271
Wohnort: Bayern

BeitragVerfasst am: 01.03.2006, 18:01    Titel: gelöst, danke :) Antworten mit Zitat

Ok, danke E-P-S. Das war die Lösung meines Problems lächeln .

@MisterD: Interessant... wie kommst du darauf? Wäre mir zumindest neu, dass man zwei Variablen mit gleichem Namen aber unterschiedlichen Typen nicht verwenden kann... (btw, es sind Variablen, die ich einfach nur für den FOR-Durchlauf brauche. Theoretisch hätte ich es auch tmp%, Muelleimer% oder was.weiss.ich% nennen können, macht doch keinen Unterschied auch nicht für die Lesbarkeit des Quellcodes... oder? Ich lasse mich gerne eines Besseren belehren^^.)
_________________
DL Walk (Denkspiel) | DL Malek (Denkspiel) | DL Warrior (ASCII-Adventure) | DL Sokodos (Sokoban-Klon)
---
www.astorek.de.vu
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger
E-P-S



Anmeldungsdatum: 16.09.2004
Beiträge: 500
Wohnort: Neuruppin

BeitragVerfasst am: 01.03.2006, 18:58    Titel: Antworten mit Zitat

MisterD hat schon recht, nicht alle Programmiersprachen bieten in dieser Hinsicht die gleiche Toleranz bzw. Unterscheidung wie QBasic.

In BlitzBasic beispielsweise ist eine solche Vorgehensweise nicht möglich. Dort bekommst du einen Fehler wenn du den gleichen Variablennamen (in diesem Beispiel Z) einmal als String und einmal als Integer definierst.
_________________
Man kann sich öfter als zweimal im Leben halb tot lachen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 01.03.2006, 21:07    Titel: Antworten mit Zitat

ich meinte, unter QB7.1 / PDS geht das glaub ich, aber unter 1.1 oder 4.5 gehts glaub ich eben nicht (wie gesagt, glaub ich..)
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
pinkpanther



Anmeldungsdatum: 28.05.2005
Beiträge: 79
Wohnort: Wien

BeitragVerfasst am: 02.03.2006, 02:54    Titel: Antworten mit Zitat

@MisterD
Variablen verschiedener Typen kann man auch unter den QB-Versionen 1.1 und 4.5 gleich benennen. Dass dies möglich ist, heißt natürlich nicht, dass es auch guter Programmierstil ist.
_________________
lG
pinkpanther lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. 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