Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- procedure StrPlace(s: string; var str: string; position: Integer);
- var
- d, i, p, c, l, z: Integer;
- begin
- z := Length(s);
- if (z > 0) then
- begin
- l := Length(str);
- if ((l > 0) and not (position > l)) then
- begin
- p := position;
- case (p > 0) of
- True:
- begin
- case ((p + z) > l) of
- True: c := ((l - p) + 1);
- False: c := z;
- end;
- for i := 1 to c do
- str[((i + p) - 1)] := s[i];
- end;
- False:
- begin
- d := (1 - p);
- if (d < z) then
- begin
- c := (z - d);
- p := (p + d);
- if ((p + c) > l) then
- c := ((l - p) + 1);
- for i := 1 to c do
- str[((p + i) - 1)] := s[(i + d)];
- end;
- end;
- end;
- end;
- end;
- end;
- var
- str: string;
- i, l, x, y, z: Integer;
- const
- TEXT1 = 'Testing this StrPlace() function';
- TEXT2 = ' ';
- BACKWARDS = False;
- ITERATIONS = 3;
- DELAY = 25;
- begin
- l := Length(TEXT2);
- x := -(l - 1);
- y := (l + 1);
- case BACKWARDS of
- True:
- for z := 1 to ITERATIONS do
- for i := y downto x do
- begin
- ClearDebug;
- str := TEXT2;
- StrPlace(TEXT1, str, i);
- WriteLn('"' + str + '" [' + IntToStr(i) + ']');
- Wait(DELAY);
- end;
- False:
- for z := 1 to ITERATIONS do
- for i := x to y do
- begin
- ClearDebug;
- str := TEXT2;
- StrPlace(TEXT1, str, i);
- WriteLn('"' + str + '" [' + IntToStr(i) + ']');
- Wait(DELAY);
- end;
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement