Você está aqui: Qt ::: IO - Input/Output (Entrada/Saída) ::: QTextStream |
Entenda e aprenda a usar a classe QTextStream em seus programas QtQuantidade 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(). |
![]() |
Veja mais Dicas e truques de Qt |
Dicas e truques de outras linguagens |
Códigos Fonte |
![]() 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 |
![]() 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 |