Zeichensatz nerft...!

Eigentlich ist mir die Frage peinlich, aber es kann sonst niemand helfen ... :)

Moderator: Moderatoren

GrillenHirni
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 116
Registriert: Do, 18. Jul 2013 11:56
Kontaktdaten:

Zeichensatz nerft...!

Beitrag von GrillenHirni »

Guten Abend zusammen - ich bins wieder... ächz...

Jetzt habe ich ein nerfiges Problem mit den ZeichenSätzen. In den letzten
zwei Tagen bin ich auch ein wenig erschrocken, wo ich hier im Forum die
Beiträge über SonderZeichen und Umlaute gelesen hab. Mit CodePages
und KonvertierEskapaden bin ich leider gar nicht fit...

Das Problem, wo ich hab, erlebe ich ungefähr wie folgt:

VIO-Modus / GUI-Modus (SET CHARSET TO ANSI)

CHR(45) "-" unterbrochener Strich / Im GUI-Modus:unterbrochener Strich
CHR(61) "=" unterbrochener Doppelstrich / Im GUI-Modus:durchgezogener Doppelstrich
CHR(196) durchgezogener Strich / Im GUI-Modus:Sonderzeichen
CHR(205) durchgezogener Doppelstrich / Im GUI-Modus:Sonderzeichen

Gerne würde ich auch im GUI-Modus den drruchgezogenen Strich (ASCI 196) und den
unterbrochenen Doppelstrich (ASCII 205) darstellen.

Mit den mir naheliegendsten Mitteln wie Wechsel des ZeichenSatzes, convToAnsiCP(..)
oder convToOEMCP(..) habe ich es bisher nicht geschafft...

Kann jemand helfen?

Herzliche Grüsse und e gueti Nacht...!
Grilli
Zuletzt geändert von GrillenHirni am Mo, 12. Mär 2018 22:52, insgesamt 4-mal geändert.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Zeichensatz nerft...!

Beitrag von Jan »

Versuch mal nationMsg(200)[n] mit n = 1, 2, 3, 4, oder 5

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Zeichensatz nerft...!

Beitrag von AUGE_OHR »

GrillenHirni hat geschrieben: Fr, 23. Feb 2018 22:05 Kann jemand helfen?
wie wäre es die alten Cl*pper Konstanten zu verwenden ?

Code: Alles auswählen

#Include "box.ch"
   PROCEDURE Main 
      CLS 
 
      @ 7,10,17,60 BOX B_SINGLE        // Einfache Linie in Standard- 
      Inkey(0)                         // Systemfarbe 
 
      @ 7,10,17,60 BOX B_DOUBLE COLOR "W+/B" 
                                       // Doppelte Linie in Hellweiß 
      Inkey(0)                         // auf blauem Hintergrund 

 
      @ 7,10,17,60 BOX B_SINGLE       // Einfache Linie 
      ?? "Box-String:", B_SINGLE      // ohne Füllzeichen 
      Inkey(0) 
 
      @ 7,10,17,60 BOX B_DOUBLE + Chr(176) COLOR "N/BG" 
                                            // Doppelte Linie 
      ?? "Box-String:", B_DOUBLE + Chr(176) // Mit Füllzeichen 
      Inkey(0) 

   RETURN 
gruss by OHR
Jimmy
GrillenHirni
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 116
Registriert: Do, 18. Jul 2013 11:56
Kontaktdaten:

Re: Zeichensatz nerft...!

Beitrag von GrillenHirni »

Guten Morgen

Ich bin Euch sehr dankbar für Eure Tipps!

Leider konnte ich mein Problem anscheinend tabellarisch nicht korrekt
darstellen...

Jan - die FUNCTION nationMsg war mir völlig unbgekannt. Ist die hier irgendwo
dokumentiert, oder wie kommt man an solche InsiderInformationen? Ich hab
Zeichensatz ANSI eingestellt und schön gestaunt, was sie mir zurück gegeben hat.
Leider nicht den durchgezogenen Strich ASC(196) und auch nicht den durchgezogenen
DoppelStrich ASC(205). Wenn die Funktion irgendwo dokumentiert wäre, könnte ich
eventuell noch weitere Varianten versuchen - zum Beispiel ist mir da nicht klar,
was der Parameter 200 bewirkt.

Jimmy - Deinen Ansatz muss ich noch versuchen zu testen - da muss ich gucken, wie
ich das mache - die alten ClipperBefehle, welche die Konstanten B_SINGLE und B_DOUBLE
verarbeiten können habe ich ja in XBase im GUI-Modus nicht mehr zur Verfügung?

Kann es dein, das man in Xbase keinen durchgezogenen Strich ASC(196) und keinen
durchgezogenen DoppelStrich ASC(205) ausgeben kann...?

Herzliche Grüsse und ein schönes WochenEnde..!
Grilli
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Zeichensatz nerft...!

Beitrag von Jan »

Wenn Du eine OEM-Oberfläche hast darfst Du kein SET CHARSET TO ANSI einbauen. Das bringt alles komplett durchennander. Mich hat das fast in den Wahnsinn getrieben als ich das mal bei einem Kunden versucht habe. Seitdem lasse ich das als OEM laufen und konvertiere bei Bedarf nur noch nach ANSI oder UTF-8. Wichtig: Wenn Du dbf mit ANSI nutzt, dann mußt Du vor der Erzeugung neuer dbf auf ANSI umschalten, und danach wieder zurück auf OEM.

Und Du hast Recht: nationMsg ist komplett undokumentiert. Ich nutze das bei besagtem Kunden, um dort Linien zu zeichnen. Brauche ich komplette Boxen benutze ich Jimmys Ansatz.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 76 Mal

Re: Zeichensatz nerft...!

Beitrag von ramses »

Hi

wenn du die Zeichen 196/205 zurück willst musst du den Zeichensatz "MS Line Draw" laden. Mit diesem kannst du wie früher Linien Drucken oder in einem XBPCRT Fenster anzeigen.

Gruss Carlo
Valar Morghulis

Gruss Carlo
GrillenHirni
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 116
Registriert: Do, 18. Jul 2013 11:56
Kontaktdaten:

Re: Zeichensatz nerft...!

Beitrag von GrillenHirni »

Hallo Jan

Damit werde ich bestimmt weiterkommen...

Wo warst Du vor zwei Wochen, wo ich meine Anwendungen komplett auf CHARSET ANSI
umgestellt habe? Und jetzt scheitere ich an diesen zwei Strichlein - ich warte in der
GummiZelle auf Dich...

Ah - kommt mir in den Sinn - das mit der Oberfläche konnte ich anlässlich der Umstellung
noch händeln - das hat eigentlich mehr oder weniger geklappt...

Wie hast Du denn das raus gefunden mit nationMsg - mir fehlen solche Eingebungen...
Ich würde eben auch gerne Linien zeichnen - des betrifft vor allem die Ausgaben auf den
Drucker...

Was ist denn der Nachteil, wenn die Dbf-Dateien "als ANSI laufen"? Das macht mir im
Moment gerade Angst - ich habe Anwendungen seit Jahren standardmässig - also mit
CHARSET OEM - laufen und habe jetzt auf CHARSET ANSI umgestellt... Hätte ich da
irgendetwas beachten sollen? Ich entnehme das Deiner letzten Nachricht zwischen
den Zeilen und fange mich an zu fürchten...?

Was ich auch nicht verstehe - wie kann ich in einer GUI-Umgebung mit Jimmies Ansatz
Boxen zeichnen... Abgesehen davon, dass ich das Problem Boxen zeichnen zur Zeit
nicht hab, aber das könnte ja auch noch irgendwann kommen...

Der Tipp von Ramses ist auch interessant - ich möchte aber die Zeichen 196/205 in einer
GUI-Umgebung (nicht XbpCRT) zurück...?

Ich kann es kaum glauben, dass das mit ANSI so ein Krampf sein soll...

Herzliche Grüsse!
Grilli
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Zeichensatz nerft...!

Beitrag von Jan »

In GUI-Anwendungen läuft alles komplett anders. Da mußt Du das alte Zeichen-Denken aufgeben. Da kannst Du z. B. mit GraLine oder GraBox arbeiten.

Zu ANSI und OEM: Das,was eingestellt ist im Programm zu dem Moment der Erzeugung einer dbf, wird auf die dbf genutzt. Ist die dbf erstmal in einem Modus erstellt ist die Einstellung im Programm egal, das regelt Xbase++ dann ganz automatisch. Im Header der dbf wird der zu nutzende Zeichensatz gespeichert, und das berücksichtigt Xbase++ dann beim lesen und schreiben

OEM-Anwendungen würde ich nach meinen bisherigen Erfahrungen immer mit OEM-Zeichensatz nutzen, GUI-Programme immer mit ANSI. Und will ich in einer Umgebung mit entsprechendem Zeichensatz eine dbf mit dem anderen erstellen, muß ich während der Erzeugung der dbf auf den jeweiligen Zeichensatz umstellen.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
GrillenHirni
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 116
Registriert: Do, 18. Jul 2013 11:56
Kontaktdaten:

Re: Zeichensatz nerft...!

Beitrag von GrillenHirni »

Entschuldige Jan, dass ich Dich grad so beanspruche, aber das wird jetzt richtig
spannend für mich...

Vielleicht habe ich ja noch ein grösseres Problem, als die beiden Strichlein...

Also unsere Anwendungen laufen seit Jahren mit standardmässig CHARSET OEM.

Jetzt hab ich vor einer Woche umgestellt und in meiner sorglosen Naivität
anwendungsübergreifend SET CHARSET TO ANSI bestimmt.

Wir haben tausende von DbfDateien, die nun anscheinend mit CHARSET OEM
erstellt wurden.

Deine letzte Nachricht habe ich so verstanden, dass die Information für den
ursprünglichen Zeichensatz in der DbfDatei vorhanden ist und die Datei weiter
mit dem Zeichensatz gepflegt wird, mit dem sie erzeugt worden ist.

Den letzten Teil habe ich nicht ganz verstanden - ganz langsam - die Version
für GrillenHirnis: im GUI-Programm werden jetzt neue Dateien mit ZeichenSatz
ANSI erzeugt und gepflegt. Wenn ich weiter OEM-Dateien haben möchte, stelle
ich bei der Erzeugung der Datei den ZeichenSatz auf OEM um.

Gibt es jetzt irgendwelche Nachteile, wenn die Dateien neu mit ANSI erzeugt
und gewartet werden, während die alten Dateien mit OEM bedient werden?

Ich werde dann insgesamt die alten Dateien mit OEM und die neuen Dateien
mit ANSI haben. Hat einer der Zeichensätze Nachteile? Ich könnte im Moment
wieder zurück auf OEM - in einem halben Jahr würde es aber nichts mehr
bringen...?

GraLine oder GraBox kann ich nicht gut verwenden - ich möchte diese Linien
als Strings ausgeben: Zeile:=RECPLICATE(CHR(196),nLenZeile)

Danke für Deine Unterstützung
Grilli
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Zeichensatz nerft...!

Beitrag von Jan »

Noch enm,al: In GUI kannst Du Linien nur mit GraLine oder GraBox zeichnen. Das alte Zeichen-Zeichnen klappt nicht mehr. Klar kannst Du pixelgenau Zeichen ausgeben. Aber dann mußt Du auf OEM umstellen, weil in ANSI die Linienzeichen halt nicht mehr vorhanden sind.

Und ja: Xbase++ erkennt, ob eine dbf OEM oder ANSI erstellt wrude, und behandelt die entsprechend. Trotzdem erscheint es mir sinnvoll das überall gleich zu handhaben.

Ich muß gestehen das ich keine Erfahrungen mit GUI-Programmen in OEM-Modus habe. Ich schätze mal, das sollte gehen. Aber da würde ich vorher vorsichtshalber mal die Hilfe konsultieren.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Zeichensatz nerft...!

Beitrag von AUGE_OHR »

ich hatte VIO gelesen ... dafür ist BOX.CH gedacht
unter GUI wird alles mit den GRA* Befehlen gemacht
GrillenHirni hat geschrieben: Sa, 24. Feb 2018 12:09 GraLine oder GraBox kann ich nicht gut verwenden - ich möchte diese Linien
als Strings ausgeben: Zeile:=RECPLICATE(CHR(196),nLenZeile)
du kannst doch

Code: Alles auswählen

   GraStringAt( oPS, aPos, Zeile )
benutzen ... aber das sieht unter GUI nicht gut aus [-X
wenn es die um die Länge des Strings geht : du musst jetzt in Pixeln "rechnen" :badgrin:

dazu dient nun GraQueryTextBox() welches dir X.Y Koordinaten eines Rechtecks ausgibt.
zu beachten ist das es jeweils vom aktiven Font abhängig ist :!:

Code: Alles auswählen

   Zeile := RECPLICATE(CHR(196),nLenZeile)

   // GraQueryTextBox()
   //
   aTxtSize := GraQueryTextBox( oPS, Zeile)

   // Size of Box
   //
   aSize[1] := aTxtSize[3][1]-aTxtSize[1][1]
   aSize[2] := aTxtSize[1][2]-aTxtSize[2][2]
wenn die Line über die ganze Papier Breite gehen soll

Code: Alles auswählen

  aSize := oPrinter:device() :paperSize()
die verschiedenen Linien Typen setzt man nun mit GraSetAttrLine()

Code: Alles auswählen

  aAttr := Array( GRA_AL_COUNT )            // declare
  aAttr[ GRA_AL_TYPE ] := GRA_LINETYPE_DOT  // Type
  GraSetAttrLine( oPs, aAttr ) 

  GraLine( oPs, { 1, nY }, { aSize[1]-2 , nY } )
---

DBF, welche mit DBFNTX verwendet werden sind immer OEM :!:
wenn du ANSI haben willst musst du schon auf DBFCDX gehen.

Stichworte : GraQueryTextBox() GraSetAttrLine() GraLine()
gruss by OHR
Jimmy
GrillenHirni
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 116
Registriert: Do, 18. Jul 2013 11:56
Kontaktdaten:

Re: Zeichensatz nerft...!

Beitrag von GrillenHirni »

So - jetz hab ich doch einiges gelernt - ich hoffe, das Wesentliche ist dabei...

Nun hab ich das Gefühl, ich bin trotz den beiden Strichlein in der GUI-Umgebung mit
ANSI auf dem richtigen Weg.

Was die Strichlein betrifft: ich habe eine PrinterKlasse - die arbeitet natürlich mit
den GrafikBefehlen. Der Klasse wird der Parameter aZeile übergeben - die Zeilen
werden mit GraStringAT(..) ausgegeben - da muss ich mir was überlegen, wie ich
die Anweisung "Achtung Strichlein" aus der vorhanden DruckVorbereitung umsetzen
kann.

Wegen den Dbf konnte mich auch Jimmy etwas beruhigen...

Zum lernen:

Ich habe eine Dbf die mit ZeichenSatz OEM erstellt wurde.

Ich erzeuge die gleiche DbfStruktur leer mit ZeichenSatz ANSI.

In die DBbANSI appende ich die DatenSaütze aus der DbfOEM.

In der DbfANSI habe ich nun die Daten mit ZeichenSatz ANSI?

Möglicherweise kommt es auf das Tool an, mit dem ich das mache...?

Danke, danke, danke!
Grilli
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Zeichensatz nerft...!

Beitrag von AUGE_OHR »

Cl*pper DBF kennen nur OEM wobei die AMIs ja "ANSI als OEM" haben.
solche DBF Dateien haben 0x03 als erstes Byte im DBF Header stehen ... was aber auch FoxPro ohne Memo hat

Xbase++ hat nun DBFDBE_ANSI ... keine Ahnung was das macht oder ob jemand damit arbeitet aber es ist IMHO nicht Cl*pper kompatible.
ich erzeuge die gleiche DbfStruktur leer mit ZeichenSatz ANSI.
ok
In die DBbANSI appende ich die DatenSaütze aus der DbfOEM.
"wie" :?:
einzeln mit ConvToAnsiCP( cOem ) :?:

wichtig bei der ganzen Sache ist nur das z.b. DbSeek() dann immer noch funktioniert ... auch bei Sonderzeichen :!:

wenn du deine "neue" DBF überprüfen willst :
Hubert hat in der Wissensbasis die CLASS HB_DBF_INFO_CLASS eingestellt

Code: Alles auswählen

  oDBF := HB_DBF_INFO(cDBF)
  ? "NAME        ",  oDBF:NAME
  ? "FULLNAME    ",  oDBF:FULLNAME
  ? "PATH        ",  oDBF:PATH
  ? "DBFDBE      ",  oDBF:DBFDBE
  ? "IsAnsi      ",  oDBF:IsAnsi
  ? "CodePage    ",  oDBF:CodePage
  ? "OpenInfos   ",  oDBF:OpenInfos
  ? "Header      ",  oDBF:Header
  ? "LastRec     ",  oDBF:LastRec
  ? "RecSize     ",  oDBF:RecSize
  ? "FileSize    ",  oDBF:FileSize
  ? "FCount      ",  oDBF:FCount
  ? "dbStruct    ",  oDBF:dbStruct
  ? "IsMemo      ",  oDBF:IsMemo
  ? "MemoFullName",  oDBF:MemoFullName
  ? "MemoFileName",  oDBF:MemoFileName
  ? "LUpdate     ",  oDBF:LUpdate
  ? "Encrypted   ",  oDBF:Encrypted
  ? "Error       ",  oDBF:Error
  WAIT
gruss by OHR
Jimmy
DelUser01

Re: Zeichensatz nerft...!

Beitrag von DelUser01 »

Jan hat geschrieben: Sa, 24. Feb 2018 11:20Wenn Du eine OEM-Oberfläche hast darfst Du kein SET CHARSET TO ANSI einbauen
Dürfen schon - man muss nach der benötigten Codesequenz auch wieder zurückschalten...
DelUser01

Re: Zeichensatz nerft...!

Beitrag von DelUser01 »

Hallo Grilli

die Basis meiner Programme ist XbpCrt. Noch unmengen Module mit den Primitiv-Linien.
In den gesamten GUI-Dialogen habe ich wie Jan beschreibt mit GRA die Linien gemalt. Die GUI-Fenster sehen eben anders aus - darüber hat sich noch keiner beschwert - nur wenn ich die in den CRT-Fenstern weglasse :-)
Warum willst Du unbedingt die GUI-Fenster wie die von CRT aussehen lassen? das klappt doch früher oder später eh' nicht...
GrillenHirni
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 116
Registriert: Do, 18. Jul 2013 11:56
Kontaktdaten:

