Strings.cp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. MODULE TestStrings;
  2. IMPORT
  3. Log:=Out;
  4. TYPE
  5. List = ARRAY 64 OF ARRAY 256 OF CHAR;
  6. VAR
  7. l: List;
  8. count: INTEGER;
  9. PROCEDURE Sort;
  10. VAR i, j: INTEGER; buf: ARRAY 256 OF CHAR;
  11. BEGIN
  12. i:=0;
  13. WHILE i<count DO
  14. j:=0;
  15. WHILE j<count-i-1 DO
  16. IF l[j]>l[j+1] THEN
  17. buf:=l[j]$;
  18. l[j]:=l[j+1];
  19. l[j+1]:=buf$;
  20. END;
  21. INC(j);
  22. END;
  23. INC(i);
  24. END;
  25. END Sort;
  26. PROCEDURE Dump;
  27. VAR i: INTEGER;
  28. BEGIN
  29. Log.String("TEST dump"); Log.Ln;
  30. i:=0;
  31. WHILE i<count DO Log.String(l[i]); Log.Ln; INC(i) END;
  32. END Dump;
  33. PROCEDURE Do;
  34. VAR s: ARRAY 256 OF CHAR; buf: ARRAY 50 OF CHAR; i, j, len, x: INTEGER;
  35. BEGIN
  36. s:="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc dignissim vitae eros nec gravida. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.";
  37. len:=LEN(s$);
  38. Log.Int(len); Log.Ln;
  39. i:=0; j:=0; buf:="";
  40. WHILE i<len DO
  41. CASE s[i] OF
  42. " ", ",", ".": IF buf$#"" THEN l[j]:=buf$; Log.String(buf$); Log.Ln; buf:=""; INC(j); INC(count); END; |
  43. ELSE
  44. x:=LEN(buf$);
  45. buf[x]:=s[i];
  46. buf[x+1]:=0X;
  47. END;
  48. INC(i);
  49. END;
  50. END Do;
  51. BEGIN
  52. Log.String("TEST strings"); Log.Ln;
  53. count:=0;
  54. Do;
  55. Dump;
  56. Log.String("TEST sort"); Log.Ln;
  57. Sort;
  58. Dump;
  59. END TestStrings.