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: 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 |
Java - Como calcular juros simples e composto - Calculando juros simples e montante na linguagem Java Java - Programação orientada a objetos em Java - Como criar e usar interfaces em seus programas Java |
Códigos Fonte |
Software 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 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 |