# Transform integer into a coded string

I would like to do the following:

I have a integer which I would like to transform into a certain string (so it is not recognizable as a number).

Example:
Integer = 250

The digits must be translated into capital alpha's.
0 := K, 1 := B, 2 := M, 3 := P, 4 := F, 5 := W, 6 := R, 7 := S, 8 := O, 9 := Z

I would like to do this in a function with a less as code as possible.
Who can supply me with such a function.

This is what I have now:

function GetalCoderen(Const N : Integer) : String;
var GecodeerdGetal : String;
L, P : Integer;
begin
GecodeerdGetal := IntToStr(N);
L     := Length(GecodeerdGetal); //Hulpvariabele voor lengte
P     := 1;             //Positie binnen de tekst
While P <= L do
begin
// Translate digits into code > 0 := K, 1 := B, 2 := M, 3 := P, 4 := F, 5 := W, 6 := R, 7 := S, 8 := O, 9 := Z
If (GecodeerdGetal[P] = '0') then
begin
Delete(GecodeerdGetal,P,1);
Insert('K',GecodeerdGetal,P);
end;
If (GecodeerdGetal[P] = '1') then
begin
Delete(GecodeerdGetal,P,1);
Insert('B',GecodeerdGetal,P);
end;
If (GecodeerdGetal[P] = '2') then
begin
Delete(GecodeerdGetal,P,1);
Insert('M',GecodeerdGetal,P);
end;
If (GecodeerdGetal[P] = '3') then
begin
Delete(GecodeerdGetal,P,1);
Insert('P',GecodeerdGetal,P);
end;
If (GecodeerdGetal[P] = '4') then
begin
Delete(GecodeerdGetal,P,1);
Insert('F',GecodeerdGetal,P);
end;
If (GecodeerdGetal[P] = '5') then
begin
Delete(GecodeerdGetal,P,1);
Insert('W',GecodeerdGetal,P);
end;
If (GecodeerdGetal[P] = '6') then
begin
Delete(GecodeerdGetal,P,1);
Insert('R',GecodeerdGetal,P);
end;
If (GecodeerdGetal[P] = '7') then
begin
Delete(GecodeerdGetal,P,1);
Insert('S',GecodeerdGetal,P);
end;
If (GecodeerdGetal[P] = '8') then
begin
Delete(GecodeerdGetal,P,1);
Insert('O',GecodeerdGetal,P);
end;
If (GecodeerdGetal[P] = '9') then
begin
Delete(GecodeerdGetal,P,1);
Insert('Z',GecodeerdGetal,P);
end;
Inc(P);
end;
Result := GecodeerdGetal;
end;
###### Who is Participating?

x

Commented:
or simplier (thanks to esoftbg :-)

function GetalCoderen(Const N : Integer) : String;
var
Letters :  string;
i: integer;
begin
Letters := 'KBMPFWRSOZ';
try
result := IntToStr(N);
for i := 0 to 9 do begin
result := StringReplace(result, IntToStr(i), String(Letters[i+1]), [rfReplaceAll]);
end;
except
result := ''; // or raise an exception
end;
end;

Regards, Geo
0

Commented:
function TransformInteger(Value : Integer) : String;
type
TransformArray = array[0..9] of Char;
var
Arr            : TransformArray;
tmp_str        : String;
tmp_Result     : String;
counter        : Integer;
begin
// init the array
Arr[0] := 'K';     Arr[1] := 'B';     Arr[2] := 'M';
Arr[3] := 'P';     Arr[4] := 'F';     Arr[5] := 'W';
Arr[6] := 'R';     Arr[7] := 'S';     Arr[8] := 'O';
Arr[9] := 'Z';
// get the integer as String
tmp_str := IntToStr(Value);
// init the result
tmp_Result := '';
for counter := length(tmp_str) downto 1 do
tmp_Result := tmp_Result + Arr[counter-1];
// return the result
Result := tmp_Result;
end;
0

Commented:
function  GetalCoderen(const N: Integer): string;
var
I, L, P:             Integer;
C:                   Char;
SArr:                string;
SRes:                string;
GecodeerdGetal:      string;
begin
SRes := '';
SArr := 'KBMPFWRSOZ';
GecodeerdGetal := IntToStr(N);
L     := Length(GecodeerdGetal); //Hulpvariabele voor lengte
for P := 1 to L do
begin
I := StrToInt(GecodeerdGetal[P]);
C := SArr[I+1];
SRes := SRes + C;
end;
Result := Sres;
end;

procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
end;
0

Commented:
function GetalCoderen(Const N : Integer) : String;
var
Letters :  Variant;
i: integer;
begin
Letters := VarArrayCreate([1, 10], varVariant);
Letters := VarArrayOf(['K', 'B', 'M', 'P', 'F', 'W', 'R', 'S', 'O', 'Z']);
try
result := IntToStr(N);
for i := 0 to 9 do begin
result := StringReplace(result, IntToStr(i), String(Letters[i]), [rfReplaceAll]);
end;
except
result := ''; // or raise an exception
end;
end;

Regards, Geo
0

DeveloperAuthor Commented:
Perfect Geo, Thanks to all
But the smallest got the points.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.