[Back to STRINGS SWAG index] [Back to Main SWAG index] [Original]
{
From: <hartkamp@mail.rz.uni-duesseldorf.de>
Might be that FUNCTION CREMOVE is of interest for anyone.
}
FUNCTION CRemove(INP, Del : STRING) : STRING;
VAR DeleteChar : SET OF CHAR;
Bytes : ARRAY[0..31] OF BYTE ABSOLUTE DeleteChar;
BytePos : BYTE;
BitShift : BYTE;
DelChar : CHAR;
i : BYTE;
S : STRING;
BEGIN
FillChar(Bytes, SizeOf(Bytes), #0);
FOR i := 1 TO BYTE(Del[0]) DO BEGIN
DelChar := Del[i];
BytePos := BYTE(DelChar) DIV 8;
BitShift:= BYTE(DelChar) MOD 8;
Bytes[BytePos] := Bytes[BitShift] OR (1 SHL BitShift);
END;
S := '';
FOR i := 1 TO BYTE(Inp[0]) DO
IF NOT (Inp[i] IN DeleteChar) THEN S := S + Inp[i];
CRemove := S;
END;
VAR S : STRING;
BEGIN
S := 'ÍÍT??$h$áááiÍá????s$ %i%s? ???Ía% ?TÍe%st.???ááá%á.%áááá.';
Writeln('the test string: ');
Writeln(S);
Write('press <RETURN>'); Readln;
Writeln('the test string with cremove: ');
writeln(CREMOVE(S, '%$Í?á'));
Writeln('Ok...');
END.
[Back to STRINGS SWAG index] [Back to Main SWAG index] [Original]