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 OPEN und STR$

 
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
ebrady



Anmeldungsdatum: 06.07.2005
Beiträge: 45

BeitragVerfasst am: 06.07.2005, 16:07    Titel: Problem mit OPEN und STR$ Antworten mit Zitat

Hallo!

Mit folgenden Programmzeilen gibt's Probleme:

string$ = STR$(123)
OPEN string$ AS i%

-> Datei nicht gefunden

Ich versteh das irgendwie nicht so ganz.
Ich meine wenn ich string$ mit
string$ = "123"
deklariere, geht's doch auch!

Oder bin ich wie so oft einfach wieder nur zu blöd und hab was ganz einfaches übersehen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Tobber



Anmeldungsdatum: 01.07.2005
Beiträge: 62
Wohnort: Freudenstadt

BeitragVerfasst am: 06.07.2005, 16:28    Titel: Antworten mit Zitat

Hallo ebrady !

Also ich kann schon garnicht "string$=str$(123)" als Programmzeile in QB abschließen, ohne das eine Fehlermeldung kommt. Wie hast Du das gemacht ? Oder war die Variable string$ nur zur Veranschaulichung ? Denn string$ ist ein eigener Befehl und kann nicht als Variable benutzt werden.
Versuch's doch mal so:

dateiname$=ltrim$(str$(123))
open dateiname$ for [] as []

Wenn Du Dateiname$ for [Input] öffnest und sie nicht existiert, wird sie auch nicht gefunden. Anderst bei for [Output].
_________________
"Es wurde schon alles gesagt, nur noch nicht von jedem !"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ebrady



Anmeldungsdatum: 06.07.2005
Beiträge: 45

BeitragVerfasst am: 06.07.2005, 16:51    Titel: Antworten mit Zitat

Mit LTRIM$ funzt das. Danke!
Aber wieso schafft STR$ denn Leerzeichen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Tobber



Anmeldungsdatum: 01.07.2005
Beiträge: 62
Wohnort: Freudenstadt

BeitragVerfasst am: 06.07.2005, 16:54    Titel: Antworten mit Zitat

Das weiß ich auch erst seit Neuestem: Anscheinend wird dort ein Platz für das Minuszeichen freigehalten, falls der Wert negativ ist. Hab's noch nicht überprüft, aber wäre logisch nachvollziehbar.
_________________
"Es wurde schon alles gesagt, nur noch nicht von jedem !"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



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

BeitragVerfasst am: 06.07.2005, 19:11    Titel: Antworten mit Zitat

stimmt, oder eventuell auch noch für einen Punkt (Komma) bei float-datentypen (single, double)
_________________
"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
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 06.07.2005, 21:55    Titel: Antworten mit Zitat

Und die Leerstellen füllt QB mit CHR$(0) aus, und das ist ja im Dateinamen nicht erlaubt, wie
übrigens auch alle anderen Steuerzeichen (ASCII 0-31).

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Tobber



Anmeldungsdatum: 01.07.2005
Beiträge: 62
Wohnort: Freudenstadt

BeitragVerfasst am: 06.07.2005, 21:58    Titel: Antworten mit Zitat

Ist für QB CHR$(0) denn gleichbedeutend mit einem Leerzeichen (CHR$(32)) ?
_________________
"Es wurde schon alles gesagt, nur noch nicht von jedem !"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 06.07.2005, 22:01    Titel: Antworten mit Zitat

Eben nicht! CHR$(0) ist wirklich leer, CHR$(32) ist ein Zeichen. lächeln

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MisterD



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

BeitragVerfasst am: 06.07.2005, 22:03    Titel: Antworten mit Zitat

Wird aber beides von LTRIM$ und RTRIM$ erfasst.
_________________
"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
Tobber



Anmeldungsdatum: 01.07.2005
Beiträge: 62
Wohnort: Freudenstadt

BeitragVerfasst am: 06.07.2005, 22:04    Titel: Antworten mit Zitat

Stopstopstop. Jetzt komm ich ein bißchen durcheinander. Also ltrim$ macht chr$(0) als Vorzeichen-Platzhalter weg. Wie meinst Du das, das beides erfaßt wird ? durchgeknallt
_________________
"Es wurde schon alles gesagt, nur noch nicht von jedem !"


Zuletzt bearbeitet von Tobber am 06.07.2005, 22:07, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 06.07.2005, 22:05    Titel: Antworten mit Zitat

Nee, auch nicht.
Wenn du mir nicht glaubst:
Bei
Code:

PRINT LEN(LTRIM$(RTRIM$(CHR$(0))))

kommt 1 raus zwinkern

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Tobber



Anmeldungsdatum: 01.07.2005
Beiträge: 62
Wohnort: Freudenstadt

