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 while.....wend in FB 0.16

 
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
s-m-n



Anmeldungsdatum: 03.10.2005
Beiträge: 106
Wohnort: Pietling in Oberbayern / Deutschland

BeitragVerfasst am: 03.07.2006, 18:47    Titel: Problem mit while.....wend in FB 0.16 Antworten mit Zitat

Hi,

dort http://forum.qbasic.at/viewtopic.php?t=2700 hab ich von MisterD ein Codebeispiel bekommen. Dieses hab ich so modifiziert:

Code:
shell "del index.php"
shell "wget http://www.antenne-salzburg.at/cms/index.php"

dim as integer zeilen,f,n
dim as string zeile(255) ' je nach dem ändern, so können bis zu 256 zeilen eingelesen werden..
f = freefile
OPEN "index.php" FOR INPUT AS #f
WHILE NOT EOF(f)
    LINE INPUT #f, zeile(zeilen)
    zeilen+=1

cls
print zeile(23)


 WEND
close #f




Damit kann ich aus der Startseite meines Lieblingsradios, die mir wget aus dem Netz holt, die Zeile mit dem gerade gespielten Titel auslesen. Prinzipiell funktioniert's sogar, nur die mit "print" angezeigte Zeile flimmert furchtbar und das ganze lässt sich nicht durch Tastendruck beenden, wie man es von "sleep" gewohnt ist. Das "cls" und das "print zeile(23)" hab ich innerhalb vom while...wend platziert, weil in der Datei "migrating.txt", die bei der Installation von FB 0.16 im Zielordner landet, steht, dass Variablen, die innerhalb des while...wend definiert wurden, außerhalb nicht mehr angezeigt werden. Aber so funzt's auch nur halbwegs. Und mit FB 0.15 geht's gar nicht. Kenn mich da leider noch nicht so aus. Wer kann mir da helfen?

Vielen Dank für eure Bemühungen!

Gruß s-m-n
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

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

Hi s-m-n,
probiers doch mal so:
Code:
f = freefile
OPEN "index.php" FOR INPUT AS #f
cls
WHILE NOT EOF(f)
    LINE INPUT #f, zeile(zeilen)
    zeilen+=1
Locate 1, 1, 0
print zeile(23)
 WEND
close #f
Hoffe, es hülft zwinkern
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
s-m-n



Anmeldungsdatum: 03.10.2005
Beiträge: 106
Wohnort: Pietling in Oberbayern / Deutschland

BeitragVerfasst am: 03.07.2006, 19:08    Titel: Antworten mit Zitat

Nein, geht leider nicht. Wir müssen die Variable aus der while...wend-Schleife rausbringen, sonst wird die Bildschirmausgabe immer wieder wiederholt. Davon kommt auch das Flimmern der Zeile und die Tatsache, dass das Programm nicht auf den Tastendruck reagiert, weil der sleep-Befehl ja noch nicht mal verarbeitet ist, sondern die Schleife immer weiterläuft. Aber das Sleep innerhalb der Schleife hab ich auch schon ohne Erfolg versucht.

Bin leider total ratlos, wie ich das in den Code umsetzen soll....

Gruß s-m-n
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 03.07.2006, 19:39    Titel: Antworten mit Zitat

Hi s-m-n,
Das hat wunderbar gefunzt, die Zeile stand wie ne 1 grinsen
Code:
'Ä=Ž , Ö=™ , Ü=š ; ä=„ , ö=”, ü=? , ß=á ,§=õ , ©=¸
Dim As Integer Zeilen, f, i
Dim As String Zeile(2550), s ' je nach dem ändern, so können bis zu 256 zeilen eingelesen werden..
f = FreeFile
Cls
OPEN "index.php" FOR INPUT AS #f 'index.php ist 91474 byte groß
WHILE NOT EOF(f)
  LINE INPUT #f, Zeile(Zeilen)
  Zeilen+=1
  Locate 1, 1, 0
  If 23<Zeilen Then ?Zeile(23)
 WEND
Close #f
Sleep 'eingefügt auf speziellen Wunsch eines einzelnen FB-Freaks ;)
Vllt. sollteste das ma so probieren, dieser Code ist mit 0.16bSE getestet grinsen
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..

Zuletzt bearbeitet von ytwinky am 03.07.2006, 22:34, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
s-m-n



Anmeldungsdatum: 03.10.2005
Beiträge: 106
Wohnort: Pietling in Oberbayern / Deutschland

BeitragVerfasst am: 03.07.2006, 22:31    Titel: Antworten mit Zitat

Servus ytwinky,

Danke erstmal, haut hin.
mit welcher Version hast du den ersten getestet? Ich experimentier auch noch mal mit der 0.15, mit der gings glaub ich so, wie MisterD gemeint hat.

Ich will ja nicht meckern, aber das Fenster vom neuen Code schließt sich gleich wieder. Kann man da was gegen machen?

Das ist überhaupt recht dumm, dass das in der neuen FB geändert wurde. Naja, früher war halt alles besser.... grinsen

Danke!

Gruß s-m-n
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 03.07.2006, 22:39    Titel: Antworten mit Zitat

Hi s-m-n,
na den ersten Code habe ich gar nicht getestet, nur deinen kopiert und ein wenig geändert grinsen
Als Modem-User kann ich nicht nebenbei noch Code testen zwinkern
Der zweite ist wie oben beschrieben getestet..
..und auf deinen Wunsch hin auch geändert vor lachen auf dem Boden rollen
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
s-m-n



Anmeldungsdatum: 03.10.2005
Beiträge: 106
Wohnort: Pietling in Oberbayern / Deutschland

BeitragVerfasst am: 03.07.2006, 23:02    Titel: Antworten mit Zitat

Super, vielen Dank! Geht einwandfrei.

Gruß s-m-n
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: 04.07.2006, 08:57    Titel: Antworten mit Zitat

s-m-n hat Folgendes geschrieben:
innerhalb vom while...wend platziert, weil in der Datei "migrating.txt", die bei der Installation von FB 0.16 im Zielordner landet, steht, dass Variablen, die innerhalb des while...wend definiert wurden, außerhalb nicht mehr angezeigt werden.
Das konnte ich leider nicht finden, bei welcher Version steht denn das?
Oder brauch ich ne neue Brille cool

Zum Anderen, du hast die Strings doch außerhalb der WHILE..WEND Schleife definiert, also müsste es auch mit dem PRINT nach der Schleife gehen.

Gruß Volta
Zitat:
dieser Code ist mit 0.16bSE getestet
@ytwinky, ist das nicht schon FB 0.16b SP2 ? grinsen
_________________
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
s-m-n



Anmeldungsdatum: 03.10.2005
Beiträge: 106
Wohnort: Pietling in Oberbayern / Deutschland

BeitragVerfasst am: 04.07.2006, 15:18    Titel: Antworten mit Zitat

Der Dateiname lautet

FreeBASIC-v0.16b-win32.exe

Hilft dir das?

Gruß s-m-n
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: 04.07.2006, 17:06    Titel: Antworten mit Zitat

Ich habe mal meine Brille geputzt grinsen
du meist den Teil:
migrating.txt hat Folgendes geschrieben:
All compound statements now create implicit scope blocks
--------------------------------------------------------
......
Ok, das bezieht sich wirklich nur auf Variablen die vor dem Block(Schleife) nicht definiert waren, also in diesem Block das erste mal auftauchen.
Das war in deinem Prog nicht der Fall, also kannst du sie auch nach WHILE...WEND nutzen.
_________________
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
s-m-n



Anmeldungsdatum: 03.10.2005
Beiträge: 106
Wohnort: Pietling in Oberbayern / Deutschland

BeitragVerfasst am: 04.07.2006, 17:49    Titel: Antworten mit Zitat

Ja genau, das mein ich. Und du meinst, es sollte so wie ich es hab auch außerhalb der Schleife gehen? OK, ich versuchs gleich mal...

Danke!

Gruß s-m-n
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
s-m-n



Anmeldungsdatum: 03.10.2005
Beiträge: 106
Wohnort: Pietling in Oberbayern / Deutschland

BeitragVerfasst am: 04.07.2006, 18:54    Titel: Antworten mit Zitat

Ja, es funktioniert tatsächlich. Mein Prog ist fertig und sieht so aus:

Code:
rem Antenne v1 für Linux. Geschrieben im Juli 2006 von Simon Niederwinkler.

rem Danke an ytwinky und Volta für die schnelle und kompetente Hilfe, siehe
rem http://forum.qbasic.at/viewtopic.php?t=2817&sid=b2b4701104968c41c17d762c250c5a74

shell "rm index.php"
shell "wget http://www.antenne-salzburg.at/cms/index.php"

Dim As Integer Zeilen, f, i
Dim As String Zeile(2550), s ' je nach dem ändern, so können bis zu 256 zeilen eingelesen werden..

f = FreeFile
OPEN "index.php" FOR INPUT AS #f 'index.php ist 91474 byte groß
WHILE NOT EOF(f)
  LINE INPUT #f, Zeile(Zeilen)
  Zeilen+=1
WEND
Close #f

Cls

x$ = Zeile(23)
print "Jetzt auf der Antenne: "; MID$(x$, 38)

sleep


Mit dem MID$ lasse ich noch die überflüssigen PHP-Tags aus dem String entfernen.

Also danke an alle.

Gruß s-m-n
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 04.07.2006, 22:22    Titel: Antworten mit Zitat

Schönen Dank für die Blumen grinsen
Was ich nicht verstehe:
Offensichtlich steht das, was du wissen willst immer in Zeile 23..
..dann brauchst du doch nur bis dahin zu lesen und kannst das Ding zumachen. Dann kannst du Zeile fest dimensionieren..
..oder aber auch garnicht, denn du liest ja nur bis Zeile 23 ein
und die gibst du dann aus.
Daß die Datei vor ihrem Ende geschlossen wird, macht nix..
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
s-m-n



Anmeldungsdatum: 03.10.2005
Beiträge: 106
Wohnort: Pietling in Oberbayern / Deutschland

BeitragVerfasst am: 05.07.2006, 18:46    Titel: Antworten mit Zitat

Daran hab ich auch schon gedacht. Bringt das irgendwelche Vorteile?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 05.07.2006, 19:53    Titel: Antworten mit Zitat

Kaum vor lachen auf dem Boden rollen
außer, daß er vllt. schneller fertig ist grinsen
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
s-m-n



Anmeldungsdatum: 03.10.2005
Beiträge: 106
Wohnort: Pietling in Oberbayern / Deutschland

BeitragVerfasst am: 05.07.2006, 21:51    Titel: Antworten mit Zitat

Naja, mal sehen. Es sollte doch möglichst schnell gehen....

Danke für den Tipp!

Gruß s-m-n
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail 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