Subversion Repositories wimsdev

Rev

Rev 12174 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 12174 Rev 17228
Line 1... Line 1...
1
!! +exec+ +var+ +string+
1
!! +exec+ +var+ +string+
2
tit:text
2
tit:text
3
type:$type_both
3
type:$type_both
4
syntax:!text ``operation'' ``parameter''
4
syntax:!text ``operation'' ``parameter''
5
mean:This is intended to be a very powerful text manipulation tool,\
5
mean:This is intended to be a very powerful text manipulation tool,\
6
  allowing very sophisticated processing of long text strings with high speed. <br/>\
6
  allowing very sophisticated processing of long text strings with high speed. <br>\
7
  Many of the ``operations'' accept masks. A mask is a string composed of ``0''s and ``1''s. \
7
  Many of the ``operations'' accept masks. A mask is a string composed of ``0''s and ``1''s. \
8
  For operations which accept a mask, only characters at positions whose corresponding\
8
  For operations which accept a mask, only characters at positions whose corresponding\
9
  character in the mask is not a ``0'' are processed. (In this sense positions\
9
  character in the mask is not a ``0'' are processed. (In this sense positions\
10
  corresponding to ``0''s are ``masked''.) Empty mask is considered\
10
  corresponding to ``0''s are ``masked''.) Empty mask is considered\
11
  as of being entirely composed of ``1''s. <br/>\
11
  as of being entirely composed of ``1''s. <br>\
12
  A mask which is too short repeats itself, unless it terminates with a ``+'',\
12
  A mask which is too short repeats itself, unless it terminates with a ``+'',\
13
  in which case it fills the rest with ``1''s, or with a ``-'', in which case\
13
  in which case it fills the rest with ``1''s, or with a ``-'', in which case\
14
  it fills the rest with ``0''s. <br/>\
14
  it fills the rest with ``0''s. <br>\
15
  For the time being, implemented ``operations'' are as follows.\
15
  For the time being, implemented ``operations'' are as follows.\
16
  <ul>\
16
  <ul>\
17
   <li><span class="tt">!text common ``text1'' and ``text2'' [mask ``maskstring'']</span> <br/>\
17
   <li><span class="tt">!text common ``text1'' and ``text2'' [mask ``maskstring'']</span> <br>\
18
    Extracts characters in ``text1'' one by one, for those identical\
18
    Extracts characters in ``text1'' one by one, for those identical\
19
    to the corresponding characters in ``text2'' and whose\
19
    to the corresponding characters in ``text2'' and whose\
20
    positions are not masked by ``maskstring''.\
20
    positions are not masked by ``maskstring''.\
21
   </li><li><span class="tt">!text compare ``text1'' and ``text2''\
21
   </li><li><span class="tt">!text compare ``text1'' and ``text2''\
22
    </span> <br/>\
22
    </span> <br>\
23
    Compares the strings ``text1'' and ``text2'' character by character, \
23
    Compares the strings ``text1'' and ``text2'' character by character, \
24
    and returns a mask string with ``0''s on positions where the corresponding characters in ``text1''\
24
    and returns a mask string with ``0''s on positions where the corresponding characters in ``text1''\
25
    and ``text2'' are equal, and ``1''s otherwise.\
25
    and ``text2'' are equal, and ``1''s otherwise.\
26
   </li><li><span class="tt">!text copy ``text'' [mask ``maskstring'']</span> <br/>\
26
   </li><li><span class="tt">!text copy ``text'' [mask ``maskstring'']</span> <br>\
27
    Returns non-masked characters in ``text''.\
27
    Returns non-masked characters in ``text''.\
28
   </li><li><span class="tt">!text count ``charlist'' in ``text'' [mask ``maskstring'']</span> <br/>\
28
   </li><li><span class="tt">!text count ``charlist'' in ``text'' [mask ``maskstring'']</span> <br>\
29
    Returns the number of characters in ``text'' whose positions\
29
    Returns the number of characters in ``text'' whose positions\
30
    are not masked by ``maskstring'', and who appear in ``charlist''.\
30
    are not masked by ``maskstring'', and who appear in ``charlist''.\
31
   </li><li><span class="tt">!text diff ``text1'' from ``text2'' [mask ``maskstring'']</span> <br/>\
31
   </li><li><span class="tt">!text diff ``text1'' from ``text2'' [mask ``maskstring'']</span> <br>\
32
    Extracts characters in ``text1'' one by one, for those different to the corresponding \
32
    Extracts characters in ``text1'' one by one, for those different to the corresponding \
33
    characters in ``text2'' and whose positions are not masked by ``maskstring''. <br/>\
