Você está aqui: Qt ::: IO - Input/Output (Entrada/Saída) ::: QTextStream

Entenda e aprenda a usar a classe QTextStream em seus programas Qt

Quantidade de visualizações: 7479 vezes
A classe QTextStream nos fornece uma interface útil para a leitura e escrita de texto. Objetos desta classe podem operar sobre um QIODevice, uma QByteArray ou uma QString. O uso dos operadores de fluxo da classe QTextStream permitem escrever e ler palavras, linhas de texto e números. Para a geração de conteúdo texto, esta classe suporta opções de formatação para o tamanho de campos e alinhamento, assim como a formatação de números.

Veja um trecho de código no qual escrevemos a frase "Qt e C++ são realmente muito bons." em um arquivo texto:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

void JanelaPrincipal::on_pushButton_clicked()
{
  // #include <QFile>
  // #include <QTextStream>

  // caminho e nome do arquivo
  QFile arquivo("C:\\estudos_qt\\teste.txt");

  // o arquivo foi aberto com sucesso?
  if(arquivo.open(QFile::WriteOnly | QFile::Truncate)){
    // vamos criar uma nova instância da classe QTextStream
    QTextStream saida(&arquivo);
    // vamos escrever no arquivo
    saida << "Qt e C++ são realmente muito bons.";
    QMessageBox::information(this, "Aviso",
      "Operação efetuada com sucesso.");
  }
  else{
    QMessageBox::information(this, "Aviso",
     "Não foi possível abrir o arquivo");
  }
}

Internamente a classe QTextStream usa um buffer baseado em Unicode e um objeto QTextCodec é usado por QTextStream para suportar automaticamente diferentes conjuntos de caracteres. Por padrão, o método QTextCodec::codecForLocale() é usado para a leitura e escrita, mas, é possível definir o codec por meio de uma chamada ao método setCodec(). A detecção automática de Unicode também é suportada. Quando esta funcionalidade está ativada (o comportamento padrão), a classe QTextStream detectará o BOM (Byte Order Mark) de UTF-16 ou UTF-32 e mudará para o codec UTF apropriado durante a leitura. A classe QTextStream não escreve um BOM por padrão, mas podemos habilitar esta funcionalidade chamando o método setGenerateByteOrderMark(true). Quando QTextStream opera em uma QString diretamente, o codec é desabilitado.

Veja agora um trecho de código no qual lemos o conteúdo de um arquivo texto e o armazenamos em uma QString:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

void JanelaPrincipal::on_pushButton_clicked()
{
  // #include <QFile>
  // #include <QTextStream>

  // caminho e nome do arquivo
  QFile arquivo("C:\\estudos_qt\\teste.txt");

  // variáveis que guardarão o conteúdo e a linha atual do arquivo
  QString conteudo, linha;

  // o arquivo foi aberto com sucesso?
  if(arquivo.open(QFile::ReadOnly)){
    // vamos criar uma nova instância da classe QTextStream
    QTextStream entrada(&arquivo);

    // vamos ler do arquivo uma linha de cada vez
    do{
      linha = entrada.readLine();
      conteudo += linha + "\n";
    }while(!linha.isNull());

    // vamos mostrar o conteúdo lido
    QMessageBox::information(this, "Aviso",
      tr("Conteúdo do arquivo: \n\n%1").arg(conteudo));
  }
  else{ 
    QMessageBox::information(this, "Aviso",
     "Não foi possível abrir o arquivo");
  }
}

Há três formas gerais de se usar a classe QTextStream ao efetuar a leitura de arquivos do tipo texto:

Um trecho (pedaço) de cada vez - Isso é possível por meio dos métodos readLine() ou readAll().

Uma palavra de cada vez - A classe QTextStream suporta o streaming para objetos QString, QByteArrays e buffers de char*. As palavras são delimitadas por espaços, e espaços antes das palavras são automaticamente descartados.

Um caractere de cada vez - Isso é feito passando o conteúdo do arquivo para os tipos QChar ou char. Este método é geralmente usado para o manuseio de entrada ao analisar (parse) arquivos, independente da codificação dos caracteres e semânticas de final de linha. Para descartar espaços em branco, basta usar o método skipWhiteSpace().

Link para compartilhar na Internet ou com seus amigos:

Veja mais Dicas e truques de Qt

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 53 usuários muito felizes estudando em nosso site.