Contando quantas palavras um arquivo tem – Em Qt

Bom pessoal. Acho que vou começar uma série de tutoriais sobre Qt.

Para esquentar,vamos fazer um grep -c em Qt. Vamos contar em determinado
arquivo quantas palavras tem. Para isso, passo a passo:

1 – Criar o arquivo main.cpp:

#include <QDebug> // Para as mensagens do console ao estilo Qt ;)
#include <QFile> // Tratamento de arquivos

int main (int argc, char *argv[])
{
}

2 – Certificar-se de que o programa foi entrado com o numero
de argumentos desejados:

if(argc < 3)
 {
 qDebug() << "Uso: ./aplicativo ARQUIVO PALAVRA";
 return 1; // Retorna 1: Falha. Retorna 0: Sucesso
 }

3 – Criar uma instancia do QFile e um contador:
O QFile será iniciado com o  PRIMEIRO argumento da linha de comando,
já que o ZERO é o nome do programa:

QFile f(argv[1]); // Cria instancia do QFile
int contar = 0;  // Cria um contador

4 – Abrir o arquivo, se não conseguir, retornar um erro:

if(!f.open(QIODevice::ReadOnly | QIODevice::Text))
 {
 qDebug() << "Falha ao abrir o arquivo: " << f.fileName();
 return 1; // Retorna falha novamente
 }

5 – Criar um QTextStream, linkado ao QFile, que toma conta de converter o arquivo e cada            linha dele em um QString, que facilita todo o nosso futuro serviço. Também criar um QString, que será a qual conterá as linhas para verificação:

QTextStream arquivoTexto(&f);
QString linha;

6 – Agora a parte crucial: Ler linha por linha o TextStream, armazenar na QString, contar quantas incidencias do SEGUNDO parametro há na string e adicionar ao contador:

while(!arquivoTexto.atEnd())
 {
 linha = arquivoTexto.readLine();
 contar = contar + linha.count(QString(argv[2]));
 }

7 – Por ultimo, mostrar ao usuario o resultado:

qDebug() << "Lido: " << f.fileName() << ". Contado " << contar << argv[2] << "(s)";

Bom é isso, para quem quiser o código feito:

http://pastebin.com/hxq4LSD6

 

Abraços!

Advertisements

About barklome

This is angelox's (or barklome) personal blog. Talking about Embedded Linux things,Free Software Things,and tutorials about how-to-use free software.
This entry was posted in C++, Qt. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s