Cita:
Empezado por tejano
yo creo que sí me serviría una DLL.
Podrías enviármela o decirme dónde puedo conseguirla?
|
Conseguirla, no lo se, se puede hacer.
En delphi es bastante sencillo.
Te adjunto la DLL con 2 funciones (con parámetros diferentes, para que uses el que te vaya mejor):
Código Delphi
[-]function crc8S(const AText:string):byte;
function crc8P(const AText:PAnsiString):byte;
Usa el código
que pubicó [keys] en este mismo foro.
Para usarlo, por ejemplo desde Delphi, basta con algo así:
Código Delphi
[-]
type
TfunctionCRC8S = function(const AText:string): byte;
TfunctionCRC8P = function(const AText:PAnsiChar): byte;
var
str, fName:String;
b:byte;
h:cardinal;
fs:TfunctionCRC8S;
fp:TfunctionCRC8P;
begin
fName := ExtractFilePath(Application.ExeName) + 'crc8.dll';
if not FileExists(fName) then
raise Exception.Create('No se encuentra la DLL en: ' + sLineBreak + fName);
h := LoadLibrary(PChar(fName));
if (h < 32) then
raise Exception.Create('No se ha podido cargar la DLL');
fs := GetProcAddress(h, 'crc8S');
fp := GetProcAddress(h, 'crc8P');
if Assigned(fs) and Assigned(fp) then begin
WriteLn('Escribir cadena de entrada o vacío para salir: ');
ReadLn(Str);
while (Str <> string.empty) do begin
b := fs(Str);
WriteLn('Cadena de entrada: ' + str);
writeLn('Salida (string): ' + string.Format('%.3d',[b]));
writeLn('-------------------------------');
b := fp(PAnsiChar(Str));
WriteLn('Cadena de entrada: ' + str);
writeLn('Salida (PAnsiChar): ' + string.Format('%.3d',[b]));
writeLn('-------------------------------');
writeln(' ');
WriteLn('Escribir cadena de entrada o vacío para salir: ');
readLn(Str);
end;
end;
end.
Te adjunto el proyecto de test de la DDL (incluye el compilado para que puedas usarla directamente).
Así puedes ver cómo son las llamadas.
El funcionamiento sería este; Lo he probado con las siguientes cadena que han ido saliendo en el foro:
NOTA: Si probáis las URL's anteriores, coged el link no el texto en pantalla porque vBulletin lo corta.
Y para comprobar, tal y como han dicho, la web que mejor funciona es esta:
https://toolslick.com/programming/ha...crc-calculator
