 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
SL
Anmeldungsdatum: 06.12.2009 Beiträge: 43
|
Verfasst am: 15.01.2010, 17:53 Titel: EURO-Zeichen im Text-Modus (Konsole) |
|
|
Bisher dachte ich, das Euro-Zeichen gibt es im Text-Modus nicht, da FB die Codepage der Konsole auf die cp 850 umschaltet, und die cp 850 hat nun mal kein Eurozeichen. Da beißt die Maus keinen Faden ab!
Doch anscheinend akzeptiert FB den DOS-Befehl "chcp" (Change Codepage). Ändert man die CP auf 1252, so werden bei PRINT die Zeichenketten des Editors 1:1 in FB ausgegeben. Das Problem der deutschen Sonderzeichen (ÄÜÖß) ist damit erledigt. Leider hat das einen Pferdefuß. Die - für mich sehr wichtigen - Rahmenzeichen aus der cp 850 sind dann ins Nirwana verschwunden (Doch im Hinterkopf schwebt mir da schon eine Lösung vor)
Am besten selber ausprobieren:
SHELL "chcp 1252"
LOCATE 1,1: PRINT STRING$(40,32) ' Lösche die Meldung der SHELL-Anweisung
LOCATE 1,1: PRINT "ÖÄÜöüä߀"
SLEEP
Was ich noch nicht geschafft habe: Bei Verwendung der Anweisung „SHELL“ gibt die Konsole immer eine unsinnige Erfolgsmeldung ab. Ich dachte mit < SHELL "ECHO OFF“ > lässt sich das abstellen. Doch irgendwie will es nicht. Weiß jemand eine Lösung?
PS: Das Ganze funktioniert natürlich nur, wenn der Editor selber auf cp 1252 eingestellt ist. Dies ist der Fall, wenn in Windows in der Systemsteuerung / Regions- und Sprachoptionen die Sprache "Deutsch" eingestellt ist. Ansonsten lässt sich das auch noch über die Registry kontrollieren. Da gibt es irgendwo den Namen "ACP" (Ansi-Codepage). Der Wert muss dann 1252 sein. |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 15.01.2010, 23:26 Titel: |
|
|
Zitat: | Bisher dachte ich, das Euro-Zeichen gibt es im Text-Modus nicht, da FB die Codepage der Konsole auf die cp 850 umschaltet
|
ich weiß ja nicht, wo du das märchen her hast, aber ich glaube, dir schon mehrmals erklärt zu haben, dass fb sowas nicht macht.
Zitat: | Doch anscheinend akzeptiert FB den DOS-Befehl "chcp" |
SHELL führt kommandozeilen-befehle aus. kaum zu glauben, dass das auch mit chcp geht, gell.
Zitat: | Was ich noch nicht geschafft habe: Bei Verwendung der Anweisung „SHELL“ gibt die Konsole immer eine unsinnige Erfolgsmeldung ab. Ich dachte mit < SHELL "ECHO OFF“ > lässt sich das abstellen. Doch irgendwie will es nicht. Weiß jemand eine Lösung? |
Pro SHELL-Befehl wird eine neue shell-session gestartet, d.h. ein ECHO OFF des vorherigen SHELL-Befehls macht dem nächsten SHELL-Befehl gar nix. Abhilfe:
Code: | SHELL "irgendwas.exe >NUL" |
_________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
SL
Anmeldungsdatum: 06.12.2009 Beiträge: 43
|
Verfasst am: 16.01.2010, 12:39 Titel: |
|
|
Meine Folgerung war, dass FB die Codpage bestimmt und darüber wacht, dass "chcp" nicht möglich ist. Doch da, wie du bereits schon mal geschrieben hast, FB auf die Codepage keinen Einfluss nimmt, ist meine Folgerung natürlich falsch.
(Übrigens, wer wissen will wie die Codepage in der Windows-Registry zu ändern ist, hier steht’s: Link . Allerdings ist das ein ziemlicher Aufwand.)
Falls jemand mein Code-Beispiel zum Umschalten auf die Codepage 1252 getestet hat, wird dies in den meisten Fällen nicht funktioniert haben. Ich habe leider vergessen darauf hinzuweisen, dass dies mit der voreingestellten Standart-Schriftart der Konsole nicht möglich ist. Wieso weiß ich nicht. Die Konsole bietet standardmäßig zwei Schriftarten an. Neben der voreingestellten Rasterschriftart noch die Schriftart "Lucida Console". Erfolgreich funktioniert das Umschalten der Codpage nur mit "Lucida Konsole" (Falls jemand noch weitere Schriftarten will, müssen die zunächst über die Registry geladen werden. Ich habe bisher nur die Schriftart "Consolas" geladen, da funktioniert die cp1252 auch problemlos)
Dank dem Tipp von Jojo ( >NUL) habe ich mein Beispiel etwas erweitert um zu demonstrieren, wie problemlos das Umschalten der Codepage funktioniert:
SHELL "chcp 1252 >NUL"
LOCATE 2,1: PRINT "Codepage 1252: ÖÄÜöüä߀"
SHELL "chcp 850 >NUL"
LOCATE 3,1: PRINT "Codepage 850: ÖÄÜöüä߀"
SLEEP |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 16.01.2010, 13:33 Titel: |
|
|
Zitat: | Meine Folgerung war, dass FB die Codpage bestimmt und darüber wacht, dass "chcp" nicht möglich ist. Doch da, wie du bereits schon mal geschrieben hast, FB auf die Codepage keinen Einfluss nimmt, ist meine Folgerung natürlich falsch.
|
Warum sollte ausgerechnet die Programmiersprache sowas festlegen? _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 16.01.2010, 14:31 Titel: |
|
|
Hatten wir nicht schon vor ein paar Tagen eine SL-initiierte Konsolendiskussion? Da wurde das doch auch schon geklärt *Am Kopf kratz* |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 16.01.2010, 15:33 Titel: |
|
|
Das war genau das selbe Thema, nur in einem anderen Thread... _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
SL
Anmeldungsdatum: 06.12.2009 Beiträge: 43
|
Verfasst am: 16.01.2010, 22:46 Titel: |
|
|
28398 hat Folgendes geschrieben: | Hatten wir nicht schon vor ein paar Tagen eine SL-initiierte Konsolendiskussion? Da wurde das doch auch schon geklärt *Am Kopf kratz* |
*Kopfnuss* hätte möglicherweise mehr geholfen. In meinem ersten Faden ging es um die Darstellung des Eurozeichens mittels Unicode. Hier geht es darum, wie das Gleiche mit Hilfe der Codepage und ohne Unicode möglich ist. Ansonsten: Nix für ungut!
Wobei das Problem, die Schriftart der Konsole (Fenstermodus) durch eine Anweisung in FB zu ändern, für mich immer noch ungelöst ist, trotz *Am Kopf kratz* und auch *Kopfnuss*. |
|
Nach oben |
|
 |
|
|
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.
|
|