Einzelnen Beitrag anzeigen

QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.980 Beiträge
 
Delphi 12 Athens
 
#4

AW: StringGrid Zellentext auf 50 Bytes begrenzen

  Alt 7. Mär 2025, 11:19
Wie kann ich das realisieren?
Delphi-Quellcode:
var
  str: string;
  encoding: TEncoding;
  bytes: TArray<Byte>;
  len: Integer;
begin
  str := 'Das ist ein langer Text mit genau fünfzig Zeichen!';
  encoding := TEncoding.UTF8;
  bytes := encoding.GetBytes(Str);
  len := Length(bytes); // Ergebnis 51

  str := 'Das ist ein langer Text mit genau funfzig Zeichen!'; // ü-> u
  bytes := encoding.GetBytes(Str);
  len := Length(bytes); // Ergebnis 50
Würde es nicht alles prima funktionieren Ansi Encoding mit Codepage zu verwenden. Es muss halt nur die Codepage bekannt sein.

Delphi-Quellcode:
type GermanString = type AnsiString(1252);
var
  bytes: TArray<Byte>;
  len: Integer;
begin
  var Utf8Str:String := 'Das ist ein langer Text mit genau fünfzig Zeichen!';
  var Utf8Encoding := TEncoding.UTF8;
  bytes := Utf8Encoding.GetBytes(Utf8Str);
  len := Length(bytes); // Ergebnis 51
  Showmessage(len.tostring);

  var Ansistr:GermanString := 'Das ist ein langer Text mit genau fünfzig Zeichen!';
  var AnsiEncoding := TEncoding.ANSI;
  bytes := AnsiEncoding.GetBytes(Ansistr);
  len := Length(bytes); // Ergebnis 50
  Showmessage(len.tostring);
Andreas
Monads? Wtf are Monads?

Geändert von QuickAndDirty ( 7. Mär 2025 um 11:49 Uhr)
  Mit Zitat antworten Zitat