Re: Zeichensatz nerft...!

Beitrag von GrillenHirni »

Hallo Roland -

Ich möchte nicht die GUI-Fenster wie die von CRT aussehen lassen...

Mein Problem ist möglicherweise, dass ich bei bei der DatenAusgabe
die DatenAufbereitung und die Ausgabe strikte getrennt hab und
ausserdem, dass ich schliesslich dass ich die GUI-Anwendungen nicht
völlig neu geschrieben, sondern aus VIO-Versionen migriert habe.

Jetzt hab ich aus der Aufbereitung das Array aZeile, dass ich an die
Ausgabe - beispielsweise eine Printerklasse, als Parameter übergebe.

Das bedeutet, eine Unterstreichung nimmt im Array aZeile ein
Element Zeile ein - unterstrichen wird mit ASC(196) und doppelt
unterstrichen wird mit ASC(205).

Leider kommen bei der PrinterKlasse mit CHARSET ANSI plötzlich
nicht mehr die gewünschten Strichlein raus, sondern irgendwelche
komische Sonderzeichen.


Was Jimmies Frage betrifft wegen dem appenden - was kommt
raus bei dem uralten dBase mit APPEND oder mit CLIPPER? Welchen
Zeichensatz hab ich dann in der unter ZeichenSatz OEM erzeugten Datei..?

