Автоматическое разбиение строки на подстроки по ширине колонки / ячейки или по количеству символов
22.10.16 02:18

??? ?????? ? ????????? ??????? ???????????? ????????? ???? ? ?? ?? ????????, ????? ??????, ???????????? ??????????, ?? ????????? ? ?????????? ??? ?? ???????.

??????, ??? ???????? ?? ?? - ?????? ???????? ????? ?????????? ??????:


??????????.???????????????? = ??????????????????????????????????????.??????????;

??????????

?? ????? ??????? ?? ?????? ????????. ????????, ?????????, ????? ????? ? ??????? ???? ?????? ????????????? ??? ??????????? ?? ??????????. ????? ????? ???????????? ?????? ??????? ??????, ?? ???? ????? ????? ?????(? ?????????? ????????), ????? ???????????? ???????? ???? ??????. ????? ????????????? ? ????? ??????? ???????, ???????? ?????? ??????? ??? ???? "_" ? ????????? ???????????? ?????, ?? ????? ? ??????????, ??? ??? ???????, ??????? ??????? ????????? ??? ????????? ? ?? ?????????? ?????? ????? ??????. ? ????? ????????? ????????????? ??????? ?????? ?? ?????????.

??????? 1. ?? ?????????? ???????? ??????.


??????? ?????????????????????(??????????????, ???????????????????????????)
	??????????????????????????? = ?(??????????????????????????? < 1, 1, ???????????????????????????);
	?????????????? = ???????????(??????????????, ???????.??, " ");
	//??????? ?????? ?? ???????????? ????? ? ?????? ? ?????? ????????
	???? ?????? ????
		//???????? ???-?? ?????
		?????????? = ?????????????(??????????????);
		//????? ?????????
		????????? = ?????????????????(??????????????, ??????????);
		//???? ?????? ?????????
		???? ????????(?????????) > ??????????????????????????? ?????
			?????????????? = ???????????????????????????;
			?????????????????????(??????????????, ?????????, ???????????????????????????);
		?????
			????????;
		?????????;
	??????????;
	
	??????? ??????????????;
????????????

????????? ?????????????????????(??????????????, ?????????, ???????????????????????????)
	//????? ? ??? ????????? ??????
	?????????????? = ???????????????????????????;
	?????????????? = ????????(?????????);
	???? ?????? ????
		???? ??????????(?????????, ??????????????) = 32 ?????
			//???????? ?????? ?? ???????
			?????????? = ???(?????????, ?????????????? - 1) + ???????.?? + ????(?????????, ?????????????? + 1, ?????????????? - ??????????????);
			//???????? ?????? ? ????????
			?????????????? = ???????????(??????????????, ?????????, ??????????);
			????????;
		????????? ?????????????? = 1 ?????
			//???????? ?????? ?????
			???????? = (??????????????????????????? = 1);
			?????????? = ???(?????????, ?(????????, ???????????????????????????, ??????????????????????????? - 1)) + ?(????????, "", "-") + ???????.?? + ????(?????????, ?(????????, ??????????????????????????? + 1, ???????????????????????????), ?????????????? - (??????????????????????????? - 1));
			//???????? ?????? ? ????????
			?????????????? = ???????????(??????????????, ?????????, ??????????);
			????????;
		?????????;
		?????????????? = ?????????????? - 1;
	??????????;
??????????????

???????? ?? ???????? ????, ?????? ????????, ???? ????? ?? ?????? ??????? ????, "?????? ?? ??????" ????. ??????, ???? ???????? ?????? ?????????? 1, ?? ??????? ????????????? ?????? ? "???????".

??? ?????? ??? ???????? ? ???????????????????????????? ??????? ???? ??? ????? ? ?????? ??????? ?? ?????????? ??????? ?, ???????? ?????????? ???????????? ????????, ???????????? ??? ????????.

???????! ? ?????????, ??????? ??? ?????? ??? ?????????? ???????. ? ? ???????? ?????????? ?????????. ?????????, ??????? ?????? ??????, ? ??????? ?????? ? ??????? ???? "?", "?", "?" ????????, ??? ??? ?? ????? ? ???????. ????? ??? ????? ????? ? ?????????? ?????????? ???????? ? ???????? ?? ????? ???????, ?? ????? ? ?????? ????????? ????? ????????, ????? ?????????? ?? ?????????, ????? ????????? ???????, ???? ?? ?????? ??????? ??? ?????????? ?????????? ?????.

??????? 2. ?? ?????? ?????? / ???????.

??? ?????????? ?? ??????? ??????? ??? ????????????? ??????! ???????, ??? ? ????? ??????????? ??? ???????? ??????.


