| 824 |
end; |
end; |
| 825 |
end; |
end; |
| 826 |
end; |
end; |
| 827 |
Result := false; |
Result := false; |
| 828 |
|
|
| 829 |
end; |
end; |
| 830 |
//シリア語ブラクラ対策 |
//シリア語ブラクラ対策 |
| 831 |
function TAbon.TreatSyria(AString: string): string; |
function TAbon.TreatSyria(AString: string): string; |
| 832 |
var |
var |
| 833 |
//count: Integer; //(܀~ݏ) |
//count: Integer; //(܀~ݏ) |
| 834 |
pos: Integer; |
pos: Integer; |
| 835 |
tmp: string; |
tmp: string; |
| 836 |
begin |
begin |
| 837 |
pos := AnsiPos('', AString); |
pos := AnsiPos('', AString); |
| 838 |
while pos <> 0 do begin |
while pos <> 0 do begin |
| 839 |
if AString[pos+6] = ';' then begin |
if StrToIntDef(Copy(AString, pos+4, 2), -1) > 0 then begin |
| 840 |
if StrToIntDef(Copy(AString, pos+4, 2), 0) <= 71 then begin |
if (AString[pos+6] = ';' ) or (AString[pos+6] = ' ') then begin |
| 841 |
tmp := tmp + Copy(AString, 1, pos - 1); |
tmp := tmp + Copy(AString, 1, pos - 1); |
| 842 |
Delete(AString, 1, pos+6); |
Delete(AString, 1, pos+6); |
| 843 |
end else begin |
end else if StrToIntDef(AString[pos+6], -1) = -1 then begin |
| 844 |
tmp := tmp + Copy(AString, 1, pos + 6); |
tmp := tmp + Copy(AString, 1, pos - 1); |
| 845 |
Delete(AString, 1, pos+6); |
Delete(AString, 1, pos+5); |
| 846 |
end; |
end else begin |
| 847 |
end else begin |
tmp := tmp + Copy(AString, 1, pos + 5); |
| 848 |
tmp := tmp + Copy(AString, 1, pos + 3); |
Delete(AString, 1, pos+5); |
| 849 |
Delete(AString, 1, pos+3); |
end; |
| 850 |
end; |
end else begin |
| 851 |
pos := AnsiPos('', AString); |
tmp := tmp + Copy(AString, 1, pos + 5); |
| 852 |
end; |
Delete(AString, 1, pos+5); |
| 853 |
if Length(AString) > 0 then |
end; |
| 854 |
tmp := tmp + AString; |
pos := AnsiPos('', AString); |
| 855 |
AString := tmp; |
end; |
| 856 |
tmp := ''; |
if Length(AString) > 0 then |
| 857 |
|
tmp := tmp + AString; |
| 858 |
|
AString := tmp; |
| 859 |
|
tmp := ''; |
| 860 |
|
|
| 861 |
pos := AnsiPos('³', AString); |
pos := AnsiPos('³', AString); |
| 862 |
while pos <> 0 do begin |
while pos <> 0 do begin |
| 863 |
if AString[pos+6] = ';' then begin |
if StrToIntDef(Copy(AString, pos+5, 1), 0) > 2 then begin |
| 864 |
if StrToIntDef(Copy(AString, pos+5, 1), 0) > 2 then begin |
if (AString[pos+6] = ';') or (AString[pos+6] = ' ') then begin |
| 865 |
tmp := tmp + Copy(AString, 1, pos - 1); |
tmp := tmp + Copy(AString, 1, pos - 1); |
| 866 |
Delete(AString, 1, pos+6); |
Delete(AString, 1, pos+6); |
| 867 |
end else begin |
end else if StrToIntDef(AString[pos+6], -1) = -1 then begin |
| 868 |
tmp := tmp + Copy(AString, 1, pos + 6); |
tmp := tmp + Copy(AString, 1, pos - 1); |
| 869 |
Delete(AString, 1, pos+6); |
Delete(AString, 1, pos+5); |
| 870 |
end; |
end else begin |
| 871 |
tmp := tmp + Copy(AString, 1, pos - 1); |
tmp := tmp + Copy(AString, 1, pos + 5); |
| 872 |
Delete(AString, 1, pos+6); |
Delete(AString, 1, pos+5); |
| 873 |
end else begin |
end; |
| 874 |
tmp := tmp + Copy(AString, 1, pos + 4); |
end else begin |
| 875 |
Delete(AString, 1, pos+4); |
tmp := tmp + Copy(AString, 1, pos + 5); |
| 876 |
end; |
Delete(AString, 1, pos+5); |
| 877 |
pos := AnsiPos('³', AString); |
end; |
| 878 |
end; |
pos := AnsiPos('³', AString); |
| 879 |
if Length(AString) > 0 then |
end; |
| 880 |
tmp := tmp + AString; |
if Length(AString) > 0 then |
| 881 |
Result := tmp; |
tmp := tmp + AString; |
| 882 |
|
Result := tmp; |
| 883 |
end; |
end; |
| 884 |
end. |
end. |
| 885 |
|
|