Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi XE2: Probleme mit Umwandlung von Char zu Byte (https://www.delphipraxis.net/165934-xe2-probleme-mit-umwandlung-von-char-zu-byte.html)

jaenicke 22. Jan 2012 20:59

AW: Xe2: Probleme mit Umwandlung von Char zu Byte
 
Zitat:

Zitat von Helmi (Beitrag 1147160)
Wo schaust du bezüglich der Codepage nach?

Bei Wikipedia:
http://de.wikipedia.org/wiki/Codepage_850
Das ist "unsere". Die anderen sind rechts auf der Seite verlinkt.

Helmi 22. Jan 2012 21:04

AW: XE2: Probleme mit Umwandlung von Char zu Byte
 
Danke!

Bernhard Geyer 22. Jan 2012 22:24

AW: Xe2: Probleme mit Umwandlung von Char zu Byte
 
Zitat:

Zitat von jaenicke (Beitrag 1147162)
Zitat:

Zitat von Helmi (Beitrag 1147160)
Wo schaust du bezüglich der Codepage nach?

Bei Wikipedia:
http://de.wikipedia.org/wiki/Codepage_850
Das ist "unsere". Die anderen sind rechts auf der Seite verlinkt.

Ich glaube nicht das XE2 noch DOS-Programme erstellen kann bzw. LED-Lösungen auf DOS-Pages arbeitet.
Schaut nicht ISO 8859-1 besser aus?

jaenicke 22. Jan 2012 22:46

AW: Xe2: Probleme mit Umwandlung von Char zu Byte
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1147168)
Schaut nicht ISO 8859-1 besser aus?

Bin ich blind? Ich sehe nicht ein einziges passendes Zeichen. :stupid:

Ach ja:
Zumindest bei einigen Hardwareschnittstellen, die wir verwenden, sind die DOS-Codepages allgegenwärtig. Und die Hardware ist aktuell wohlgemerkt.

himitsu 22. Jan 2012 23:27

AW: XE2: Probleme mit Umwandlung von Char zu Byte
 
Hab nicht alles nichst gelesen, aber ...

Das Modul ist und bleibt weiterhin ANSI, also mußt du auch bei ANSI bleiben ... zumindestens bei den Schnittstellen.

ANSI-Funktionen ... siehe Unit AnsiStrings


Es muß auch nicht sein, daß die Zeichen dieses Modul überhaupt mit einer bekannten CodePage im PC übereinstimmen.
Oftmals wurde quasi eine "eigenständige" Kodierung verwendet.

Welches Modul eigentlich? (hab hier auf die Schnelle nirgends was dazu gefungen)
Es sollte dazu ja ein Datenblatt geben, wo bestimmt/vermutlich eine Zeichentabelle aufgeführt ist.

Helmi 23. Jan 2012 09:28

AW: XE2: Probleme mit Umwandlung von Char zu Byte
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ja es gibt eine Doku über das Modul und darin gibt es auch eine Zeichentabelle.
Ich hab die mal angehängt.

DeddyH 23. Jan 2012 09:39

AW: XE2: Probleme mit Umwandlung von Char zu Byte
 
Wenn ich mich nicht verschaut habe, dann sind das 8 Bit -> 1 Byte -> Ansi.

Bernhard Geyer 23. Jan 2012 09:44

AW: XE2: Probleme mit Umwandlung von Char zu Byte
 
Zitat:

Zitat von Helmi (Beitrag 1147204)
Hallo,

ja es gibt eine Doku über das Modul und darin gibt es auch eine Zeichentabelle.
Ich hab die mal angehängt.

Schaut weder nach CP 850 noch 1252 aus sondern nach "optimiertem" Custom-Mapping.
D.h. du wirst sowieso deine eigene Mapping-Tabelle implementieren müssen.

Helmi 23. Jan 2012 09:45

AW: XE2: Probleme mit Umwandlung von Char zu Byte
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1147207)
D.h. du wirst sowieso deine eigene Mapping-Tabelle implementieren müssen.

Das hab ich ja soweit getan...

jaenicke 23. Jan 2012 10:05

AW: XE2: Probleme mit Umwandlung von Char zu Byte
 
Zitat:

Zitat von Helmi (Beitrag 1147208)
Zitat:

Zitat von Bernhard Geyer (Beitrag 1147207)
D.h. du wirst sowieso deine eigene Mapping-Tabelle implementieren müssen.

Das hab ich ja soweit getan...

Wobei ich das "hoch 3" nicht an der Stelle finde, an der es nach deinem Array hätte sein müssen.

Wie dem auch sei:
Deklariere am besten einfach ein solches Array:
Delphi-Quellcode:
const
  CharMappings: array[AnsiChar] of AnsiChar = (
    #1, #2, #3, ...
  );
Dabei schreibst du ausgehend von der Original-Codepage die Zeichen hin, die an der Stelle in der LCD-Matrix stehen.

Dann brauchst du nämlich nichts prüfen, sondern kannst einfach das machen:
Delphi-Quellcode:
var
  i, j: Integer;
  AnsiText: AnsiString;
begin
  {...}

  AnsiText := AnsiString(Text);
  //Sonderzeichen auslesen
  for i := 1 to Length(Text) do
    AnsiText[i] := CharMappings[AnsiText[i]];

  {...}
end;
Das mag nicht die optimalste Lösung sein, aber ich denke es ist die übersichtlichste. Denn die Originalzeichen lassen sich so sehr gut als Kommentar jeweils dazuschreiben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:26 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz