iso.c
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:1k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. /*
  2.  * make KOI8->ISO8859-5 and ISO8859-5->KOI8 translation table
  3.  * from koi-iso.tab.
  4.  *
  5.  * Tatsuo Ishii
  6.  *
  7.  * $Id: iso.c,v 1.2 1999/05/25 16:12:42 momjian Exp $
  8.  */
  9. #include <stdio.h>
  10. main()
  11. {
  12. int i;
  13. char koitab[128],
  14. isotab[128];
  15. char buf[4096];
  16. int koi,
  17. iso;
  18. for (i = 0; i < 128; i++)
  19. koitab[i] = isotab[i] = 0;
  20. while (fgets(buf, sizeof(buf), stdin) != NULL)
  21. {
  22. if (*buf == '#')
  23. continue;
  24. sscanf(buf, "%d %x", &koi, &iso);
  25. if (koi < 128 || koi > 255 || iso < 128 || iso > 255)
  26. {
  27. fprintf(stderr, "invalid value %dn", koi);
  28. exit(1);
  29. }
  30. koitab[koi - 128] = iso;
  31. isotab[iso - 128] = koi;
  32. }
  33. i = 0;
  34. printf("static char koi2iso[] = {n");
  35. while (i < 128)
  36. {
  37. int j = 0;
  38. while (j < 8)
  39. {
  40. printf("0x%02x", koitab[i++]);
  41. j++;
  42. if (i >= 128)
  43. break;
  44. printf(", ");
  45. }
  46. printf("n");
  47. }
  48. printf("};n");
  49. i = 0;
  50. printf("static char iso2koi[] = {n");
  51. while (i < 128)
  52. {
  53. int j = 0;
  54. while (j < 8)
  55. {
  56. printf("0x%02x", isotab[i++]);
  57. j++;
  58. if (i >= 128)
  59. break;
  60. printf(", ");
  61. }
  62. printf("n");
  63. }
  64. printf("};n");
  65. }