Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Sounddatei als Blob in SQLite

  Alt 14. Nov 2014, 13:34
Da würde ich mal sagen, da hat jemand ganze Arbeit geleistet und die binären Daten als string eingelesen (natürlich Unicode -> UTF16 -> 2 Bytes pro Zeichen) und dann in die Datenbank geschrieben.

Respekt ... da wusste einer aber ganz genau Bescheid, was er da tut

Dir ist schon bewusst, um was für eine Codierung es sich handelt? TEncoding.BigEndianUnicode .

Kleines Beispiel:
Delphi-Quellcode:
program dp_182745;

{$APPTYPE CONSOLE}
{$R *.res}

uses
  System.SysUtils;

procedure OutputBytes( ABytes: TBytes );
var
  LIdx: Integer;
begin
  for LIdx := Low( ABytes ) to High( ABytes ) do
    Write( Format( '%2.2x ', [ABytes[LIdx]] ) );
  WriteLn;
end;

procedure Sample;
var
  LData: TBytes;
  LDataStr: string;
begin
  LData := TBytes.Create( $00, $00, $00, $00, $00, $00, $00, $1C, $00, $66, $00, $74, $00, $79, $00, $70, $00, $4D, $00, $34, $00, $41, $00, $20 );
  OutputBytes( LData );
  LDataStr := TEncoding.BigEndianUnicode.GetString( LData );
  LData := TEncoding.ANSI.GetBytes( LDataStr );
  OutputBytes( LData );
end;

begin
  try
    Sample;
  except
    on E: Exception do
      WriteLn( E.ClassName, ': ', E.Message );
  end;
  ReadLn;

end.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat