Seite 1 von 1

Sonderzeichen

Verfasst: Di, 08. Mär 2016 8:32
von Manfred
mein Projekt stammt eigentlich aus Clipper Zeiten. Mein Vorgänger hatte dann wohl auch einen Editor, der mit einem OEM Zeichensatz arbeitete. Die VX arbeitet aber im Ansi Zeichensatz. Jetzt habe ich natürlich jede Menge Sonderzeichen Umlaute usw. darin, die man so nicht entziffern kann. Also werden die wohl alle umgewandelt werden müssen. Das geht ja noch aber wie mache ich das mit dem Euro Zeichen? Wenn ich das eintippe erscheinen auf dem Bildschirm wilde Zeichen. Und jedesmal Chr(128) eintippen ist auch nicht gerade die tolle Lösung.

Re: Sonderzeichen

Verfasst: Di, 08. Mär 2016 8:49
von Martin Altmann
Moin,
hast Du die Zeile bei Dir drin?

Code: Alles auswählen

SetLocale( NLS_ICURRENCYEURO, "1" )
Viele Grüße,
Martin

Re: Sonderzeichen

Verfasst: Di, 08. Mär 2016 8:53
von Manfred
ja, die habe ich am Anfang eingebaut. Ich dachte auch, damit wäre es erledigt.

Re: Sonderzeichen

Verfasst: Di, 08. Mär 2016 8:58
von Martin Altmann
Für die Ausgabe: Das Eurosymbol selber ist chr( 213 ) (zumindest bei OEM)

Viele Grüße,
Martin

Re: Sonderzeichen

Verfasst: Di, 08. Mär 2016 9:00
von Manfred
in dem Fall CHR(128) aber so mache ich das derzeit. Nur wenn man TExtkombinationen usw.macht, dann wird das recht aufwändig und unübersichtlich.

Re: Sonderzeichen

Verfasst: Di, 08. Mär 2016 9:24
von AUGE_OHR
Manfred hat geschrieben:in dem Fall CHR(128) aber so mache ich das derzeit. Nur wenn man TExtkombinationen usw.macht, dann wird das recht aufwändig und unübersichtlich.
wie wäre es mit

Code: Alles auswählen

#define EuroZeichen CHR(128)

Re: Sonderzeichen

Verfasst: Di, 08. Mär 2016 10:28
von Manfred
ja Jimmy, manchmal ist es schon echt peinlich. :banghead:

Re: Sonderzeichen

Verfasst: Mi, 09. Mär 2016 7:07
von brandelh
Wenn die EXE auf ANSI eingestellt ist, kann ich € direkt eintippen (Workbench) und das wird einwandfrei angezeigt (Quellcode ANSI).

Wenn du diesen einfachen DEFINE machst, musst du das in jeder PRG machen und bei einer Umstellung auf ANSI alle ändern.
Ich würde daher eine Funktionvorschlagen, die das Euro Zeichen zurückgibt:

Code: Alles auswählen

*--------------------------------------------------------------------------------
function IsOEM()
return ( set(_SET_CHARSET) = 1 )
*--------------------------------------------------------------------------------
function IsAnsi()
return ( set(_SET_CHARSET) = 0 )
*--------------------------------------------------------------------------------
function EuroZeichen()
   If IsOEM()
      cEuroZeichen := chr( 213 ) 
   else
      cEuroZeichen := chr(128)      
   endif    
return cEuroZeichen
NLS_ICURRENCYEURO muss natürlich auch noch stimmen.