Einzelnen Beitrag anzeigen

Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#7

Re: UnicodeKonverter

  Alt 29. Okt 2007, 18:11
Hallo zusammen,

@shmia
Delphi-Quellcode:
function readCharFromUTF16le(src: TStream): TUniChar;
var UTF16Buffer: array[0..1] of byte;
begin
     if src.Read(UTF16Buffer, SizeOf(UTF16Buffer)) = SizeOf(UTF16Buffer) then
     begin
          // ...
     end else raise EUnexpectedEndOfStream.Create('class function TUniConverter.readCharFromUTF16BE(dest: TStream): TUniChar;');
end;
So weit ich sehen, werden hier 16 Bit auf einmal eingelesen, aber du hast recht, das schnellste wird wohl nicht sein.
Einen WideString wollte ich bewusst nicht verwenden, da ich in einem Charakter einen ganzen Unicode-Buchstaben unterzukriegen will.

@xZise
type TUniCharBuffer = packed array[0..(high(TSize) div SizeOf(TUniChar) -1)] of TUniChar; Hieran liegt es, oder?
Probiers so:type TUniCharBuffer = packed array[0..(2147483648 div SizeOf(TUniChar) -1)] of TUniChar; (2147483648 = 2 GByte)

Für dein Problem kannst du dir den TUniString auch sparen, wenn du die Buchstaben selbst irgendwie pufferst ...

MfG,
Bug
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat