Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Manuel

Anmeldungsdatum: 23.10.2004 Beiträge: 1271 Wohnort: Bayern
|
Verfasst am: 28.02.2006, 23:31 Titel: OPEN String$ FOR OUTPUT -> "Datei nicht gefunden!&qu |
|
|
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 |
|
 |
E-P-S

Anmeldungsdatum: 16.09.2004 Beiträge: 500 Wohnort: Neuruppin
|
Verfasst am: 01.03.2006, 00:02 Titel: |
|
|
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 |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 01.03.2006, 01:17 Titel: |
|
|
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 |
|
 |
Manuel

Anmeldungsdatum: 23.10.2004 Beiträge: 1271 Wohnort: Bayern
|
Verfasst am: 01.03.2006, 18:01 Titel: gelöst, danke :) |
|
|
Ok, danke E-P-S. Das war die Lösung meines Problems .
@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 |
|
 |
E-P-S

Anmeldungsdatum: 16.09.2004 Beiträge: 500 Wohnort: Neuruppin
|
Verfasst am: 01.03.2006, 18:58 Titel: |
|
|
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 |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 01.03.2006, 21:07 Titel: |
|
|
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 |
|
 |
pinkpanther

Anmeldungsdatum: 28.05.2005 Beiträge: 79 Wohnort: Wien
|
Verfasst am: 02.03.2006, 02:54 Titel: |
|
|
@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  |
|
Nach oben |
|
 |
|