Эта функция недописана мной. При проверке на маленьком тексте "ха ха ха ха ха ха ха" с попыткой добавить максимальное количество символов в строке 2 скрипт зацикливался намертво. Потому работает только с большими объемами текстов и большими аргументами. Сейчас у меня нет времени довести её до ума, потому доведите сами:
text := "«Яндекс» - российская транснациональная компания, владеющая одноимённой системой поиска в Сети, интернет-порталами и службами в нескольких странах. Наиболее заметное положение занимает на рынках России, Турции, Белоруссии и Казахстана."
Fun(text, arg) {
Loop %arg% {
if (A_Index = arg) {
StringReplace, text, text, %A_Space%, `n
StringReplace, text, text, @#$$, %A_Space%, All
} else {
StringReplace, text, text, %A_Space%, @#$$
}
}
return, % text
}
ffunc(text, arg) {
arr2 := []
wtext := ""
rtext := ""
ttext := ""
ns := 0
StringReplace, wtext, text, %A_Space%, ©, All
Loop, parse, wtext,,
{
arr2[A_Index] := A_LoopField
}
While (arr2.MaxIndex() != "") {
if (arr2[arg] = "©") {
Loop %arg% {
if (A_Index = arg) {
rtext .= "`n"
break
}
rtext .= arr2[A_Index]
}
arr2.Remove(1, arg)
} else {
Loop %arg% {
ttext .= arr2[A_Index]
}
Loop, parse, ttext,,
{
if (A_LoopField = "©") {
ns := A_Index
}
}
Loop %ns% {
if (A_Index = ns) {
rtext .= "`n"
break
}
rtext .= arr2[A_Index]
}
ttext := ""
arr2.Remove(1, ns)
}
}
StringReplace, rtext, rtext, ©, %A_Space%, all
return, %rtext%
}
msgbox, % ffunc(text, 30)
А может кто и подскажет что-то поумнее, а то у меня набор костылей.
Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.