33
    characters in ``text2'' and whose positions are not masked by ``maskstring''. <br>\
34
    (Synonyme of diff: differ).\
34
    (Synonyme of diff: differ).\
35
   </li><li><span class="tt">!text expand ``text'' using ``maskstring''\
35
   </li><li><span class="tt">!text expand ``text'' using ``maskstring''\
36
    </span> <br/>\
36
    </span> <br>\
37
    Produces a string, where positions corresponding to ``0''s in\
37
    Produces a string, where positions corresponding to ``0''s in\
38
    ``maskstring'' are filled by ``&nbsp;'' (the space character),\
38
    ``maskstring'' are filled by ``&nbsp;'' (the space character),\
39
    and where positions corresponding to ``1''s in ``maskstring'' are filled by characters of \
39
    and where positions corresponding to ``1''s in ``maskstring'' are filled by characters of \
40
    ``text''. The characters in ``text'' are used one by one, and the\
40
    ``text''. The characters in ``text'' are used one by one, and the\
41
    resulting string stops when all the characters in ``text'' are exhausted \
41
    resulting string stops when all the characters in ``text'' are exhausted \
42
    (or when the string reaches the length limit).\
42
    (or when the string reaches the length limit).\
43
   </li><li><span class="tt">!text insert ``text1'' into ``text2'' [mask ``maskstring'']</span> <br/>\
43
   </li><li><span class="tt">!text insert ``text1'' into ``text2'' [mask ``maskstring'']</span> <br>\
44
    Returns ``text2'' with non-masked characters replaced by characters ``text1''. \
44
    Returns ``text2'' with non-masked characters replaced by characters ``text1''. \
45
    Characters in ``text1'' are used one by one (without taking into account the masking), and\
45
    Characters in ``text1'' are used one by one (without taking into account the masking), and\
46
    the replacement stops when there is no character left in ``text1''.\
46
    the replacement stops when there is no character left in ``text1''.\
47
   </li><li><span class="tt">!text interact ``text1'' and ``text2'' table ``itab'' [mask ``maskstring'']</span> <br/>\
47
   </li><li><span class="tt">!text interact ``text1'' and ``text2'' table ``itab'' [mask ``maskstring'']</span> <br>\
48
    Returns a new text which is result of interactions of characters\
48
    Returns a new text which is result of interactions of characters\
49
    in corresponding positions in ``text1'' and ``text2''. The rule of the interaction is defined in\
49
    in corresponding positions in ``text1'' and ``text2''. The rule of the interaction is defined in\
50
    ``itab''. <br/> ``itab'' contains n+1 lines, each of n characters.\
50
    ``itab''. <br> ``itab'' contains n+1 lines, each of n characters.\
51
    The first line defines the characters corresponding to each position\
51
    The first line defines the characters corresponding to each position\
52
    in the following n lines which defines the multiplication table.\
52
    in the following n lines which defines the multiplication table.\
53
    <br/>\
53
    <br>\
54
    The multiplication table needs not to be symmetric. In this case, the rows correspond \
54
    The multiplication table needs not to be symmetric. In this case, the rows correspond \
55
    to characters in ``text1'', and the columns correspond to characters in ``text2''.\
55
    to characters in ``text1'', and the columns correspond to characters in ``text2''.\
56
    <br/>\
56
    <br>\
57
    If ``text1'' or ``text2'' contains a character not in the first line of ``itab'', \
57
    If ``text1'' or ``text2'' contains a character not in the first line of ``itab'', \
58
    the interaction at the corresponding position is considered as empty. Also, masked\
58
    the interaction at the corresponding position is considered as empty. Also, masked\
59
    positions are ignored.<br/>\
59
    positions are ignored.<br>\
60
    If ``text1'' and ``text2'' have different lengths, the longer is cut to fit the shorter.\
60
    If ``text1'' and ``text2'' have different lengths, the longer is cut to fit the shorter.\
61
   </li><li><span class="tt">!text mark ``charlist'' in ``text''</span> <br/>\
61
   </li><li><span class="tt">!text mark ``charlist'' in ``text''</span> <br>\
62
    Returns a mask string with ``1''s on positions where the corresponding character in ``text'' \
62
    Returns a mask string with ``1''s on positions where the corresponding character in ``text'' \
63
    appears in ``charlist'', and with ``0''s on other positions.\
63
    appears in ``charlist'', and with ``0''s on other positions.\
64
   </li><li><span class="tt">!text max ``text1'' and ``text2'' [mask ``maskstring'']</span> <br/>\
64
   </li><li><span class="tt">!text max ``text1'' and ``text2'' [mask ``maskstring'']</span> <br>\
65
    Returns a string which at each position is the character with highest\
65
    Returns a string which at each position is the character with highest\
66
    ASCII code between corresponding characters in ``text1'' and ``text2''. \
66
    ASCII code between corresponding characters in ``text1'' and ``text2''. \
67
    The length of the result is that of the longest of the two. Masked positions are skipped.\
67
    The length of the result is that of the longest of the two. Masked positions are skipped.\
68
   </li><li><span class="tt">!text min ``text1'' and ``text2'' [mask ``maskstring'']</span> <br/>\
68
   </li><li><span class="tt">!text min ``text1'' and ``text2'' [mask ``maskstring'']</span> <br>\
69
    Returns a string which at each position is the character with lowest\
69
    Returns a string which at each position is the character with lowest\
70
    ASCII code between corresponding characters in ``text1'' and ``text2''. \
70
    ASCII code between corresponding characters in ``text1'' and ``text2''. \
71
    The length of the result is that of the\
71
    The length of the result is that of the\
72
    shortest of the two. Masked positions are skipped.\
72
    shortest of the two. Masked positions are skipped.\
73
   </li><li><span class="tt">!text occur ``charlist'' in ``text'' [mask ``maskstring'']</span> <br/>\
73
   </li><li><span class="tt">!text occur ``charlist'' in ``text'' [mask ``maskstring'']</span> <br>\
74
    Returns characters in ``charlist'' which occur in unmasked positions in ``text''. <br/>\
74
    Returns characters in ``charlist'' which occur in unmasked positions in ``text''. <br>\
75
    (Synonymes of occur: appear, occurrence).\
75
    (Synonymes of occur: appear, occurrence).\
76
   </li><li><span class="tt">!text remove ``charlist'' in ``text'' [mask ``maskstring'']</span> <br/>\
76
   </li><li><span class="tt">!text remove ``charlist'' in ``text'' [mask ``maskstring'']</span> <br>\
77
    Returns ``text'' in which masked characters and characters\
77
    Returns ``text'' in which masked characters and characters\
78
    appearing in ``charlist'' are removed. <br/>(Synonymes of remove: drop, delete).\
78
    appearing in ``charlist'' are removed. <br>(Synonymes of remove: drop, delete).\
79
   </li><li><span class="tt">!text reorder ``text'' by ``orderlist''</span> <br/>\
79
   </li><li><span class="tt">!text reorder ``text'' by ``orderlist''</span> <br>\
80
    Returns a reordered ``text'' using the order list ``orderlist''. Reordering is cyclic \
80
    Returns a reordered ``text'' using the order list ``orderlist''. Reordering is cyclic \
81
    if ``orderlist'' is shorter than ``text''. <br/>\
81
    if ``orderlist'' is shorter than ``text''. <br>\
82
    ``orderlist'' must be a list of n positive integers, which\
82
    ``orderlist'' must be a list of n positive integers, which\
83
    is a permutation of the set {1,...,n}. If ``orderlist'' contains\
83
    is a permutation of the set {1,...,n}. If ``orderlist'' contains\
84
    items other than integers within the bound, empty string is returned.\
84
    items other than integers within the bound, empty string is returned.\
85
    However, unicity check is not performed on items of ``orderlist''.\
85
    However, unicity check is not performed on items of ``orderlist''.\
86
   </li><li><span class="tt">!text repeat ``text'' to ``len''</span> <br/>\
86
   </li><li><span class="tt">!text repeat ``text'' to ``len''</span> <br>\
87
    Repeat the string ``text'' cyclicly, up to length ``len''.\
87
    Repeat the string ``text'' cyclicly, up to length ``len''.\
88
   </li><li><span class="tt">!text reverse ``text''</span> <br/>\
88
   </li><li><span class="tt">!text reverse ``text''</span> <br>\
89
    Reverse the order of ``text'', with the last character coming first, etc.\
89
    Reverse the order of ``text'', with the last character coming first, etc.\
90
   </li><li><span class="tt">!text select ``charlist'' in ``text'' [mask ``maskstring'']</span> <br/>\
90
   </li><li><span class="tt">!text select ``charlist'' in ``text'' [mask ``maskstring'']</span> <br>\
91
    Returns ``text'' in which masked characters and characters not appearing in \
91
    Returns ``text'' in which masked characters and characters not appearing in \
92
    ``charlist'' are removed. <br/> (Synonymes of select: pick, pickup).\
92
    ``charlist'' are removed. <br> (Synonymes of select: pick, pickup).\
93
  </li></ul>
93
  </li></ul>