Seite 1 von 2

Wie kann man Sonderzeichen und "" im Text ausgeben

Verfasst: 13.08.2007 18:35
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? (öäüß...)

Verfasst: 13.08.2007 18:39
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...

Verfasst: 13.08.2007 18:40
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?

Verfasst: 13.08.2007 18:48
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...

Verfasst: 13.08.2007 18:57
von Coder Pinhead
Kaeru Gaman hat geschrieben:

Code: Alles auswählen

OpenConsole()
a$ ="hall"+Chr(153)
Print(a$)
Input()
Thanks :)

Verfasst: 13.08.2007 19:01
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()

Verfasst: 13.08.2007 19:56
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 :)

Verfasst: 14.08.2007 11:01
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:

Verfasst: 14.08.2007 11:16
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

Verfasst: 14.08.2007 12:13
von Kaeru Gaman
yo, hauptsache mal
Bild