Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.171 Beiträge
 
Delphi 12 Athens
 
#7

Re: Zeichenkodierung: Charset Detector

  Alt 5. Apr 2010, 16:08
OK, es ging mir ja erstmal nur darum, unnötige Arbeit zu ersparen,
also falls sich dieses durch ein "sicheres" System" hätte ersetzen lassen können.

A: Welche Delphi-Version nutzt du?

B:
Zitat:
Dann habe ich chsd_Reset auf das Onclick Event eines Buttons gelegt
Ähhhh, was hast du da genau gemacht?

Vielleicht zeigst du mal etwas Code, wie du es nun selber versucht hattest.
Aus dem Demo-Code (Beispiel aus der ReadMe) sieht man ja nicht, was du in deinem Code machst.

C: Hier mal die übersetzen Header für alle Delphiversionen (auch 2009 und 2010):
Delphi-Quellcode:
{$ALIGN 4}

const
  NS_DLL = 'chsdet.dll';
  NS_OK = 0;
  NS_ERROR_OUT_OF_MEMORY = $8007000e;

types
  TCharsetInfo = record
    Name: PAnsiChar; // charset name
    CodePage: LongInt; // MS Windows CodePage id
    Language: PAnsiChar; //
  end;

  TAboutHolder = record
    MajorVersionNr: LongWord; // Library's Major Version
    MinorVersionNr: LongWord; // Library's Minor Version
    BuildVersionNr: LongWord; // Library's Build/Release Version
    About: PAnsiChar; // Copyleft information
  end;

  TBOMKind = (
    BOM_Not_Found,
    BOM_UCS4_BE, // 00 00 FE FF UCS-4, big-endian machine (1234 order)
    BOM_UCS4_LE, // FF FE 00 00 UCS-4, little-endian machine (4321 order)
    BOM_UCS4_2143, // 00 00 FF FE UCS-4, unusual octet order (2143)
    BOM_UCS4_3412, // FE FF 00 00 UCS-4, unusual octet order (3412)
    BOM_UTF16_BE, // FE FF ## ## UTF-16, big-endian
    BOM_UTF16_LE, // FF FE ## ## UTF-16, little-endian
    BOM_UTF8 // EF BB BF UTF-8
  );

procedure chsd_Reset; stdcall;
  external NS_DLL;

function chsd_HandleData(aBuf: PAnsiChar; aLen: LongInt): LongInt; stdcall;
  external NS_DLL;

function chsd_Done: Boolean; stdcall;
  external NS_DLL;

procedure chsd_DataEnd; stdcall;
  external NS_DLL;

function chsd_GetDetectedCharset: TCharsetInfo; stdcall;
  external NS_DLL;

procedure chsd_GetKnownCharsets(var KnownCharsets: PAnsiChar); stdcall;
  external NS_DLL;

procedure chsd_GetAbout(var About: TAboutHolder); stdcall;
  external NS_DLL;

function csd_GetDetectedBOM: TBOMKind; stdcall;
  external NS_DLL;

procedure csd_DisableCharsetCP(CodePage: LongInt); stdcall;
  external NS_DLL;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat