library morse_dll;
{$mode objfpc}{$H+}
uses
Classes
{ you can add units after this };
const
A = ' • — ';
B = ' — • • • ' ;
C = ' — • — • ' ;
D = ' — • • ';
E = ' • ';
F = ' • • — • ';
G = ' — — • ';
H = ' • • • • ';
I = ' • • ';
J = ' • — — — ';
K = ' — • — ';
L = ' • — • • ';
M = ' — — ';
N = ' — • ';
O = ' — — — ';
P = ' • — — • ';
Q = ' — — • — ';
R = ' • — • ';
S = ' • • • ';
T = ' — ';
U = ' • • — ' ;
V = ' • • • — ';
W = ' • — — ';
X = ' — • • — ';
Y = ' — • — — ';
Z = ' — — • • ';
N0= ' — — — — — ';
N1= ' • — — — — ';
N2= ' • • — — — ';
N3= ' • • • — — ';
N4= ' • • • • — ';
N5= ' • • • • • ';
N6= ' — • • • • ';
N7= ' — — • • • ';
N8= ' — — — • • ';
N9= ' — — — — • ';
PUNTO = ' • — • — • — ';
VIRGOLA = ' — — • • — — ';
DUE_PUNTI = ' — — — • • • ';
PUNTO_INTERROGATIVO = ' • • — — • • ' ;
UGUALE = ' — • • • — ';
TRATTINO = ' — • • • • — ';
PARENTESI_APERTA = ' — • — — • ';
PARENTESI_CHIUSA = ' — • — — • — ';
VIRGOLETTE = ' • — • • — • ';
APOSTROFO = ' • — — — — • ';
SLASH = ' — • • — • ';
CHIOCCIOLA = ' • — — • — • ';
MORSE_PUNTO = '•';
MORSE_TRATTINO = '-';
function MorseControl(s:string):boolean; export;
var i:integer;
begin
MorseControl:= true;
for i:= 1 to length(s) do
if not(s[i] in['A'..'Z', 'a'..'z','0'..'9','.',',',':','?','=','-','(',')','"','''','/',' '])
then MorseControl:= false;
end;
function MorseCifrator(readStr:string):string; export;
var outstr : string;
count : integer;
begin
outstr:= '';
if MorseControl(readStr) = True then
begin
for count:= 1 to length(readStr) do
begin
case readStr[count] of
'A','a': outstr += A;
'B','b': outstr += B;
'C','c': outstr += C;
'D','d': outstr += D;
'E','e': outstr += E;
'F','f': outstr += F;
'G','g': outstr += G;
'H','h': outstr += H;
'I','i': outstr += I;
'J','j': outstr += J;
'K','k': outstr += K;
'L','l': outstr += L;
'M','m': outstr += M;
'N','n': outstr += N;
'O','o': outstr += O;
'P','p': outstr += P;
'Q','q': outstr += Q;
'R','r': outstr += R;
'S','s': outstr += S;
'T','t': outstr += T;
'U','u': outstr += U;
'V','v': outstr += V;
'W','w': outstr += W;
'X','x': outstr += X;
'Y','y': outstr += Y;
'Z','z': outstr += Z;
'0': outstr += N0;
'1': outstr += N1;
'2': outstr += N2;
'3': outstr += N3;
'4': outstr += N4;
'5': outstr += N5;
'6': outstr += N6;
'7': outstr += N7;
'8': outstr += N8;
'9': outstr += N9;
'.': outstr += PUNTO;
',': outstr += VIRGOLA;
':': outstr += DUE_PUNTI;
'?': outstr += PUNTO_INTERROGATIVO;
'=': outstr += UGUALE;
'-': outstr += TRATTINO;
'(': outstr += PARENTESI_APERTA;
')': outstr += PARENTESI_CHIUSA;
'"': outstr += VIRGOLETTE;
'''': outstr += APOSTROFO;
'/': outstr += SLASH;
'@': outstr += CHIOCCIOLA;
' ': outstr += ' ';
end;
end;
MorseCifrator:= outstr;
end;
end;
exports MorseCifrator, MorseControl;
{$IFDEF WINDOWS}{$R morse_dll.rc}{$ENDIF}
begin
end.