Cuprins

Tema 1: Make your own text-editor

Obiective

Informații

Descriere

O definiție formală a unui editor de text este „Un editor de text reprezintă un tip de program folosit pentru a te ajuta să modifici textul (eng: plain text)“. Ce ne dorim de la un astfel de editor de text?

Observație! Un editor de text nu trebuie confundat cu un IDE (Integrated development environment) care are mult mai multe widgeturi pe lângă opțiunea de editare de text.

Cerințe

Dorim să implementăm propriul editor de text prin însușirea unor operații care sunt deja implementate în editoarele de text existente.

Considerăm că avem un fișier de intrare date.in în care avem un text (în funcție de test el va avea lungimea variabilă).

Am dori să prelucrăm informația din acest fișier prin diverse operații. Pentru aceasta, vom considera fiecare caracter citit din fișier, elementul unei liste.

Operațiile pe care le vom aplica asupra textului vor fi primite printr-un alt fișier de intrare: operatii.in. Acesta va avea pe prima linie un număr întreg N, ce va reprezenta numărul de operații care se aplica asupra textului.

În urma tuturor operațiilor aplicate, vom salva noul text într-un fișier ce va avea denumirea rezultat.out.

Deci putem vedea toată această implementare a unor operații asupra unui input citit dintr-un fișier ca pe un editor propriu de text. Un fișier are asociat cursorul de fișier (file pointer) care indică poziția curentă în cadrul fișierului. Cursorul de fișier este un întreg care reprezintă deplasamentul (offset-ul) față de începutul fișierului. La deschiderea fișierului acesta va avea valoarea 0.

Operațiile posibile asupra datelor din fișier vor fi:

Așadar, executabilul obținut în urma compilării va avea numele editor iar regula de rulare va fi:

./editor date.in operatii.in rezultat.out

Exemplu test

date.in
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt 
ut labore et dolore magna aliqua.
operatii.in
8
del 5
move 2
copy 3
del 2
move 10
paste
backspace
undo
rezultat.out
 ium dolor spsuit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt 
ut labore et dolore magna aliqua.

Reguli pentru trimitere