test12.mod 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344
  1. MODULE test12;
  2. IMPORT strUtils, InOut, Strings;
  3. CONST
  4. CR = 0DH;
  5. LF = 0AH;
  6. VAR
  7. chaine : ARRAY[0..15] OF CHAR;
  8. taille, longueur : CARDINAL;
  9. i : CARDINAL;
  10. PROCEDURE testassign;
  11. BEGIN
  12. END testassign;
  13. PROCEDURE testpos;
  14. BEGIN
  15. END testpos;
  16. PROCEDURE testappendLFCR;
  17. BEGIN
  18. (* test des valeurs *)
  19. InOut.WriteHex(0DH,2);
  20. InOut.WriteLn;
  21. InOut.WriteHex(0AH,2);
  22. InOut.WriteLn;
  23. InOut.WriteHex(0CH,2);
  24. InOut.WriteLn;
  25. (* we have several cases here :
  26. - the length of the string is <= length of the array -3
  27. so, we have space to append the 3 endline characters
  28. - the length of the array is not long enough :
  29. so, we do nothing, but there are more solutions available
  30. *)
  31. InOut.WriteString("test1 : y'a de la place");
  32. InOut.WriteLn;
  33. chaine := "et voila";
  34. longueur := Strings.Length(chaine);
  35. taille := HIGH(chaine);
  36. InOut.WriteCard(longueur,5);
  37. InOut.WriteLn;
  38. InOut.WriteCard(taille,5);
  39. InOut.WriteLn;
  40. strUtils.appendLFCR(chaine);
  41. FOR i := 0 TO longueur -1 DO
  42. IF chaine[i] = 0C THEN
  43. InOut.WriteString("0C");
  44. ELSIF chaine[i] = CHR(LF) THEN
  45. InOut.WriteString("LF");
  46. ELSIF chaine[i] = CHR(CR) THEN
  47. InOut.WriteString("CR");
  48. ELSE
  49. InOut.Write(chaine[i]);
  50. END;
  51. END;
  52. InOut.WriteLn;
  53. END testappendLFCR;
  54. PROCEDURE testisalnum;
  55. BEGIN
  56. InOut.WriteString("test IN ");
  57. InOut.WriteLn;
  58. InOut.WriteString("test isalnum");
  59. chaine := "estvoila";
  60. InOut.WriteLn;
  61. IF strUtils.isalnum(chaine) THEN
  62. InOut.WriteString("tout est alphanum");
  63. ELSE
  64. InOut.WriteString("Y'a un caractère étranger");
  65. END;
  66. InOut.WriteLn;
  67. chaine := "sdkjhqslkf#$";
  68. IF strUtils.isalnum(chaine) THEN
  69. InOut.WriteString("tout est alphanum");
  70. ELSE
  71. InOut.WriteString("Y'a un caractère étranger");
  72. END;
  73. InOut.WriteLn;
  74. END testisalnum;
  75. PROCEDURE testisalpha;
  76. BEGIN
  77. InOut.WriteString("test isalpha");
  78. chaine := "estvoila";
  79. InOut.WriteLn;
  80. IF strUtils.isalpha(chaine) THEN
  81. InOut.WriteString("tout est alpha");
  82. ELSE
  83. InOut.WriteString("Y'a un caractère étranger");
  84. END;
  85. InOut.WriteLn;
  86. chaine := "sdkjhqs1";
  87. IF strUtils.isalpha(chaine) THEN
  88. InOut.WriteString("tout est alpha");
  89. ELSE
  90. InOut.WriteString("Y'a un caractère étranger");
  91. END;
  92. InOut.WriteLn;
  93. END testisalpha;
  94. PROCEDURE testisascii;
  95. BEGIN
  96. InOut.WriteString("test isascii");
  97. chaine := "estvoila";
  98. InOut.WriteLn;
  99. IF strUtils.isalpha(chaine) THEN
  100. InOut.WriteString("tout est ascii");
  101. ELSE
  102. InOut.WriteString("Y'a un caractère étranger");
  103. END;
  104. InOut.WriteLn;
  105. chaine := "sdkjùhqs";
  106. IF strUtils.isalpha(chaine) THEN
  107. InOut.WriteString("tout est ascii");
  108. ELSE
  109. InOut.WriteString("Y'a un caractère étranger");
  110. END;
  111. InOut.WriteLn;
  112. END testisascii;
  113. PROCEDURE testisdigit;
  114. BEGIN
  115. InOut.WriteString("test isdigit");
  116. chaine := "12345";
  117. InOut.WriteLn;
  118. IF strUtils.isdigit(chaine) THEN
  119. InOut.WriteString("tout est digit");
  120. ELSE
  121. InOut.WriteString("Y'a un caractère étranger");
  122. END;
  123. InOut.WriteLn;
  124. chaine := "123m45";
  125. IF strUtils.isdigit(chaine) THEN
  126. InOut.WriteString("tout est digit");
  127. ELSE
  128. InOut.WriteString("Y'a un caractère étranger");
  129. END;
  130. InOut.WriteLn;
  131. END testisdigit;
  132. PROCEDURE testisidentifier;
  133. BEGIN
  134. InOut.WriteString("test isidentifier");
  135. chaine := "estvoila";
  136. InOut.WriteLn;
  137. IF strUtils.isalpha(chaine) THEN
  138. InOut.WriteString("tout est alpha");
  139. ELSE
  140. InOut.WriteString("Y'a un caractère étranger");
  141. END;
  142. InOut.WriteLn;
  143. chaine := "sdkjhqs1";
  144. IF strUtils.isalpha(chaine) THEN
  145. InOut.WriteString("tout est alpha");
  146. ELSE
  147. InOut.WriteString("Y'a un caractère étranger");
  148. END;
  149. InOut.WriteLn;
  150. END testisidentifier;
  151. PROCEDURE testislower;
  152. BEGIN
  153. InOut.WriteString("test islower");
  154. chaine := "estvoila";
  155. InOut.WriteLn;
  156. IF strUtils.isalpha(chaine) THEN
  157. InOut.WriteString("tout est alpha");
  158. ELSE
  159. InOut.WriteString("Y'a un caractère étranger");
  160. END;
  161. InOut.WriteLn;
  162. chaine := "sdkjhqs1";
  163. IF strUtils.isalpha(chaine) THEN
  164. InOut.WriteString("tout est alpha");
  165. ELSE
  166. InOut.WriteString("Y'a un caractère étranger");
  167. END;
  168. InOut.WriteLn;
  169. END testislower;
  170. PROCEDURE testisprintable;
  171. BEGIN
  172. InOut.WriteString("test isprintable");
  173. chaine := "estvoila";
  174. InOut.WriteLn;
  175. IF strUtils.isalpha(chaine) THEN
  176. InOut.WriteString("tout est alpha");
  177. ELSE
  178. InOut.WriteString("Y'a un caractère étranger");
  179. END;
  180. InOut.WriteLn;
  181. chaine := "sdkjhqs1";
  182. IF strUtils.isalpha(chaine) THEN
  183. InOut.WriteString("tout est alpha");
  184. ELSE
  185. InOut.WriteString("Y'a un caractère étranger");
  186. END;
  187. InOut.WriteLn;
  188. END testisprintable;
  189. PROCEDURE testisspace;
  190. BEGIN
  191. InOut.WriteString("test isspace");
  192. chaine := "estvoila";
  193. InOut.WriteLn;
  194. IF strUtils.isalpha(chaine) THEN
  195. InOut.WriteString("tout est alpha");
  196. ELSE
  197. InOut.WriteString("Y'a un caractère étranger");
  198. END;
  199. InOut.WriteLn;
  200. chaine := "sdkjhqs1";
  201. IF strUtils.isalpha(chaine) THEN
  202. InOut.WriteString("tout est alpha");
  203. ELSE
  204. InOut.WriteString("Y'a un caractère étranger");
  205. END;
  206. InOut.WriteLn;
  207. END testisspace;
  208. PROCEDURE testistitle;
  209. BEGIN
  210. InOut.WriteString("test istitle");
  211. chaine := "Et Voila";
  212. InOut.WriteLn;
  213. IF strUtils.istitle(chaine) THEN
  214. InOut.WriteString("C'est un titre");
  215. ELSE
  216. InOut.WriteString("Ce n'est pas un titre");
  217. END;
  218. InOut.WriteLn;
  219. chaine := "Sdkj hqs1";
  220. IF strUtils.istitle(chaine) THEN
  221. InOut.WriteString("C'est un titre");
  222. ELSE
  223. InOut.WriteString("Ce n'est pas un titre");
  224. END;
  225. InOut.WriteLn;
  226. END testistitle;
  227. PROCEDURE testisupper;
  228. BEGIN
  229. InOut.WriteString("test isupper");
  230. chaine := "VOILAUNECHAINE";
  231. InOut.WriteLn;
  232. IF strUtils.isupper(chaine) THEN
  233. InOut.WriteString("tout est upcase");
  234. ELSE
  235. InOut.WriteString("Y'a un caractère en basse casse");
  236. END;
  237. InOut.WriteLn;
  238. chaine := "VOILA UNE CHAINE";
  239. IF strUtils.isupper(chaine) THEN
  240. InOut.WriteString("tout est upcase");
  241. ELSE
  242. InOut.WriteString("Y'a un caractère en basse casse");
  243. END;
  244. InOut.WriteLn;
  245. END testisupper;
  246. PROCEDURE testcopy;
  247. (*PROCEDURE Copy(VAR Ns: ARRAY OF CHAR; S: ARRAY OF CHAR);*)
  248. VAR
  249. src1 : ARRAY [0..9] OF CHAR;
  250. src2 : ARRAY [0..12] OF CHAR;
  251. src3 : ARRAY [0..5] OF CHAR;
  252. dst : ARRAY [0..9] OF CHAR;
  253. BEGIN
  254. (* plusieurs cas :
  255. - chaines égales
  256. - src > destination
  257. - src < destination
  258. *)
  259. InOut.WriteString(" chaines égales");
  260. InOut.WriteLn;
  261. src1 := "1234567890";
  262. InOut.WriteString("chaine origine : ");
  263. InOut.WriteString(src1);
  264. InOut.WriteLn;
  265. strUtils.Copy(dst,src1);
  266. InOut.WriteString("chaine destination : ");
  267. InOut.WriteString(dst);
  268. InOut.WriteLn;
  269. InOut.WriteLn;
  270. InOut.WriteLn;
  271. InOut.WriteString(" source > destination");
  272. InOut.WriteLn;
  273. src2 := "1234567890abc";
  274. strUtils.Copy(dst,src2);
  275. InOut.WriteString(src2);
  276. InOut.WriteLn;
  277. InOut.WriteString(dst);
  278. InOut.WriteLn;
  279. InOut.WriteLn;
  280. InOut.WriteLn;
  281. InOut.WriteString(" source < destination");
  282. InOut.WriteLn;
  283. src3 := "123456";
  284. strUtils.Copy(dst,src3);
  285. InOut.WriteString(src3);
  286. InOut.WriteLn;
  287. InOut.WriteString(dst);
  288. InOut.WriteLn;
  289. END testcopy;
  290. BEGIN
  291. (*testcopy;*)(* works fine *)
  292. (* testisupper;*)(* works fine *)
  293. testistitle;
  294. END test12.