BeitragVerfasst am: 06.07.2005, 22:14    Titel: Antworten mit Zitat

Jetzt habe ich meinen Glauben komplett verloren... Du hast doch eben noch gesagt

jb hat Folgendes geschrieben:
Eben nicht! CHR$(0) ist wirklich leer, CHR$(32) ist ein Zeichen. lächeln

jb


aber in Deinem Beispiel hat CHR$(0) eine Länge. Ist also ein Zeichen. Oder ?

OK. Die Fragen beantworten sich bei näherem hingucken von selbst. Sorry.

Also CHR$(0) hat zwar eine Länge von 1, ist aber kein Zeichen, wird aber von ltrim$ und rtrim$ erfaßt. Gibt es ein Beispiel, wo rtrim$ für diesen Fall notwendig wird ?
_________________
"Es wurde schon alles gesagt, nur noch nicht von jedem !"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 06.07.2005, 22:20    Titel: Antworten mit Zitat

mit den Augen rollen zwinkern Dann schreib halt
Code:

t$ = "HALLO!" + CHR$(0)
CLS
PRINT LEN(RTRIM$(LTRIM$(t$)))

Da kommt immer noch 7 raus. Und da "HALLO!" 6 Buchstaben hat, kann man sich ja wohl denken, wo
das eine Zeichen herkommt.

Fazit: RTRIM$() und LTRIM$() kürzen also CHR$(0) nicht weg. grinsen

/EDIT: Ich hab Müll erzählt. Der Platzhalter für das Minuszeichen ist ein simples
Leerzeichen, wird daher auch von LTRIM$() weggekürzt.

CHR$(0) kann nicht von LTRIM$() oder RTRIM$() weggekürzt werden, was mein obiger Code ja zeigt.

Soo, alle Klarheiten beseitigt zwinkern ?

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Tobber



Anmeldungsdatum: 01.07.2005
Beiträge: 62
Wohnort: Freudenstadt

BeitragVerfasst am: 06.07.2005, 22:30    Titel: Antworten mit Zitat

durchgeknallt
_________________
"Es wurde schon alles gesagt, nur noch nicht von jedem !"


Zuletzt bearbeitet von Tobber am 06.07.2005, 22:41, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Tobber



Anmeldungsdatum: 01.07.2005
Beiträge: 62
Wohnort: Freudenstadt

BeitragVerfasst am: 06.07.2005, 22:40    Titel: Antworten mit Zitat

Sonnenklar jetzt alles. Dankeschön !
_________________
"Es wurde schon alles gesagt, nur noch nicht von jedem !"


Zuletzt bearbeitet von Tobber am 06.07.2005, 22:42, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 06.07.2005, 22:41    Titel: Antworten mit Zitat

Guckstdu was ich oben geschreibselt habe:
Zitat:

Der Platzhalter für das Minuszeichen ist ein simples
Leerzeichen, wird daher auch von LTRIM$() weggekürzt.


Hier noch mal eine Funktion, um dir zu zeigen, wie in etwa LTRIM$() funktioniert:
Code:

FUNCTION TRIM$(Ausdruck$, Zeichen$)

tmp$ = ""

FOR i = 1 TO LEN(Ausdruck$)
 
 IF MID$(Ausdruck$, i, 1) <> Zeichen$ THEN tmp$ = tmp$ + MID$(Ausdruck$, i, 1)

NEXT i

TRIM$ = tmp$

END FUNCTION


Diese Funktion kürzt das Zeichen Zeichen$ komplett aus dem String.

Als Anwendungsbeispiel:
Code:

CLS
PRINT TRIM$("Dieser Text wird komplett ohne Leerzeichen ausgegeben!", " ")
PRINT
PRINT TRIM$("Und dieser Text komplett ohne e's", "e")


Die Ausgabe wäre dann
Code:

DieserTextwirdkomplettohneLeerzeichenausgegeben!

Und disr Txt kompltt ohn 's

Alles klar? lächeln

/EDIT: HRRRR, jetzt hab ich mir umsonst die Finger wund getipselt durchgeknallt lächeln
Nein, kein Problem, freut mich, wenn du's verstanden hast lächeln

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Tobber



Anmeldungsdatum: 01.07.2005
Beiträge: 62
Wohnort: Freudenstadt

BeitragVerfasst am: 06.07.2005, 22:44    Titel: Antworten mit Zitat

EDIT, EDIT, EDIT...


U DIT IT !!! Hast Dich aber in's Zeug gelegt. Wow. Merci !


Liebe
_________________
"Es wurde schon alles gesagt, nur noch nicht von jedem !"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 06.07.2005, 22:46    Titel: Antworten mit Zitat

Danke schön lächeln

jb
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 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