home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1999 September
/
Chip_1999-09_cd.bin
/
internet
/
Jeremy
/
tp
/
downloads
/
sorting.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1999-08-03
|
3KB
|
153 lines
Unit Sorting;
interface
function JeMensi(param1,param2: string): boolean;
{(-13,50,-12,50,50,50,-12,-12,-13,-13,50,50,-13,-12,-12,50,}
implementation
uses outstr;
var ret1,ret2: string;
const z: array [32..169] of integer =
(-11,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,50,50,50,50,50,50,14,1,3,4,6,
8,11,12,13,15,17,18,19,20,21,23,25,26,27,29,31,33,36,37,38,
39,41,50,50,50,50,-12,50,50,50,50,50,50,50,50,50,50,50,50,50,
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,5,
50,50,50,50,7,50,50,50,10,50,16,50,50,50,2,9,50,42,50,50,24,
50,33,33,50,50,30,50,40,28,32,50,50,50,50,50,22,33,50,50,0);
function FilterCh(S: string): string;
var p: integer;
W: string;
begin
W:='';
W:=UpString(s);
W[0]:=s[0];
if DetectString('CH',W) then
begin
p:=0;
repeat
p:=FindString('CH',W,p);
if p>0 then
begin
delete(W,p,2);
insert('@',W,p);
end;
until DetectString('CH',W)=false;
end;
FilterCh:=W;
end;
procedure Apostrof(Var S: string);
var I: integer;
w: string;
begin
w:='';
for I:=1 to Length(s) do
begin
if (s[i]='''') or (s[i]=' ') or (s[i]='.') or (s[i]=',')
or (s[i]='-') or (s[i]='"') or (s[i]='!') or (s[i]='?')
then else w:=w+s[i];
if (s[i]='.') or (s[i]=',')
or (s[i]='-') or (s[i]='"') or (s[i]='!') or (s[i]='?')
then
begin
delete(w,length(w),1);
w:=w+#169;
end
else
if s[i]=' ' then begin delete(w,length(w),1); w:=w+#168; end;
end;
w[0]:=s[0];
S:=W;
end;
function orl(znak: char): integer;
begin
orl:=z[ord(znak)];
end;
function JeMensi(Param1,Param2: string): boolean;
var w1, w2: string;
p,I: integer;
q: integer;
b: boolean;
procedure DoplnMez(Var S: String; pocet: integer);
var I: Integer;
begin
for I:=Length(S) to pocet-1 do
begin
s:=s+' ';
end;
end;
begin
w1:=FilterCh(Param1);
w2:=FilterCh(Param2);
{ Apostrof(w1);
Apostrof(w2); }
if Length(param1)>Length(param2) then P:=Length(param2)
else p:=Length(param1);
i:=1;
repeat
if orl(w1[i])<>orl(w2[i]) then
begin
if orl(w1[i])<orl(w2[i]) then
begin
JeMensi:=true;
exit;
end
else begin JeMensi:=false; exit; end;
inc(i);
end
else inc(i);
until (orl(w1[i-1])<>orl(w2[i-1])) or (i=p);
b:=true;
for Q:=1 to p do
begin
b:=b and (orl(w1[q])=orl(w2[q]));
end;
if b then
begin
if length(param1)<length(param2) then JeMensi:=true else
JeMensi:=false;
end;
end;
begin
ret1:='';
ret2:='';
end.
(*
BEGIN
repeat
writeln(' Zadej retezec 1: ');
readln(ret1);
writeln(' Zadej retezec 2: ');
readln(ret2);
writeln(FilterCh(ret1));
writeln(FilterCh(ret2));
Writeln(JeMensi(ret1,ret2));
until ret2='konec';
END.
*)