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: 7550 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: 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 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: 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(); 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 |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |