Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
s-m-n

Anmeldungsdatum: 03.10.2005 Beiträge: 106 Wohnort: Pietling in Oberbayern / Deutschland
|
Verfasst am: 03.07.2006, 18:47 Titel: Problem mit while.....wend in FB 0.16 |
|
|
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 |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 03.07.2006, 18:58 Titel: |
|
|
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
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 |
|
 |
s-m-n

Anmeldungsdatum: 03.10.2005 Beiträge: 106 Wohnort: Pietling in Oberbayern / Deutschland
|
Verfasst am: 03.07.2006, 19:08 Titel: |
|
|
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 |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 03.07.2006, 19:39 Titel: |
|
|
Hi s-m-n,
Das hat wunderbar gefunzt, die Zeile stand wie ne 1  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
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 |
|
 |
s-m-n

Anmeldungsdatum: 03.10.2005 Beiträge: 106 Wohnort: Pietling in Oberbayern / Deutschland
|
Verfasst am: 03.07.2006, 22:31 Titel: |
|
|
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....
Danke!
Gruß s-m-n |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 03.07.2006, 22:39 Titel: |
|
|
Hi s-m-n,
na den ersten Code habe ich gar nicht getestet, nur deinen kopiert und ein wenig geändert
Als Modem-User kann ich nicht nebenbei noch Code testen
Der zweite ist wie oben beschrieben getestet..
..und auf deinen Wunsch hin auch geändert
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 |
|
 |
s-m-n

Anmeldungsdatum: 03.10.2005 Beiträge: 106 Wohnort: Pietling in Oberbayern / Deutschland
|
Verfasst am: 03.07.2006, 23:02 Titel: |
|
|
Super, vielen Dank! Geht einwandfrei.
Gruß s-m-n |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 04.07.2006, 08:57 Titel: |
|
|
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
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 ?  _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
s-m-n

Anmeldungsdatum: 03.10.2005 Beiträge: 106 Wohnort: Pietling in Oberbayern / Deutschland
|
Verfasst am: 04.07.2006, 15:18 Titel: |
|
|
Der Dateiname lautet
FreeBASIC-v0.16b-win32.exe
Hilft dir das?
Gruß s-m-n |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 04.07.2006, 17:06 Titel: |
|
|
Ich habe mal meine Brille geputzt
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 |
|
 |
s-m-n

Anmeldungsdatum: 03.10.2005 Beiträge: 106 Wohnort: Pietling in Oberbayern / Deutschland
|
Verfasst am: 04.07.2006, 17:49 Titel: |
|
|
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 |
|
 |
s-m-n

Anmeldungsdatum: 03.10.2005 Beiträge: 106 Wohnort: Pietling in Oberbayern / Deutschland
|
Verfasst am: 04.07.2006, 18:54 Titel: |
|
|
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 |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 04.07.2006, 22:22 Titel: |
|
|
Schönen Dank für die Blumen
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 |
|
 |
s-m-n

Anmeldungsdatum: 03.10.2005 Beiträge: 106 Wohnort: Pietling in Oberbayern / Deutschland
|
Verfasst am: 05.07.2006, 18:46 Titel: |
|
|
Daran hab ich auch schon gedacht. Bringt das irgendwelche Vorteile? |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 05.07.2006, 19:53 Titel: |
|
|
Kaum
außer, daß er vllt. schneller fertig ist
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 |
|
 |
s-m-n

Anmeldungsdatum: 03.10.2005 Beiträge: 106 Wohnort: Pietling in Oberbayern / Deutschland
|
Verfasst am: 05.07.2006, 21:51 Titel: |
|
|
Naja, mal sehen. Es sollte doch möglichst schnell gehen....
Danke für den Tipp!
Gruß s-m-n |
|
Nach oben |
|
 |
|