home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 December / Chip_2001-12_cd1.bin / zkuste / delphi / kompon / d3456 / POWERPDF.ZIP / PowerPdf / PdfJpCMap.pas < prev    next >
Pascal/Delphi Source File  |  2001-09-15  |  24KB  |  452 lines

  1. {*
  2.  * << P o w e r P d f >> -- PdfJpCMap.pas
  3.  *
  4.  * << conversion routines from japanese charactor code to CID >>
  5.  *
  6.  * Copyright (c) 1999-2001 Takezou. <takeshi_kanno@est.hi-ho.ne.jp>
  7.  *
  8.  * This library is free software; you can redistribute it and/or modify it
  9.  * under the terms of the GNU Library General Public License as published
  10.  * by the Free Software Foundation; either version 2 of the License, or any
  11.  * later version.
  12.  *
  13.  * This library is distributed in the hope that it will be useful, but WITHOUT
  14.  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  15.  * FOR A PARTICULAR PURPOSE. See the GNU Library general Public License for more
  16.  * details.
  17.  *
  18.  * You should have received a copy of the GNU Library General Public License
  19.  * along with this library.
  20.  *
  21.  * Create 2001.04.16
  22.  *
  23.  *}
  24. unit PdfJpCMap;
  25.  
  26. interface
  27.  
  28. uses
  29.   SysUtils;
  30.  
  31. type
  32.   {*
  33.    * PdfCidRange
  34.    *}
  35.   TPdfCidRange = record
  36.     CFrom, CTo: integer;
  37.     CRange: integer;
  38.   end;
  39.  
  40. const
  41.  
  42.   CMAP_90MS_RKSJ_H: array[0..170] of TPdfCidRange = (
  43.                      (CFrom: $20; CTo: $7d; CRange: 231),
  44.                      (CFrom: $7e; CTo: $7e; CRange: 631),
  45.                      (CFrom: $8140; CTo: $817e; CRange:  633),
  46.                      (CFrom: $8180; CTo: $81ac; CRange:  696),
  47.                      (CFrom: $81b8; CTo: $81bf; CRange:  741),
  48.                      (CFrom: $81c8; CTo: $81ce; CRange:  749),
  49.                      (CFrom: $81da; CTo: $81e8; CRange:  756),
  50.                      (CFrom: $81f0; CTo: $81f7; CRange:  771),
  51.                      (CFrom: $81fc; CTo: $81fc; CRange:  779),
  52.                      (CFrom: $824f; CTo: $8258; CRange:  780),
  53.                      (CFrom: $8260; CTo: $8279; CRange:  790),
  54.                      (CFrom: $8281; CTo: $829a; CRange:  816),
  55.                      (CFrom: $829f; CTo: $82f1; CRange:  842),
  56.                      (CFrom: $8340; CTo: $837e; CRange:  925),
  57.                      (CFrom: $8380; CTo: $8396; CRange:  988),
  58.                      (CFrom: $839f; CTo: $83b6; CRange: 1011),
  59.                      (CFrom: $83bf; CTo: $83d6; CRange: 1035),
  60.                      (CFrom: $8440; CTo: $8460; CRange: 1059),
  61.                      (CFrom: $8470; CTo: $847e; CRange: 1092),
  62.                      (CFrom: $8480; CTo: $8491; CRange: 1107),
  63.                      (CFrom: $849f; CTo: $849f; CRange: 7479),
  64.                      (CFrom: $84a0; CTo: $84a0; CRange: 7481),
  65.                      (CFrom: $84a1; CTo: $84a1; CRange: 7491),
  66.                      (CFrom: $84a2; CTo: $84a2; CRange: 7495),
  67.                      (CFrom: $84a3; CTo: $84a3; CRange: 7503),
  68.                      (CFrom: $84a4; CTo: $84a4; CRange: 7499),
  69.                      (CFrom: $84a5; CTo: $84a5; CRange: 7507),
  70.                      (CFrom: $84a6; CTo: $84a6; CRange: 7523),
  71.                      (CFrom: $84a7; CTo: $84a7; CRange: 7515),
  72.                      (CFrom: $84a8; CTo: $84a8; CRange: 7531),
  73.                      (CFrom: $84a9; CTo: $84a9; CRange: 7539),
  74.                      (CFrom: $84aa; CTo: $84aa; CRange: 7480),
  75.                      (CFrom: $84ab; CTo: $84ab; CRange: 7482),
  76.                      (CFrom: $84ac; CTo: $84ac; CRange: 7494),
  77.                      (CFrom: $84ad; CTo: $84ad; CRange: 7498),
  78.                      (CFrom: $84ae; CTo: $84ae; CRange: 7506),
  79.                      (CFrom: $84af; CTo: $84af; CRange: 7502),
  80.                      (CFrom: $84b0; CTo: $84b0; CRange: 7514),
  81.                      (CFrom: $84b1; CTo: $84b1; CRange: 7530),
  82.                      (CFrom: $84b2; CTo: $84b2; CRange: 7522),
  83.                      (CFrom: $84b3; CTo: $84b3; CRange: 7538),
  84.                      (CFrom: $84b4; CTo: $84b4; CRange: 7554),
  85.                      (CFrom: $84b5; CTo: $84b5; CRange: 7511),
  86.                      (CFrom: $84b6; CTo: $84b6; CRange: 7526),
  87.                      (CFrom: $84b7; CTo: $84b7; CRange: 7519),
  88.                      (CFrom: $84b8; CTo: $84b8; CRange: 7534),
  89.                      (CFrom: $84b9; CTo: $84b9; CRange: 7542),
  90.                      (CFrom: $84ba; CTo: $84ba; CRange: 7508),
  91.                      (CFrom: $84bb; CTo: $84bb; CRange: 7527),
  92.                      (CFrom: $84bc; CTo: $84bc; CRange: 7516),
  93.                      (CFrom: $84bd; CTo: $84bd; CRange: 7535),
  94.                      (CFrom: $84be; CTo: $84be; CRange: 7545),
  95.                      (CFrom: $8740; CTo: $875d; CRange: 7555),
  96.                      (CFrom: $875f; CTo: $8760; CRange: 7585),
  97.                      (CFrom: $8761; CTo: $8761; CRange: 8038),
  98.                      (CFrom: $8762; CTo: $8762; CRange: 7588),
  99.                      (CFrom: $8763; CTo: $8763; CRange: 8040),
  100.                      (CFrom: $8764; CTo: $8764; CRange: 7590),
  101.                      (CFrom: $8765; CTo: $8765; CRange: 8042),
  102.                      (CFrom: $8766; CTo: $8767; CRange: 7592),
  103.                      (CFrom: $8768; CTo: $8768; CRange: 8044),
  104.                      (CFrom: $8769; CTo: $876a; CRange: 7595),
  105.                      (CFrom: $876b; CTo: $876b; CRange: 8043),
  106.                      (CFrom: $876c; CTo: $876d; CRange: 7598),
  107.                      (CFrom: $876e; CTo: $876e; CRange: 8047),
  108.                      (CFrom: $876f; CTo: $8775; CRange: 7601),
  109.                      (CFrom: $877e; CTo: $877e; CRange: 8323),
  110.                      (CFrom: $8780; CTo: $8783; CRange: 7608),
  111.                      (CFrom: $8784; CTo: $8784; CRange: 8055),
  112.                      (CFrom: $8785; CTo: $878f; CRange: 7613),
  113.                      (CFrom: $8790; CTo: $8790; CRange:  762),
  114.                      (CFrom: $8791; CTo: $8791; CRange:  761),
  115.                      (CFrom: $8792; CTo: $8792; CRange:  769),
  116.                      (CFrom: $8793; CTo: $8799; CRange: 7624),
  117.                      (CFrom: $879a; CTo: $879a; CRange:  768),
  118.                      (CFrom: $879b; CTo: $879c; CRange: 7631),
  119.                      (CFrom: $889f; CTo: $88fc; CRange: 1125),
  120.                      (CFrom: $8940; CTo: $897e; CRange: 1219),
  121.                      (CFrom: $8980; CTo: $89fc; CRange: 1282),
  122.                      (CFrom: $8a40; CTo: $8a7e; CRange: 1407),
  123.                      (CFrom: $8a80; CTo: $8afc; CRange: 1470),
  124.                      (CFrom: $8b40; CTo: $8b7e; CRange: 1595),
  125.                      (CFrom: $8b80; CTo: $8bfc; CRange: 1658),
  126.                      (CFrom: $8c40; CTo: $8c7e; CRange: 1783),
  127.                      (CFrom: $8c80; CTo: $8cfc; CRange: 1846),
  128.                      (CFrom: $8d40; CTo: $8d7e; CRange: 1971),
  129.                      (CFrom: $8d80; CTo: $8dfc; CRange: 2034),
  130.                      (CFrom: $8e40; CTo: $8e7e; CRange: 2159),
  131.                      (CFrom: $8e80; CTo: $8efc; CRange: 2222),
  132.                      (CFrom: $8f40; CTo: $8f7e; CRange: 2347),
  133.                      (CFrom: $8f80; CTo: $8ffc; CRange: 2410),
  134.                      (CFrom: $9040; CTo: $907e; CRange: 2535),
  135.                      (CFrom: $9080; CTo: $90fc; CRange: 2598),
  136.                      (CFrom: $9140; CTo: $917e; CRange: 2723),
  137.                      (CFrom: $9180; CTo: $91fc; CRange: 2786),
  138.                      (CFrom: $9240; CTo: $927e; CRange: 2911),
  139.                      (CFrom: $9280; CTo: $92fc; CRange: 2974),
  140.                      (CFrom: $9340; CTo: $937e; CRange: 3099),
  141.                      (CFrom: $9380; CTo: $93fc; CRange: 3162),
  142.                      (CFrom: $9440; CTo: $947e; CRange: 3287),
  143.                      (CFrom: $9480; CTo: $94fc; CRange: 3350),
  144.                      (CFrom: $9540; CTo: $957e; CRange: 3475),
  145.                      (CFrom: $9580; CTo: $95fc; CRange: 3538),
  146.                      (CFrom: $9640; CTo: $967e; CRange: 3663),
  147.                      (CFrom: $9680; CTo: $96fc; CRange: 3726),
  148.                      (CFrom: $9740; CTo: $977e; CRange: 3851),
  149.                      (CFrom: $9780; CTo: $97fc; CRange: 3914),
  150.                      (CFrom: $9840; CTo: $9872; CRange: 4039),
  151.                      (CFrom: $989f; CTo: $98fc; CRange: 4090),
  152.                      (CFrom: $9940; CTo: $997e; CRange: 4184),
  153.                      (CFrom: $9980; CTo: $99fc; CRange: 4247),
  154.                      (CFrom: $9a40; CTo: $9a7e; CRange: 4372),
  155.                      (CFrom: $9a80; CTo: $9afc; CRange: 4435),
  156.                      (CFrom: $9b40; CTo: $9b7e; CRange: 4560),
  157.                      (CFrom: $9b80; CTo: $9bfc; CRange: 4623),
  158.                      (CFrom: $9c40; CTo: $9c7e; CRange: 4748),
  159.                      (CFrom: $9c80; CTo: $9cfc; CRange: 4811),
  160.                      (CFrom: $9d40; CTo: $9d7e; CRange: 4936),
  161.                      (CFrom: $9d80; CTo: $9dfc; CRange: 4999),
  162.                      (CFrom: $9e40; CTo: $9e7e; CRange: 5124),
  163.                      (CFrom: $9e80; CTo: $9efc; CRange: 5187),
  164.                      (CFrom: $9f40; CTo: $9f7e; CRange: 5312),
  165.                      (CFrom: $9f80; CTo: $9ffc; CRange: 5375),
  166.                      (CFrom: $a0; CTo: $df; CRange:      326),
  167.                      (CFrom: $e040; CTo: $e07e; CRange: 5500),
  168.                      (CFrom: $e080; CTo: $e0fc; CRange: 5563),
  169.                      (CFrom: $e140; CTo: $e17e; CRange: 5688),
  170.                      (CFrom: $e180; CTo: $e1fc; CRange: 5751),
  171.                      (CFrom: $e240; CTo: $e27e; CRange: 5876),
  172.                      (CFrom: $e280; CTo: $e2fc; CRange: 5939),
  173.                      (CFrom: $e340; CTo: $e37e; CRange: 6064),
  174.                      (CFrom: $e380; CTo: $e3fc; CRange: 6127),
  175.                      (CFrom: $e440; CTo: $e47e; CRange: 6252),
  176.                      (CFrom: $e480; CTo: $e4fc; CRange: 6315),
  177.                      (CFrom: $e540; CTo: $e57e; CRange: 6440),
  178.                      (CFrom: $e580; CTo: $e5fc; CRange: 6503),
  179.                      (CFrom: $e640; CTo: $e67e; CRange: 6628),
  180.                      (CFrom: $e680; CTo: $e6fc; CRange: 6691),
  181.                      (CFrom: $e740; CTo: $e77e; CRange: 6816),
  182.                      (CFrom: $e780; CTo: $e7fc; CRange: 6879),
  183.                      (CFrom: $e840; CTo: $e87e; CRange: 7004),
  184.                      (CFrom: $e880; CTo: $e8fc; CRange: 7067),
  185.                      (CFrom: $e940; CTo: $e97e; CRange: 7192),
  186.                      (CFrom: $e980; CTo: $e9fc; CRange: 7255),
  187.                      (CFrom: $ea40; CTo: $ea7e; CRange: 7380),
  188.                      (CFrom: $ea80; CTo: $eaa2; CRange: 7443),
  189.                      (CFrom: $eaa3; CTo: $eaa4; CRange: 8284),
  190.                      (CFrom: $ed40; CTo: $ed7e; CRange: 8359),
  191.                      (CFrom: $ed80; CTo: $edb3; CRange: 8422),
  192.                      (CFrom: $edb4; CTo: $edb4; CRange: 1993),
  193.                      (CFrom: $edb5; CTo: $edfc; CRange: 8474),
  194.                      (CFrom: $ee40; CTo: $ee7e; CRange: 8546),
  195.                      (CFrom: $ee80; CTo: $eeec; CRange: 8609),
  196.                      (CFrom: $eeef; CTo: $eef8; CRange: 8092),
  197.                      (CFrom: $eef9; CTo: $eef9; CRange:  751),
  198.                      (CFrom: $eefa; CTo: $eefc; CRange: 8005),
  199.                      (CFrom: $fa40; CTo: $fa49; CRange: 8092),
  200.                      (CFrom: $fa4a; CTo: $fa53; CRange: 7575),
  201.                      (CFrom: $fa54; CTo: $fa54; CRange:  751),
  202.                      (CFrom: $fa55; CTo: $fa57; CRange: 8005),
  203.                      (CFrom: $fa58; CTo: $fa58; CRange: 7618),
  204.                      (CFrom: $fa59; CTo: $fa59; CRange: 7610),
  205.                      (CFrom: $fa5a; CTo: $fa5a; CRange: 8055),
  206.                      (CFrom: $fa5b; CTo: $fa5b; CRange:  768),
  207.                      (CFrom: $fa5c; CTo: $fa7e; CRange: 8359),
  208.                      (CFrom: $fa80; CTo: $facf; CRange: 8394),
  209.                      (CFrom: $fad0; CTo: $fad0; CRange: 1993),
  210.                      (CFrom: $fad1; CTo: $fafc; CRange: 8474),
  211.                      (CFrom: $fb40; CTo: $fb7e; CRange: 8518),
  212.                      (CFrom: $fb80; CTo: $fbfc; CRange: 8581),
  213.                      (CFrom: $fc40; CTo: $fc4b; CRange: 8706));
  214.  
  215.   CMAP_90MSP_RKSJ_H: array[0..170] of TPdfCidRange = (
  216.                      (CFrom: $20; CTo: $7d; CRange: 1),
  217.                      (CFrom: $7e; CTo: $7e; CRange: 631),
  218.                      (CFrom: $8140; CTo: $817e; CRange:  633),
  219.                      (CFrom: $8180; CTo: $81ac; CRange:  696),
  220.                      (CFrom: $81b8; CTo: $81bf; CRange:  741),
  221.                      (CFrom: $81c8; CTo: $81ce; CRange:  749),
  222.                      (CFrom: $81da; CTo: $81e8; CRange:  756),
  223.                      (CFrom: $81f0; CTo: $81f7; CRange:  771),
  224.                      (CFrom: $81fc; CTo: $81fc; CRange:  779),
  225.                      (CFrom: $824f; CTo: $8258; CRange:  780),
  226.                      (CFrom: $8260; CTo: $8279; CRange:  790),
  227.                      (CFrom: $8281; CTo: $829a; CRange:  816),
  228.                      (CFrom: $829f; CTo: $82f1; CRange:  842),
  229.                      (CFrom: $8340; CTo: $837e; CRange:  925),
  230.                      (CFrom: $8380; CTo: $8396; CRange:  988),
  231.                      (CFrom: $839f; CTo: $83b6; CRange: 1011),
  232.                      (CFrom: $83bf; CTo: $83d6; CRange: 1035),
  233.                      (CFrom: $8440; CTo: $8460; CRange: 1059),
  234.                      (CFrom: $8470; CTo: $847e; CRange: 1092),
  235.                      (CFrom: $8480; CTo: $8491; CRange: 1107),
  236.                      (CFrom: $849f; CTo: $849f; CRange: 7479),
  237.                      (CFrom: $84a0; CTo: $84a0; CRange: 7481),
  238.                      (CFrom: $84a1; CTo: $84a1; CRange: 7491),
  239.                      (CFrom: $84a2; CTo: $84a2; CRange: 7495),
  240.                      (CFrom: $84a3; CTo: $84a3; CRange: 7503),
  241.                      (CFrom: $84a4; CTo: $84a4; CRange: 7499),
  242.                      (CFrom: $84a5; CTo: $84a5; CRange: 7507),
  243.                      (CFrom: $84a6; CTo: $84a6; CRange: 7523),
  244.                      (CFrom: $84a7; CTo: $84a7; CRange: 7515),
  245.                      (CFrom: $84a8; CTo: $84a8; CRange: 7531),
  246.                      (CFrom: $84a9; CTo: $84a9; CRange: 7539),
  247.                      (CFrom: $84aa; CTo: $84aa; CRange: 7480),
  248.                      (CFrom: $84ab; CTo: $84ab; CRange: 7482),
  249.                      (CFrom: $84ac; CTo: $84ac; CRange: 7494),
  250.                      (CFrom: $84ad; CTo: $84ad; CRange: 7498),
  251.                      (CFrom: $84ae; CTo: $84ae; CRange: 7506),
  252.                      (CFrom: $84af; CTo: $84af; CRange: 7502),
  253.                      (CFrom: $84b0; CTo: $84b0; CRange: 7514),
  254.                      (CFrom: $84b1; CTo: $84b1; CRange: 7530),
  255.                      (CFrom: $84b2; CTo: $84b2; CRange: 7522),
  256.                      (CFrom: $84b3; CTo: $84b3; CRange: 7538),
  257.                      (CFrom: $84b4; CTo: $84b4; CRange: 7554),
  258.                      (CFrom: $84b5; CTo: $84b5; CRange: 7511),
  259.                      (CFrom: $84b6; CTo: $84b6; CRange: 7526),
  260.                      (CFrom: $84b7; CTo: $84b7; CRange: 7519),
  261.                      (CFrom: $84b8; CTo: $84b8; CRange: 7534),
  262.                      (CFrom: $84b9; CTo: $84b9; CRange: 7542),
  263.                      (CFrom: $84ba; CTo: $84ba; CRange: 7508),
  264.                      (CFrom: $84bb; CTo: $84bb; CRange: 7527),
  265.                      (CFrom: $84bc; CTo: $84bc; CRange: 7516),
  266.                      (CFrom: $84bd; CTo: $84bd; CRange: 7535),
  267.                      (CFrom: $84be; CTo: $84be; CRange: 7545),
  268.                      (CFrom: $8740; CTo: $875d; CRange: 7555),
  269.                      (CFrom: $875f; CTo: $8760; CRange: 7585),
  270.                      (CFrom: $8761; CTo: $8761; CRange: 8038),
  271.                      (CFrom: $8762; CTo: $8762; CRange: 7588),
  272.                      (CFrom: $8763; CTo: $8763; CRange: 8040),
  273.                      (CFrom: $8764; CTo: $8764; CRange: 7590),
  274.                      (CFrom: $8765; CTo: $8765; CRange: 8042),
  275.                      (CFrom: $8766; CTo: $8767; CRange: 7592),
  276.                      (CFrom: $8768; CTo: $8768; CRange: 8044),
  277.                      (CFrom: $8769; CTo: $876a; CRange: 7595),
  278.                      (CFrom: $876b; CTo: $876b; CRange: 8043),
  279.                      (CFrom: $876c; CTo: $876d; CRange: 7598),
  280.                      (CFrom: $876e; CTo: $876e; CRange: 8047),
  281.                      (CFrom: $876f; CTo: $8775; CRange: 7601),
  282.                      (CFrom: $877e; CTo: $877e; CRange: 8323),
  283.                      (CFrom: $8780; CTo: $8783; CRange: 7608),
  284.                      (CFrom: $8784; CTo: $8784; CRange: 8055),
  285.                      (CFrom: $8785; CTo: $878f; CRange: 7613),
  286.                      (CFrom: $8790; CTo: $8790; CRange:  762),
  287.                      (CFrom: $8791; CTo: $8791; CRange:  761),
  288.                      (CFrom: $8792; CTo: $8792; CRange:  769),
  289.                      (CFrom: $8793; CTo: $8799; CRange: 7624),
  290.                      (CFrom: $879a; CTo: $879a; CRange:  768),
  291.                      (CFrom: $879b; CTo: $879c; CRange: 7631),
  292.                      (CFrom: $889f; CTo: $88fc; CRange: 1125),
  293.                      (CFrom: $8940; CTo: $897e; CRange: 1219),
  294.                      (CFrom: $8980; CTo: $89fc; CRange: 1282),
  295.                      (CFrom: $8a40; CTo: $8a7e; CRange: 1407),
  296.                      (CFrom: $8a80; CTo: $8afc; CRange: 1470),
  297.                      (CFrom: $8b40; CTo: $8b7e; CRange: 1595),
  298.                      (CFrom: $8b80; CTo: $8bfc; CRange: 1658),
  299.                      (CFrom: $8c40; CTo: $8c7e; CRange: 1783),
  300.                      (CFrom: $8c80; CTo: $8cfc; CRange: 1846),
  301.                      (CFrom: $8d40; CTo: $8d7e; CRange: 1971),
  302.                      (CFrom: $8d80; CTo: $8dfc; CRange: 2034),
  303.                      (CFrom: $8e40; CTo: $8e7e; CRange: 2159),
  304.                      (CFrom: $8e80; CTo: $8efc; CRange: 2222),
  305.                      (CFrom: $8f40; CTo: $8f7e; CRange: 2347),
  306.                      (CFrom: $8f80; CTo: $8ffc; CRange: 2410),
  307.                      (CFrom: $9040; CTo: $907e; CRange: 2535),
  308.                      (CFrom: $9080; CTo: $90fc; CRange: 2598),
  309.                      (CFrom: $9140; CTo: $917e; CRange: 2723),
  310.                      (CFrom: $9180; CTo: $91fc; CRange: 2786),
  311.                      (CFrom: $9240; CTo: $927e; CRange: 2911),
  312.                      (CFrom: $9280; CTo: $92fc; CRange: 2974),
  313.                      (CFrom: $9340; CTo: $937e; CRange: 3099),
  314.                      (CFrom: $9380; CTo: $93fc; CRange: 3162),
  315.                      (CFrom: $9440; CTo: $947e; CRange: 3287),
  316.                      (CFrom: $9480; CTo: $94fc; CRange: 3350),
  317.                      (CFrom: $9540; CTo: $957e; CRange: 3475),
  318.                      (CFrom: $9580; CTo: $95fc; CRange: 3538),
  319.                      (CFrom: $9640; CTo: $967e; CRange: 3663),
  320.                      (CFrom: $9680; CTo: $96fc; CRange: 3726),
  321.                      (CFrom: $9740; CTo: $977e; CRange: 3851),
  322.                      (CFrom: $9780; CTo: $97fc; CRange: 3914),
  323.                      (CFrom: $9840; CTo: $9872; CRange: 4039),
  324.                      (CFrom: $989f; CTo: $98fc; CRange: 4090),
  325.                      (CFrom: $9940; CTo: $997e; CRange: 4184),
  326.                      (CFrom: $9980; CTo: $99fc; CRange: 4247),
  327.                      (CFrom: $9a40; CTo: $9a7e; CRange: 4372),
  328.                      (CFrom: $9a80; CTo: $9afc; CRange: 4435),
  329.                      (CFrom: $9b40; CTo: $9b7e; CRange: 4560),
  330.                      (CFrom: $9b80; CTo: $9bfc; CRange: 4623),
  331.                      (CFrom: $9c40; CTo: $9c7e; CRange: 4748),
  332.                      (CFrom: $9c80; CTo: $9cfc; CRange: 4811),
  333.                      (CFrom: $9d40; CTo: $9d7e; CRange: 4936),
  334.                      (CFrom: $9d80; CTo: $9dfc; CRange: 4999),
  335.                      (CFrom: $9e40; CTo: $9e7e; CRange: 5124),
  336.                      (CFrom: $9e80; CTo: $9efc; CRange: 5187),
  337.                      (CFrom: $9f40; CTo: $9f7e; CRange: 5312),
  338.                      (CFrom: $9f80; CTo: $9ffc; CRange: 5375),
  339.                      (CFrom: $a0; CTo: $df; CRange:      326),
  340.                      (CFrom: $e040; CTo: $e07e; CRange: 5500),
  341.                      (CFrom: $e080; CTo: $e0fc; CRange: 5563),
  342.                      (CFrom: $e140; CTo: $e17e; CRange: 5688),
  343.                      (CFrom: $e180; CTo: $e1fc; CRange: 5751),
  344.                      (CFrom: $e240; CTo: $e27e; CRange: 5876),
  345.                      (CFrom: $e280; CTo: $e2fc; CRange: 5939),
  346.                      (CFrom: $e340; CTo: $e37e; CRange: 6064),
  347.                      (CFrom: $e380; CTo: $e3fc; CRange: 6127),
  348.                      (CFrom: $e440; CTo: $e47e; CRange: 6252),
  349.                      (CFrom: $e480; CTo: $e4fc; CRange: 6315),
  350.                      (CFrom: $e540; CTo: $e57e; CRange: 6440),
  351.                      (CFrom: $e580; CTo: $e5fc; CRange: 6503),
  352.                      (CFrom: $e640; CTo: $e67e; CRange: 6628),
  353.                      (CFrom: $e680; CTo: $e6fc; CRange: 6691),
  354.                      (CFrom: $e740; CTo: $e77e; CRange: 6816),
  355.                      (CFrom: $e780; CTo: $e7fc; CRange: 6879),
  356.                      (CFrom: $e840; CTo: $e87e; CRange: 7004),
  357.                      (CFrom: $e880; CTo: $e8fc; CRange: 7067),
  358.                      (CFrom: $e940; CTo: $e97e; CRange: 7192),
  359.                      (CFrom: $e980; CTo: $e9fc; CRange: 7255),
  360.                      (CFrom: $ea40; CTo: $ea7e; CRange: 7380),
  361.                      (CFrom: $ea80; CTo: $eaa2; CRange: 7443),
  362.                      (CFrom: $eaa3; CTo: $eaa4; CRange: 8284),
  363.                      (CFrom: $ed40; CTo: $ed7e; CRange: 8359),
  364.                      (CFrom: $ed80; CTo: $edb3; CRange: 8422),
  365.                      (CFrom: $edb4; CTo: $edb4; CRange: 1993),
  366.                      (CFrom: $edb5; CTo: $edfc; CRange: 8474),
  367.                      (CFrom: $ee40; CTo: $ee7e; CRange: 8546),
  368.                      (CFrom: $ee80; CTo: $eeec; CRange: 8609),
  369.                      (CFrom: $eeef; CTo: $eef8; CRange: 8092),
  370.                      (CFrom: $eef9; CTo: $eef9; CRange:  751),
  371.                      (CFrom: $eefa; CTo: $eefc; CRange: 8005),
  372.                      (CFrom: $fa40; CTo: $fa49; CRange: 8092),
  373.                      (CFrom: $fa4a; CTo: $fa53; CRange: 7575),
  374.                      (CFrom: $fa54; CTo: $fa54; CRange:  751),
  375.                      (CFrom: $fa55; CTo: $fa57; CRange: 8005),
  376.                      (CFrom: $fa58; CTo: $fa58; CRange: 7618),
  377.                      (CFrom: $fa59; CTo: $fa59; CRange: 7610),
  378.                      (CFrom: $fa5a; CTo: $fa5a; CRange: 8055),
  379.                      (CFrom: $fa5b; CTo: $fa5b; CRange:  768),
  380.                      (CFrom: $fa5c; CTo: $fa7e; CRange: 8359),
  381.                      (CFrom: $fa80; CTo: $facf; CRange: 8394),
  382.                      (CFrom: $fad0; CTo: $fad0; CRange: 1993),
  383.                      (CFrom: $fad1; CTo: $fafc; CRange: 8474),
  384.                      (CFrom: $fb40; CTo: $fb7e; CRange: 8518),
  385.                      (CFrom: $fb80; CTo: $fbfc; CRange: 8581),
  386.                      (CFrom: $fc40; CTo: $fc4b; CRange: 8706));
  387.  
  388.   function CharToCMap_90MS_RKSJ_H(S: string; Index: integer): integer;
  389.   function CharToCMap_90MSP_RKSJ_H(S: string; Index: integer): integer;
  390.  
  391. implementation
  392.  
  393. { CharToCMap_90MS_RKSJ_H }
  394. function CharToCMap_90MS_RKSJ_H(S: string; Index: integer): integer;
  395. var
  396.   i: integer;
  397.   C: integer;
  398. begin
  399.   C := 0;
  400.   result := 0;
  401.   case ByteType(S, Index) of
  402.     mbSingleByte: C := Integer(S[Index]);
  403.     mbLeadByte: C := Integer(S[Index])*256 + Integer(S[Index+1]);
  404.     mbTrailByte:
  405.       begin
  406.         result := -1;
  407.         Exit;
  408.       end;
  409.   end;
  410.  
  411.   for i := 0 to High(CMAP_90MS_RKSJ_H) - 1 do
  412.   begin
  413.     with CMAP_90MS_RKSJ_H[i] do
  414.       if (C <= CTo) and (C >= CFrom) then
  415.       begin
  416.         result := CRange + (C - CFrom);
  417.         Break;
  418.       end;
  419.   end;
  420. end;
  421.  
  422. { CharToCMap_90MS_RKSJ_H }
  423. function CharToCMap_90MSP_RKSJ_H(S: string; Index: integer): integer;
  424. var
  425.   i: integer;
  426.   C: integer;
  427. begin
  428.   C := 0;
  429.   result := 0;
  430.   case ByteType(S, Index) of
  431.     mbSingleByte: C := Integer(S[Index]);
  432.     mbLeadByte: C := Integer(S[Index])*256 + Integer(S[Index+1]);
  433.     mbTrailByte:
  434.       begin
  435.         result := -1;
  436.         Exit;
  437.       end;
  438.   end;
  439.  
  440.   for i := 0 to High(CMAP_90MSP_RKSJ_H) do
  441.   begin
  442.     with CMAP_90MSP_RKSJ_H[i] do
  443.       if (C <= CTo) and (C >= CFrom) then
  444.       begin
  445.         result := CRange + (C - CFrom);
  446.         Break;
  447.       end;
  448.   end;
  449. end;
  450.  
  451. end.
  452.