Diese DBF_INFO_CLAS von Hubert schaue ich mir sehr gener mal
an, wenn ich sie finde...!

Herzliche Grüsse und einen schönen Sonntag!
Grilli
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9343
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 358 Mal
Kontaktdaten:

Re: Zeichensatz nerft...!

Beitrag von Tom »

Hallo, Grillenhirni.

DBFNTX-DBFs sind immer im OEM-Zeichensatz; die Engine konvertiert je nach Einstellungen automatisch. Darüber musst Du Dir keine Sorgen machen. Es gibt zwei andere Probleme. Das erste ist, dass Dein Quellcode, der in OEM ist, jetzt möglicherweise als ANSI interpretiert wird. Schau mal nach den Compilerschaltern, da gibt es einen für "Quellcode ist OEM". Das zweite Problem besteht darin, dass ANSI-OEM-Konvertierungen vor und zurück nicht eindeutig sind, vor allem außerhalb des 7-Bit-Bereichs. Bestimmte Zeichen bekommt man nicht zurück, wenn man sie aus OEM nach ANSI und dann wieder nach OEM konvertiert. Ob das in Deinem Fall relevant ist, musst Du selbst ausprobieren. Es gibt auch nicht alle OEM-Zeichen im ANSI-Zeichensatz - und umgekehrt. Genau deswegen ist die Konvertierung nicht eindeutig.
Herzlich,
Tom
GrillenHirni
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 116
Registriert: Do, 18. Jul 2013 11:56
Kontaktdaten:

Re: Zeichensatz nerft...!

Beitrag von GrillenHirni »

Hallo Tom

Jetzt kommts der Sache glaube ich näher - vielen Dank für diese Tipps!

Wegen den DbfDateien bin ich jetzt endgültig beruhigt.

Was die Strichlein betrifft, hatte ich schon vage Gedanken, dass es eventuell
auch mit den QuellCodes zu tun hätte... Daraus leite ich ein bisschen ab, dass
es dann auch vom Editor abhängt, mit dem die QuellCodes erstellt wurden.

Die BildschirmMenüs und Funktionen für die DateiBeschreibungen codiere
ich mit einem selbst geschriebenen Tool und könnte dort den ZeichenSatz
noch auswählen...

Den Umstand, dass beim zurück konvertieren nicht unbedingt das gleiche
Zeichen zurück kommt, habe ich beim rum pröbeln bemerkt - das hatte mich
ziemlich verwirrt und ich konnte es einfach nicht glauben - dachte ich hab
irgendwo weiss ich was falsch gemacht... Das ist natürlich dicke Post und
macht das ganze Konzept nicht unbedingt stabiler...

Ich stelle mir das so vor, dass wenn ich in einer Schlaufe n mal konvertiere
und zurück konvertiere (convToANSI(convToOEM(Char)) habe ich schliesslich
weiss ich was für ein Zeichen, aus dem ich das ursprüngliche Zeichen nie mehr
ableiten kann - eine tolle Idee für einen Verschlüsselungsalgorythmus...
Würde natürlich nicht mehr funktionieren, wenn es sich um ein Zeichen
handelt, welches schon beim ersten oder zweiten Umgang korrekt zurück
konvertiert wird...

Also herzlichen Dank für die Horizonterweiterung und einen schönen Abend...!
Grilli
GrillenHirni
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 116
Registriert: Do, 18. Jul 2013 11:56
Kontaktdaten:

Re: Zeichensatz nerft...!

Beitrag von GrillenHirni »

Anscheinend stehen ASCII 196 und ASCII 205 weder im OEM- noch im ANSI-
ZeichenSatz zur Verfügung...
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Zeichensatz nerft...!

Beitrag von brandelh »

:arrow: https://de.wikipedia.org/wiki/Codepage_850

hier findest du CD = chr(205) als doppel Linie und C4 = chr(196) als einfache Linie ... das wird auch auf einem XbpCRT dargestellt,
in Unicode sind die Zeichen dann wohl auch wieder vorhanden (4 stellige Werte), aber im normalen ANSI Zeichensatz nicht.

Wobei natürlich chr(205) und chr(196) in Ansi enthalten sind, nur zeigen sie ein anderes Aussehen ;-)
Gruß
Hubert
GrillenHirni
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 116
Registriert: Do, 18. Jul 2013 11:56
Kontaktdaten:

Re: Zeichensatz nerft...!

Beitrag von GrillenHirni »

Hallo Hubert -

das könnte mir entscheident weiter helfen...!

Wie kann ich denn die beiden Zeichen in einer GUI-Umgebung darstellen
und auf Bildschirm, Drucker und in Datei ausgeben?

Herzliche Grüsse...!
Grilli
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Zeichensatz nerft...!

Beitrag von brandelh »

Was genau meinst du mit GUI ?

Für XbpDialog() basierte Bildschirme nimmt man das gar nicht mehr, sondern malt mit Linien (entweder XbpStatic() mit verschiedenen breiten und tiefen, oder Gra-Funktionen (GraLine(), GraBox() etc.)
Für XbpCrt() basierte Bildschirme, macht man das wie bisher, OEM Font (Alaska Crt etc.) sieht genauso aus wie unter Clipper und kann damit auch Linien malen

Beim Drucken empfehle ich auf jeden Fall meine Drucker-Klasse HBPrinter, zur Not XbpPrinter() mit Gra-Funktionen oder gleich L&L für Reports etc.
Eventuell aber auch Word-Vorlagen ausfüllen mit ActiveX()
Gruß
Hubert
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Zeichensatz nerft...!

Beitrag von Jan »

Hubert,

bei GraLinie und GraBox waren wir schon - das trifft aber leider nicht seinen Geschmack.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Zeichensatz nerft...!

Beitrag von brandelh »

Mit Unicode könnte man die Zeichen schon darstellen:

Zeichentabelle (Programm) - Arial Unicode MS - Gruppieren nach ... UNICODE-Unterbereich: Rahmenelemente ...

──── U+2500 dünne Linie ( 4 Zeichen )
━━━━ U+2501 dicke Linie ( 4 Zeichen )
════ U+2550 doppelte Linie ( 4 Zeichen )

aber nochmal, viel Aufwand, eventuell geht es nicht ... wenn man schon was neu macht, ist das der falsche Ansatz. Meine Meinung.
Gruß
Hubert
GrillenHirni
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 116
Registriert: Do, 18. Jul 2013 11:56
Kontaktdaten:

Re: Zeichensatz nerft...!

Beitrag von GrillenHirni »

Ojeh...

Keine gute Nachricht...

Aber trotzdem einen Schritt weiter...

Dankeschön...!
Grilli
Antworten