Hi Delphi Folks
Im Moment quäle ich mich mit einer "alten" Delphi 2007-Routine, welche in
Unicode übersetzt werden sollte. Es geht um die Umrechnung einer Konto-Nr in
ein Banken IBAN-Format.
Im Moment sehe ich vor lauter PChar, PAnsiChar, PWideChar den Wald vor lauter Bäumen
nicht mehr.
Ich habe schon versucht alle PChar in PWideChar zu übersetzen. Doch leider funktioniert
die Routine immer noch nicht.
Um einen Geistesblitz wäre ich Euch sehr dankbar.
Evtl. hat jemand diese Routine in Delphi 2009 oder grösser schon im Einsatz und
würde mich dankbarerweise erleuchten
Herzlichen Dank zum voraus
Roland
{------------------------------------------------------------------------------------------}
function CreateIBAN(CClear,KKonto: String): String;
type
TIBANProc = function(pszKonto: PChar;
pszBCPC: PChar;
pszIBAN: PChar;
nIBANLen: Integer;
pszBC: PChar;
nBCLen: Integer;
pszPC: PChar;
nPCLen: Integer;
pszBIC: PChar;
nBICLen: Integer): Integer; cdecl;
var
HandleDLL: Cardinal;
ErgebnisDll: integer;
FarProc: TIBANProc;
pszKonto,pszBCPC,pszIBAN,pszBC,pszPC,pszBIC: PChar;
nIBANLen,nBCLen,nPCLen,nBICLen: integer;
begin
Result := '';
HandleDLL := LoadLibrary('IBANKernel.dll');
try
nIBANLen := 21;
nBCLen := 10;
nPCLen := 10;
nBICLen := 10;
{-------------------------------------------}
pszIBAN := nil;
pszIBAN := StrAlloc(64);
pszBC := nil;
pszBC := StrAlloc(32);
pszPC := pChar('100');
pszPC := StrAlloc(32);
pszBIC := nil;
pszBIC := StrAlloc(32);
{-------------------------------------------}
pszBCPC := pChar(CClear);
pszKonto := pChar(KKonto);
{-------------------------------------------}
ErgebnisDll := 0;
@FarProc := GetProcAddress(HandleDLL, 'IT_IBANConvert');
if Assigned(@FarProc) then begin
ErgebnisDll := FarProc(pszKonto,pszBCPC,pszIBAN,nIBANLen,pszBC,nB CLen,pszPC,nPCLen,pszBIC,nBICLen);
Result := pszIBAN;
end;
Case ErgebnisDll of
10..31: Result := 'Fehler - [E]Code=' + IntToStr(ErgebnisDll);
end;
except
showmessage('Funktion der
DLL konnte nicht ausgeführt werden.');
end;
FreeLibrary(HandleDLL);
end;
{------------------------------------------------------------------------------------------}