Este projeto consiste em construir uma planilha eletrônica em modo texto, usando a biblioteca NCurses para a gestão do terminal. A interface da planilha deve ser similar à figura abaixo:
O formato CSV - Comma Separated Values (Valores Separados por Vírgula) é um formato popular para a representação de tabelas de dados. Existem diversas variantes desse formato, então neste projeto assumimos a seguinte especificação:
Exemplo de um arquivo CSV:
Data,Descrição,Valor 05/04/2016,"Despesas apto (luz, água)",50 07/04/2016,Material de limpeza,20.30 11/04/2016,Matrícula inglês,110 13/04/2016,"Papelaria (cadernos, canetas)",25 15/04/2016,Supermercado,60 19/04/2016,Credito ônibus,50 20/04/2016,Almoço (pizza),20 26/04/2016,Camiseta,35 30/04/2016,Aluguel,"500"
= A op B, onde A e B são números ou referências de células e op é uma operação algébrica simples (+, -, *, /).Células podem ser referenciadas usando suas coordenadas: por exemplo, a string A5 referencia o valor da célula na coluna A e linha 5.
texcel : abre uma planilha em branco (sem nome)texcel arq1.csv: abre o arquivo arq1.csv-Wall texcel (de Text Excel)texcel.c (programa principal)csvfile.c, csvfile.h (lê/escreve arquivos CSV)formula.c, formula.h (funções para analisar e calcular fórmulas)all, clean e purgeNcurses:
/usr/lib/ncurses/examples/ (pacote ncurses-examples)ncurses-examples disponível no Debian e derivados (Ubuntu, Mint, etc).Instalação da biblioteca NCurses no Linux (Ubuntu, Debian, Mint):
sudo apt-get install libncurses-dev
O código de inicialização da biblioteca NCurses, com as configurações necessárias para este projeto, é o seguinte:
initscr () ; // inicializa a biblioteca ncurses raw () ; // permite tratar teclas de controle (^C, ^Z, etc) keypad (stdscr, TRUE) ; // habilita leitura de teclas de setas, Fn, etc noecho () ; // não escreve as teclas lidas na tela curs_set (0) ; // esconde o cursor do terminal
Projetos similares a este: