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: 7426 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:

Vamos testar seus conhecimentos em

Características do concreto armado

Sabe-se que o controle adequado da retração é fundamental no projeto e na construção de estruturas de concreto para evitar problemas como fissuração e para garantir a integridade da estrutura ao longo do tempo.

Marque a alternativa correta a respeito desse fenômeno.

A) A retração química pode levar à formação de produtos de hidratação que ocupam mais espaço do que os materiais originais.

B) A retração plástica ocorre após o endurecimento do concreto e está relacionada à perda contínua de umidade.

C) A retração por secagem ocorre durante o estado fresco do concreto, enquanto ele ainda está sendo moldado e antes de começar a endurecer.

D) A retração térmica ocorre devido a reações químicas dentro do concreto, causando expansão especialmente em estruturas expostas a condições ambientais extremas.

E) A retração por secagem é comum em superfícies de concreto expostas ao Sol ou ao vento durante a fase de cura, ou seja, no seu processo de endurecimento.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em AutoCAD Civil 3D

Survey Points e COGO Points

Survey points não podem ser movidos ou editados sem acessar a base de dados do levantamento e sem usar comandos especializados para a edição de pontos de levantamento.

A) Verdadeiro

B) Falso
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Ética e Legislação Profissional

Ética profissional, social, política

Como se lê nas obras de Platão e Aristóteles, existe uma diferença constantemente remarcada em relação a certas dimensões estritamente teóricas e práticas. Ao passo que Platão preza pela dimensão mais reminiscente em relação às virtudes éticas, Aristóteles vê essa dimensão humana de outro modo.

"Estas ciências práticas, de fato, dizem respeito à conduta dos homens, bem como ao fim que através dessa conduta eles querem alcançar, seja enquanto indivíduos, seja enquanto fazendo parte de uma sociedade, sobretudo da sociedade política" (REALE, 1994, p. 405).

A respeito do trecho citado, assinale a alternativa correta:

A) O indivíduo ético busca alcançar as suas virtudes independentemente das ações alheias.

B) A ética é um exercício tanto individual quanto coletivo.

C) A ética deve ser exercida apenas enquanto exercício político.

D) Na vida em sociedade, a ética atinge apenas a dimensão do todo.

E) A ética existe enquanto código e ultrapassa as microrrelações sociais.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em

Dimensionamento de lajes maciças à flexão

As lajes maciças são armadas em cruz, quando apresentam a relação entre o maior e o menor vão inferior a 2. Nessas situações, a laje pode ser dimensionada a partir de valores preestabelecidos em tabelas como a de Marcus.

Considere a laje maciça armada em cruz apresentada na figura a seguir:



Dados:

Peso específico do concreto = 25kN/m3
Carga do contrapiso + revestimento = 2,00kN/m2
Carga acidental = 2,50kN/m2
Altura da laje (h) = 10cm
Altura útil (d) = 6cm
Cobrimento nominal = 2,5cm
fcd = fck / 1,4 (considerar concreto de 20MPa)
fyd = fyk / 1,15 (considerar aço CA-50)

Assinale a alternativa correta:

A) A altura de 10cm não é suficiente para resistir ao momento máximo atuante, devendo ser empregada, pelo menos, uma altura de 11cm na laje em questão.

B) A altura de 10cm não é suficiente para resistir ao momento máximo atuante, devendo ser empregada, pelo menos, uma altura de 12cm na laje.

C) A altura de 10cm não é suficiente para resistir ao momento máximo atuante, devendo ser empregada, pelo menos, uma altura de 13cm na laje.

D) A altura de 10cm não é suficiente para resistir ao momento máximo atuante, devendo ser empregada, pelo menos, uma altura de 14cm na laje.

E) A altura de 10cm não é suficiente para resistir ao momento máximo atuante, devendo ser empregada, pelo menos, uma altura de 15cm na laje.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil

Serviços preliminares e instalações provisórias

Em um canteiro de obras, são elementos ligados à produção e ao apoio administrativo, respectivamente:

A) A manutenção de equipamentos e a garagem de veículos pesados.

B) A central de concreto e a manutenção de equipamentos.

C) A central de concreto e o escritório técnico.

D) A sala de treinamento e a central de produção de fôrmas.

E) A área de lazer de operários e a central de pré-moldados.
Verificar Resposta Estudar Cards Todas as Questões

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: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



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