??????? ???????????????????????????????????(??????, ???????????????????, ??????????????)
	?????????????? = ???????????(??????????????, ???????.??, " ");
	//??????? ?????? ?? ???????????? ????? ? ?????? ? ?????? ????????
	???? ?????? ????
		//???????? ???-?? ?????
		?????????? = ?????????????(??????????????);
		//????? ?????????
		????????? = ?????????????????(??????????????, ??????????);
		//???? ?????? ?????????
		?????????????? = ????????(?????????);
		//???????? ????????
		??????? = 1;
		???? ??????? < ?????????????? ????
			???? ???????????????????????????????????????(??????, ???????????????????, ???(?????????, ???????)) ?????
				??????? = ??????? + 1;
			?????
				??????? = ??????? - 1;
				????????;
			?????????;
		??????????;
		??????? = ?(??????? < 1, 1, ???????);
		??????????????????????????? = ???????;
		???? ?????????????? > ??????????????????????????? ?????
			?????????????? = ???????????????????????????;
			?????????????????????(??????????????, ?????????, ???????????????????????????);
		?????
			????????;
		?????????;
	??????????;
	
	??????? ??????????????;
????????????

????????? ?????????????????????(??????????????, ?????????, ???????????????????????????)
	//????? ? ??? ????????? ??????
	?????????????? = ???????????????????????????;
	?????????????? = ????????(?????????);
	???? ?????? ????
		???? ??????????(?????????, ??????????????) = 32 ?????
			//???????? ?????? ?? ???????
			?????????? = ???(?????????, ?????????????? - 1) + ???????.?? + ????(?????????, ?????????????? + 1, ?????????????? - ??????????????);
			//???????? ?????? ? ????????
			?????????????? = ???????????(??????????????, ?????????, ??????????);
			????????;
		????????? ?????????????? = 1 ?????
			//???????? ?????? ?????
			???????? = (??????????????????????????? = 1);
			?????????? = ???(?????????, ?(????????, ???????????????????????????, ??????????????????????????? - 1)) + ?(????????, "", "-") + ???????.?? + ????(?????????, ?(????????, ??????????????????????????? + 1, ???????????????????????????), ?????????????? - (??????????????????????????? - 1));
			//???????? ?????? ? ????????
			?????????????? = ???????????(??????????????, ?????????, ??????????);
			????????;
		?????????;
		?????????????? = ?????????????? - 1;
	??????????;
??????????????

??????? ???????????????????????????????????????(??????, ?????????????, ?????)
	?????????????? = ?????????????????????(??????, ?????????????);
	
	?????????? = ????? ?????????????????;
	??????????.???????(??????);
	?????????? = ??????????.???????(?????????????.???);
	??????????.???????????????? = ??????;
	??????????.???????????????? = ??????????????????????????????????????.??????????;
	
	??????????.???????????? = 0;
	??????????.????? = ?????;
	????????? = ?????????????????????(??????????, ??????????);
	
	??????? ?(?????????????? = ?????????, ??????, ????);
????????????

??????? ?????????????????????(??????, ??????????)
	???????? = ??????.???????.????????(?????????????????????????????.?????);
	????????.???????????(??????????);
	???????????? = ????????.??????;
	??????.???????.???????(????????);
	???????(????????????);
????????????

?? ? ??????? ? ????????? ???????? ??????????????? ??????:


?????????????? = "????? ??????? ??????, ??????????? ????? ? ?????????? ??? ?? ???????";

?????? = ????? ?????????????????;
????? = ?????????????("?????");
???????????? = ?????.???????????????("????????????");
	
????????????????????? = ???????????????????????????????????(????????????, ????????????.???????("R1C2"), ??????????????);
	
??? ? = 1 ?? ?????????????(?????????????????????) ????
	????????????.?????????.????????????? = ?????????????????(?????????????????????, ?);
	??????.???????(????????????);
??????????;

??????? 3. ?? ????????? ??????, ? ????????? ?????.

????? ???? ????? ??????? ?? ?????????? ??????? ?? ??? ????????:

  1. ?????? ?????? ???? ??????? ?????????? ?????????? (????? ??????????? ??????, ???? ?????? ???????????).
  2. ????????? ????????? ????? ??????????? ?????? ??????? ??????????/??????????????.
  3. ?????? ?????? ?????? ?????????? ??????????, ?? ????? ??? ? ?? ?????????.

???????? ?? ??, ??? ? ? ???????? 2, ? ??? ????????, ??? ???????? ???????? ?? ? ?????? ??????, ? ? ???????? ??????.

? ??????????? ????? ?????????(??, ??? ?? ??????????), ??????????????? ???????? ?????????? ?????? ???????.

??????? ????-?? ???????? ????????. 

Read Full Article