Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.980 Beiträge
Delphi 12 Athens
|
AW: StringGrid Zellentext auf 50 Bytes begrenzen
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)
|