51 lines
1.0 KiB
Plaintext
51 lines
1.0 KiB
Plaintext
BEGIN
|
|
|
|
CLASS TEXTARRAY(N); INTEGER N;
|
|
BEGIN
|
|
TEXT ARRAY ARR(1:N);
|
|
END TEXTARRAY;
|
|
|
|
REF(TEXTARRAY) PROCEDURE SPLIT(T,DELIM); TEXT T; CHARACTER DELIM;
|
|
BEGIN
|
|
INTEGER N, I, LPOS;
|
|
REF(TEXTARRAY) A;
|
|
|
|
N := 1;
|
|
T.SETPOS(1);
|
|
WHILE T.MORE DO
|
|
IF T.GETCHAR = DELIM THEN
|
|
N := N+1;
|
|
A :- NEW TEXTARRAY(N);
|
|
|
|
I := 0;
|
|
LPOS := 1;
|
|
T.SETPOS(LPOS);
|
|
WHILE T.MORE DO
|
|
IF T.GETCHAR = DELIM THEN
|
|
BEGIN
|
|
I := I+1;
|
|
A.ARR(I) :- T.SUB(LPOS,T.POS-LPOS-1);
|
|
LPOS := T.POS;
|
|
END;
|
|
I := I+1;
|
|
A.ARR(I) :- T.SUB(LPOS,T.LENGTH-LPOS+1);
|
|
SPLIT :- A;
|
|
END SPLIT;
|
|
|
|
BEGIN
|
|
TEXT S;
|
|
REF(TEXTARRAY) TA;
|
|
INTEGER I;
|
|
|
|
S :- "HELLO,HOW,ARE,YOU,TODAY";
|
|
TA :- SPLIT(S,',');
|
|
FOR I := 1 STEP 1 UNTIL TA.N DO
|
|
BEGIN
|
|
OUTTEXT(TA.ARR(I));
|
|
OUTCHAR('.');
|
|
END;
|
|
OUTIMAGE;
|
|
END;
|
|
|
|
END.
|