{$MODE Delphi}
PROGRAM sms3;
VAR SMSText : String[160];
FUNCTION Text2Keys(const T : string[160]; const WithSeparator : boolean) : string;
const Char2Phone : array['A'..'Z'] of string = ('2', '22', '222', '3', '33', '333', '4', '44', '444', '5', '55', '555', '6', '66', '666', '7', '77', '777', '7777', '8', '88', '888', '9', '99', '999', '9999');
var i : integer;
R : string;
begin
R := '';
for i:=1 to length(T) do begin
if (UpCase(T[i]) in ['A'..'Z']) then begin
if (T[i] in ['A'..'Z']) then R := R + '#';
R := R + Char2Phone[UpCase(T[i])]
end else begin
case T[i] of
'0'..'9' : R := R + '$' + T[i];
'.' : R := R + '1';
',' : R := R + '11';
'!' : R := R + '111';
'?' : R := R + '1111';
' ' : R := R + ' ';
else R := R + '[?]';
end;
end;
if WithSeparator and not(i = length(T)) then R := R + ';';
end;
Result := R;
end;
BEGIN
WriteLn('Texto da SMS?');
ReadLn(SMSText);
WriteLn('Sequencia de tecla do telemovel:');
WriteLn(Text2Keys(SMSText, true));
ReadLn; // pausa
END.
eyRNT0RFIERlbHBoaX0KUFJPR1JBTSBzbXMzOwoKVkFSIFNNU1RleHQgOiBTdHJpbmdbMTYwXTsKCkZVTkNUSU9OIFRleHQyS2V5cyhjb25zdCBUIDogc3RyaW5nWzE2MF07IGNvbnN0IFdpdGhTZXBhcmF0b3IgOiBib29sZWFuKSA6IHN0cmluZzsKY29uc3QgQ2hhcjJQaG9uZSA6IGFycmF5WydBJy4uJ1onXSBvZiBzdHJpbmcgPSAoJzInLCAnMjInLCAnMjIyJywgJzMnLCAnMzMnLCAnMzMzJywgJzQnLCAnNDQnLCAnNDQ0JywgJzUnLCAnNTUnLCAnNTU1JywgJzYnLCAnNjYnLCAnNjY2JywgJzcnLCAnNzcnLCAnNzc3JywgJzc3NzcnLCAnOCcsICc4OCcsICc4ODgnLCAnOScsICc5OScsICc5OTknLCAnOTk5OScpOwp2YXIgaSA6IGludGVnZXI7CiAgICBSIDogc3RyaW5nOwpiZWdpbgogICAgIFIgOj0gJyc7CiAgICAgZm9yIGk6PTEgdG8gbGVuZ3RoKFQpIGRvIGJlZ2luCiAgICAgICAgIGlmIChVcENhc2UoVFtpXSkgaW4gWydBJy4uJ1onXSkgdGhlbiBiZWdpbgogICAgICAgICAgICBpZiAoVFtpXSBpbiBbJ0EnLi4nWiddKSB0aGVuIFIgOj0gUiArICcjJzsKICAgICAgICAgICAgUiA6PSBSICsgQ2hhcjJQaG9uZVtVcENhc2UoVFtpXSldCiAgICAgICAgIGVuZCBlbHNlIGJlZ2luCiAgICAgICAgICAgICBjYXNlIFRbaV0gb2YKICAgICAgICAgICAgICAgICAgJzAnLi4nOScgOiBSIDo9IFIgKyAnJCcgKyBUW2ldOwogICAgICAgICAgICAgICAgICAnLicgOiBSIDo9IFIgKyAnMSc7CiAgICAgICAgICAgICAgICAgICcsJyA6IFIgOj0gUiArICcxMSc7CiAgICAgICAgICAgICAgICAgICchJyA6IFIgOj0gUiArICcxMTEnOwogICAgICAgICAgICAgICAgICAnPycgOiBSIDo9IFIgKyAnMTExMSc7CiAgICAgICAgICAgICAgICAgICcgJyA6IFIgOj0gUiArICcgJzsKICAgICAgICAgICAgIGVsc2UgUiA6PSBSICsgJ1s/XSc7CiAgICAgICAgICAgICBlbmQ7CiAgICAgICAgIGVuZDsKICAgICAgICAgaWYgV2l0aFNlcGFyYXRvciBhbmQgbm90KGkgPSBsZW5ndGgoVCkpIHRoZW4gUiA6PSBSICsgJzsnOwogICAgIGVuZDsKICAgICBSZXN1bHQgOj0gUjsKZW5kOwoKQkVHSU4KICAgICBXcml0ZUxuKCdUZXh0byBkYSBTTVM/Jyk7CiAgICAgUmVhZExuKFNNU1RleHQpOwogICAgIFdyaXRlTG4oJ1NlcXVlbmNpYSBkZSB0ZWNsYSBkbyB0ZWxlbW92ZWw6Jyk7CiAgICAgV3JpdGVMbihUZXh0MktleXMoU01TVGV4dCwgdHJ1ZSkpOwogICAgIFJlYWRMbjsgLy8gcGF1c2EKRU5ELg==