
linebreak.rb v1.0

Tai programa Ruby kalba, skirta teksto ilg eilui faile suskaidymui
 trumpesnes. 
Ikviesta be parametr pateikia savo versij ir naudojimo format.

(c)2026, Vartiklis, Jonas Skendelis. linebreak.rb yra platinama pagal 
MIT License (r. faile license.txt) licenzij. Ji leidia neribotai 
naudoti, kopijuoti, modifikuoti, platinti ir pardavinti jos kopijas.

Taiau visose io programinio produkto pilnose kopijose ar atskirose 
dalyse turi bti isaugomas autorinis raas bei licenzijos tekstas.

Panaudojimas

Kadangi Ruby yra interpretuojama kalba ir naudoja hibridin vykdymo bd
(t.y. kompiliuoja  bytecode prie vykdant program) j galima vykdyti tik 
interpretatoriumi (nors yra galimyb parengti EXE fail, kurio
vykdymo metu automatikai itraukiamas interpretatorius ir jo pagalba
vykdoma programa). Todl interpretatoriui reikia perduoti programos
pavadinim ir reikalingus parametrus.

Parametrai perduodami gana grieta tvarka. Pirmi du  teksto failo ir rezultato
failo vardai. Po j gali bti eiluts ilgi valdymo parametrai MIN ir MAX
(leistinos tiek didiosios, tiek maosios raids ir j eils tvarka nesvarbu).
Jie nra btini ir jei praleisti, tai naudojamos nutylimosios reikms 68 ir 80.
Bet kokie kitokie panaudojimo formatai sukelia atitinkam klaidos praneim.

Tad linebreak.rb vykdymo formatas bt:
ruby linebreak.rb pradinis_failas rezultato_failas [-MIN=nn] [-MAX=mm]
arba
ruby linebreak.rb pradinis_failas rezultato_failas [-MIN:nn] [-MAX:mm]
kur nn ir mm  sveiki skaiiai ir MIN <= MAX

T.y. MIN ir MAX reikmes galima nurodyti po parametro pavadinimo,
po kurio eina '=' arba ':'

Keli pavyzdiai:
ruby linebreak.rb initial_text.txt splitted_text.txt -MIN=70 -MAX=102
ruby linebreak initial_text.rb.txt splitted_text.txt -Max:90 -min:72
ruby linebreak initial_text.rb.txt splitted_text.txt -max:102

Nors minta, kad programa be parametr pateikia savo versij ir naudojomp format.
galima nurodyti ir papildomus parametrus HELP ir VERSION, kurie pradedami
vienu arba dviem '-' enklais. Be to HELP parametras turi alternatyv variant '?',
prie kur '-' nereikia. Jei naudojami ie parametrai, jie privalo bti vieninteliai
(t.y. tik vienas j ir joki kit parametr). HELP parametras pateikia
programos versij ir naudojimo format, o VERSION - tik programos versij.
Tad j naudojimo formatai yra:

ruby linebreak.rb ?
ruby linebreak.rb -help
ruby linebreak.rb --help
ruby linebreak.rb -version
ruby linebreak.rb --version

Smulkesnis apraymas

Kartais tekstiniame faile eiluts yra labai ilgos, pvz., visa pastraipa 
yra isaugota kaip viena eilut. Tok tekst sunkiau skaityti, tad natralus 
noras jo eilutes matyti trumpesnmis. Tam galime pasinaudoti kai kuriomis 
programomis (pvz., Notepad++ Word Wrap reimas nurodo, kad perirint 
tekst jo eiluts bus lauomos taip, kad visad tilpt  ekran; jei 
t lauin ufiksuoti, reikia vykdyti operacij Edit -> Line Operations 
-> Split Lines). Yra ir daugiau program (pvz. Microsoft WinWord), 
leidiani isaugoti tokius lauinius.

Taiau ne visada tinkama programa yra po ranka, o kartais jos yra komercins 
ir nepigios, tad paprastam ir greitam sprendimui Perl kalboje buvo 
sukurta linebreak.pl programa, kuri nuskaito pradin tekst ir visas 
jo eilutes suskaido  trumpesnes pagal nurodytus parametrus. Vliau i 
programa buvo perkelta  awk kalb tapdama linebreak.awk skriptu.
Vliau linebreak buvo realizuota ir kitomis kalbomis.

Pastaba: Program Perl aplinkai galite parsisisti i puslapio:
http://www.lithuanian.net/advancedhtml/perl.htm#linebreak
Program AWK kalba i:
http://www.lithuanian.net/advancedhtml/awk2.htm#linebreak
o taip pat ir visas kitas versijas, i
http://www.vartiklis.lt/lthfree/lthfree.htm

Skaidymo valdymui yra naudojami du parametrai: vienas nurodo minimal 
eiluts ilg, o kitas maksimal leistin ilg. Eilut iki minimalaus 
ilgio nra skaidoma, o j pasiekus, toliau iekoma tarpo simbolio, ties 
kuriuo eilut ir lauiama. Jei tarpas nra surandamas iki pasiekiant maksimal
eiluts ilg, eilut prievarta lauiama ties maksimaliu nurodytu ilgiu.

Tad emiau pateikta komanda sulauys tekst i pradinis.txt failo 
 eilutes, ne trumpesnes nei 70 simboli, taiau ne ilgesnes 
nei 102 simboliai, t.y. ties pirmu tarpu, esaniu po 70-os pozicijos. Rezultatas 
bus uraytas  fail suskaidytas.txt.

ruby linebreak.rb pradinis.txt suskaidytas.txt -MIN=70 -MAX=102 


Priedas

Linux komandos fold ir fmt

Linux turi komand fold, kuri atlieka labai pana darb  ilgas eilutes 
suskaito  trumpesnes.
Jos formatas:
fold -s [opcijos] [failas]
Leistinos tokios opcijos:
-s - skelti ties tarpais;
-w NNN  eiluts ilgis yra NNN simboli;
- b  skaiiuoti baitus, o ne simbolius.

Dar lankstesn ir daugiau galimybi suteikianti yra Linux komanda fmt, 
performatuojanti teksto pastraipas ir rezultat ivedanti  standartin 
ivedimo rengin. Jos formatas:
fmt [-WIDTH] [OPTION]... [FILE]..

[-WIDTH] yra eiluts ilgio nurodymo formatas, kur galima nurodyti vairiai: 
-NNN, -wNNN ar -w NNN (nutylint yra 75)
[OPTION] yra opcija, nurodanti specifin veikimo bd (-c, -p, -s, -t, 
-u), nurodant, kaip interpretuojamas pastraipos traukimas, kaip pastraipa 
upildoma tarpais ir kita. ia jos nebus aptariamos, - skaitykite komandos
apraym.

Pastaba: fold ir fmt komanda yra ir tarp Unix stiliaus utilit Windows 
terpei UnxUtils. Jas galima parsisisti i svetains:
https://sourceforge.net/projects/unxutils/

