Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- procedure StrPut(s: string; var str: string; position: Integer);
- var
- l, z, c: Integer;
- t: string;
- begin
- z := Length(s);
- if (z > 0) then
- begin
- l := Length(str);
- case (position > 0) of
- True:
- case (position > l) of
- False:
- case (position > 1) of
- True:
- case ((position + z) <= l) of
- False: str := (Copy(str, 1, (position - 1)) + s);
- True: str := (Copy(str, 1, (position - 1)) + s + Copy(str, (position + z), (l - (position + z) + 1)));
- end;
- False:
- case (z >= l) of
- False: str := (s + Copy(str, (position + z), (l - z)));
- True: str := s;
- end;
- end;
- True:
- case (position = (l + 1)) of
- False:
- begin
- t := StringOfChar(#32, ((position - l) - 1));
- str := (str + t + s);
- end;
- True: str := (str + s);
- end;
- end;
- False:
- begin
- c := ((position + z) - 1);
- case (c < 1) of
- True:
- case (c = 0) of
- True: str := (s + str);
- False: str := (s + StringOfChar(#32, (c * -1)) + str);
- end;
- False:
- case (c <= l) of
- False: str := s;
- True: str := (s + Copy(str, (c + 1), (l - c)));
- end;
- end;
- end;
- end;
- end;
- end;
- var
- str: string;
- i: Integer;
- const
- TEXT1 = 'Testi';
- TEXT2 = 'ng!';
- begin
- for i := -15 to 15 do
- begin
- ClearDebug;
- str := TEXT2;
- StrPut(TEXT1, str, i);
- WriteLn('"' + str + '" [' + IntToStr(Length(str)) + ']');
- Wait(100);
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement