DVD-ROM: eXeL@B DVD !
eXeL@B  !

5D 2O17
(: 2O17)
, !

  • 400+
  • 800
  • 100+

>>
| | RAR-c | FAQ | | |
| | | | |

FAQ DELPHI



. .

. , :
- !
- ""... , - !

. , , . , .


 type
   TCode = (win, koi, iso, dos);
 
 const
   CodeStrings: array [TCode] of string = ('win','koi','iso','dos');
 
 procedure TForm1.Button1Click(Sender: TObject);
 var
   str: array [TCode] of string;
   norm: array [''..''] of single;
   code1, code2: TCode;
   min1, min2: TCode;
   count: array [char] of integer;
   d, min: single;
   s, so: string;
   chars: array [char] of char;
   c: char;
   i: integer;
 begin
   so := Memo1.Text;
 
   norm[''] := 0.001;
   norm[''] := 0;
   norm[''] := 0.002;
   norm[''] := 0;
   norm[''] := 0.001;
   norm[''] := 0.001;
   norm[''] := 0;
   norm[''] := 0;
   norm[''] := 0.001;
   norm[''] := 0;
   norm[''] := 0.001;
   norm[''] := 0;
   norm[''] := 0.001;
   norm[''] := 0.001;
   norm[''] := 0.001;
   norm[''] := 0.002;
   norm[''] := 0.002;
   norm[''] := 0.001;
   norm[''] := 0.001;
   norm[''] := 0;
   norm[''] := 0;
   norm[''] := 0;
   norm[''] := 0;
   norm[''] := 0.001;
   norm[''] := 0.001;
   norm[''] := 0;
   norm[''] := 0;
   norm[''] := 0;
   norm[''] := 0;
   norm[''] := 0.001;
   norm[''] := 0;
   norm[''] := 0;
   norm[''] := 0.057;
   norm[''] := 0.01;
   norm[''] := 0.031;
   norm[''] := 0.011;
   norm[''] := 0.021;
   norm[''] := 0.067;
   norm[''] := 0.007;
   norm[''] := 0.013;
   norm[''] := 0.052;
   norm[''] := 0.011;
   norm[''] := 0.023;
   norm[''] := 0.03;
   norm[''] := 0.024;
   norm[''] := 0.043;
   norm[''] := 0.075;
   norm[''] := 0.026;
   norm[''] := 0.038;
   norm[''] := 0.034;
   norm[''] := 0.046;
   norm[''] := 0.016;
   norm[''] := 0.001;
   norm[''] := 0.006;
   norm[''] := 0.002;
   norm[''] := 0.011;
   norm[''] := 0.004;
   norm[''] := 0.004;
   norm[''] := 0;
   norm[''] := 0.012;
   norm[''] := 0.012;
   norm[''] := 0.003;
   norm[''] := 0.005;
   norm[''] := 0.015;
 
   Str[win] := '';
   Str[koi] := '';
   Str[iso] := '';
   Str[dos] := ' ""''""o--?';
   for c := #0 to #255 do
     Chars[c] := c;
 
   min1 := win;
   min2 := win;
   min := 0;
   s := so;
   fillchar(count, sizeof(count), 0);
   for i := 1 to Length(s) do
     inc(count[s[i]]);
   for c := '' to '' do
     min := min + sqr(count[c] / Length(s) - norm[c]);
   for code1 := low(TCode) to high(TCode) do
   begin
     for code2 := low(TCode) to high(TCode) do
     begin
       if code1 = code2 then
         continue;
 
       s := so;
       for i := 1 to Length(Str[win]) do
         Chars[Str[code2][i]] := Str[code1][i];
       for i := 1 to Length(s) do
         s[i] := Chars[s[i]];
       fillchar(count, sizeof(count), 0);
       for i := 1 to Length(s) do
         inc(count[s[i]]);
       d := 0;
       for c := '' to '' do
         d := d + sqr(count[c] / Length(s) - norm[c]);
       if d < min then
       begin
         min1 := code1;
         min2 := code2;
         min := d;
       end;
     end;
   end;
 
   s := Memo1.Text;
   if min1 <> min2 then
   begin
     for c := #0 to #255 do
       Chars[c] := c;
     for i := 1 to Length(Str[win]) do
       Chars[Str[min2][i]] := Str[min1][i];
     for i := 1 to Length(s) do
       s[i] := Chars[s[i]];
   end;
   Form1.Caption := CodeStrings[min2] + ' ' + CodeStrings[min1];
 
   Memo2.Text := s;
 end;
 




<<



https://exelab.ru/pro/



 DVD-ROM: eXeL@B DVD !


EXELAB.rU
 ReactOS