Wie kann man Sonderzeichen und "" im Text ausgeben

Anfängerfragen zum Programmieren mit PureBasic.
Coder Pinhead
Beiträge: 234
Registriert: 27.02.2007 10:54
Wohnort: Germany

Wie kann man Sonderzeichen und "" im Text ausgeben

Beitrag von Coder Pinhead »

Beispiel:

MessageRequester("Coder Pinhead say","Hello "PureBasic" Community",0)

Ergebnis:
Line 1 - 'PureBasic' is not a valid operator

-----

Oder wen ich eine Consolen Anwendung Code macht der aus den Sonderzeichen immer nur Vierecke... Wie kann ich PureBasic dazu bringen die Sonderzeichen etc auszugeben? (öäüß...)
Windows 8.1 x64 | PureBasic v5.x x86/x64

Sämtliche Syntax, Tipp und Rechtschreibfehler unterliegen dem Copyright des Verfassers.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Help \ String \ Chr()

> Oder wen ich eine Consolen Anwendung Code macht der aus den Sonderzeichen immer nur Vierecke...
wenn du auf ner ANSI-console ausgeben willst, musst du dein proggi auch in ANSI schreiben, nicht in Unicode...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Coder Pinhead
Beiträge: 234
Registriert: 27.02.2007 10:54
Wohnort: Germany

Beitrag von Coder Pinhead »

Danke,

Edit:
-----

Es geht <)

Code: Alles auswählen

MessageRequester("Coder Pinhead say","Hello "+Chr(34)+"PureBasic"+Chr(34)+" Community",0)
-----
Kaeru Gaman hat geschrieben: > Oder wen ich eine Consolen Anwendung Code macht der aus den Sonderzeichen immer nur Vierecke...
wenn du auf ner ANSI-console ausgeben willst, musst du dein proggi auch in ANSI schreiben, nicht in Unicode...
So und jetzt für ganz Doofe -,-"
Was muss ich wo umstellen damit das dan ANSI ist?
Oder geht das nicht?
Zuletzt geändert von Coder Pinhead am 13.08.2007 18:54, insgesamt 1-mal geändert.
Windows 8.1 x64 | PureBasic v5.x x86/x64

Sämtliche Syntax, Tipp und Rechtschreibfehler unterliegen dem Copyright des Verfassers.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

gute frage... mich wundert das auch grad..

ich bekomm allerdings keine vierecke, sondern eben andere sonderzeichen...

ich weiß es nicht, habs nämlich noch nie gebraucht.

PS
ok, so gehts:

Code: Alles auswählen

OpenConsole()
a$ ="hall"+Chr(153)
Print(a$)
Input()
die ausgabe in der console erfolgt in "DOS-Erweitert", das ist die tabelle unter der ASCII-Tabelle in der Help.
also, wohl ein Microsoft-spezifisches format.
die speicherung eines string hingegen erfolgt in normalem ASCII,
deshalb stimmts nicht überein...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Coder Pinhead
Beiträge: 234
Registriert: 27.02.2007 10:54
Wohnort: Germany

Beitrag von Coder Pinhead »

Kaeru Gaman hat geschrieben:

Code: Alles auswählen

OpenConsole()
a$ ="hall"+Chr(153)
Print(a$)
Input()
Thanks :)
Windows 8.1 x64 | PureBasic v5.x x86/x64

Sämtliche Syntax, Tipp und Rechtschreibfehler unterliegen dem Copyright des Verfassers.
Andreas
ToolbarKönig
Beiträge: 142
Registriert: 08.09.2004 08:33

Beitrag von Andreas »

Compiler auf Unicode umstellen, dann geht es ohne Konvertierung oder

Code: Alles auswählen

Procedure PrintAnsi(v.s)
   CharToOem_(v.s,v.s)
   PrintN(v.s)
EndProcedure

OpenConsole()
PrintN("Hello "+Chr(34)+"PureBasic"+Chr(34)+" Community") 
PrintAnsi("Hello "+Chr(34)+"PureBasic"+Chr(34)+" Community")
w$ = Input()
CloseConsole()
Gruss Andreas
Coder Pinhead
Beiträge: 234
Registriert: 27.02.2007 10:54
Wohnort: Germany

Beitrag von Coder Pinhead »

Andreas hat geschrieben:

Code: Alles auswählen

Procedure PrintAnsi(v.s)
   CharToOem_(v.s,v.s)
   PrintN(v.s)
EndProcedure

OpenConsole()
PrintN("Hello "+Chr(34)+"PureBasic"+Chr(34)+" Community") 
PrintAnsi("Hello "+Chr(34)+"PureBasic"+Chr(34)+" Community")
w$ = Input()
CloseConsole()
Also das ganze über eine Procedure zu lösen ist auch echt gut.
Danke für den Tip :)
Windows 8.1 x64 | PureBasic v5.x x86/x64

Sämtliche Syntax, Tipp und Rechtschreibfehler unterliegen dem Copyright des Verfassers.
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Soweit ich weiß, sind die Zeichen bei Unicode und ASCII gleich.

Also zu mindest die ersten 128 im ASCII haben im Unicode die gleiche Zahl. Nicht jedoch die gleiche codierung.

Ein Tabulator zum Beispiel ist bei ASCII die Nummer 9
und im Unicode ist es ebenfalls an neunter Stelle.

Du musst also auch für ein Programm ist ASCII nicht wirklich deinen Code ändern. Es sei denn, du benutzt Zeichen, die darüber hinaus gehen sollen.

Ich weiß nicht, ob ich mich so ausgedrückt habe, dass ihr mich verstanden habt :? Wenn nicht, auch nicht schlimm /:->

http://unicode.e-workers.de/

Für das Internet würde ich UTF-8 empfehlen.
Mit Unicode scheint Firefox etwas Schwierigkeiten zu haben.

Gruß, Folker :allright:
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

>> Ich weiß nicht, ob ich mich so ausgedrückt habe, dass ihr mich verstanden habt
Ja, worum gehts :mrgreen:
In einer Console wird OEM genutzt, in Windows ANSI
Um den Text umzuwandeln gibts 2 API Funktionen, die jeweils 2 Parameter haben:

Code: Alles auswählen

OemToChar_(
CharToOem_(
Man kann der Einfachheit halber 2x denselben String verwenden, wenn der
alte nicht mehr benötigt wird, siehe Code von Andreas.

FireFox hat garkeine Schwierigkeiten :mrgreen:

Setzen 6
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

yo, hauptsache mal
Bild
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten