[Qt] Enregistrement fichier texte
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

[Qt] Enregistrement fichier texte



  1. #1
    defender19

    [Qt] Enregistrement fichier texte


    ------

    Bonjour!


    J'ai créé un mini bloc note à ma sauce avec Qt mais j'ai un petit soucis :

    Si j'écris du texte sur plusieurs lignes (dans le QTextEdit), quand j'enregistre et ouvre ce fichier avec le bloc note windows, tout est attaché et la présentation n'est pas respectée.

    Par contre, quand j'ouvre ce fichier avec mon bloc note, la mise en forme est respectée!

    Code:
    void bloc::enregistrerSous(){
        QString fichier=QFileDialog::getSaveFileName(this, "Enregister Sous", QString(), "Tous les fichiers (*.*)");
    
        QFile file(fichier);
    
        if (file.open(QFile::WriteOnly)) {
            QTextStream out(&file);
            out << pageActu()->toPlainText()<< endl;
        }
            else
                QMessageBox::critical(this, "Erreur", "Impossible d'enregistrer le fichier!");
        changerNom(fichier);
    
    }
    Si quelqu'un a une idée, merci

    -----

  2. #2
    invite4492c379

    Re : [Qt] Enregistrement fichier texte

    Hello,

    à première vue, je dirais que tu es face à un problème d'encodage.
    Le premier peut provenir du fait que le bloc note windows va à la ligne avec un \n\r et ton fichier ne contient que des \n : essaye de l'ouvrir avec wordpad ...
    Le second pourra te provoquer des changements de caractères, Qt utilise UTF8 (à vérifier) et windows par défaut ANSI(à vérifier aussi).
    Le troisième tient tout simplement à l'utilisation de fontes différentes, la présentation est différente entre une fonte monospace et proportionnelle.

  3. #3
    defender19

    Re : [Qt] Enregistrement fichier texte

    En effet, en ouvrant le fichier avec WordPad, tout est en place.
    Par contre, pour les caractères aucun changement entre mon bloc et celui de windows, avec tous les caractères du clavier.

    Ta dernière ligne, j'ai pas compris mais pas grave :P.

    Il n'y a pas un moyen d'encoder pour que ce soit partout pareil? A la rigueur, mettre le même encodage que le bloc note windows, en rajoutant la ligne :

    out.setCodec("ANSI"), ça résout le soucis?

    Du coup, je viens de comprendre pourquoi quand on ouvre du code avec le bloc note windows, c'est tout moche et pas avec word pad, héhé!

  4. #4
    invite4492c379

    Re : [Qt] Enregistrement fichier texte

    Citation Envoyé par defender19 Voir le message
    En effet, en ouvrant le fichier avec WordPad, tout est en place.
    Par contre, pour les caractères aucun changement entre mon bloc et celui de windows, avec tous les caractères du clavier.
    Super.

    Citation Envoyé par defender19 Voir le message
    Ta dernière ligne, j'ai pas compris mais pas grave :P.
    Code:
    avec une fonte moospace toutes les lettres ont la même «largeur»
    
    iiii
    eeee
    mmmm
    Pas avec une fonte proportionnelle

    iiii
    eeee
    mmmm

    Citation Envoyé par defender19 Voir le message
    Il n'y a pas un moyen d'encoder pour que ce soit partout pareil? A la rigueur, mettre le même encodage que le bloc note windows, en rajoutant la ligne :

    out.setCodec("ANSI"), ça résout le soucis?

    Du coup, je viens de comprendre pourquoi quand on ouvre du code avec le bloc note windows, c'est tout moche et pas avec word pad, héhé!
    Non, car le traitement des sauts de lignes (et des tabs) est indépendant de l'encodage, il est spécifique à chaque application.
    Avant d'écrire dans ton fichier tu peux remplacer tous les '\n' par des "\r\n" ... à tester ...

  5. A voir en vidéo sur Futura
  6. #5
    defender19

    Re : [Qt] Enregistrement fichier texte

    Ok merci des infos! Pour ce que j'ai testé, il n'y a que le bloc note windows qui change la présentation, open office garde mes retours à la ligne.

    Remplacer tous les '\n' par '\r\n' risque d'être une peu pénible... Puisqu'il faut tout décaller après, on va oublier!

    Une autre question, je cherche à afficher dans les onglets de mon bloc note le nom du fichier quand il est enregistré, seulement mon QString fichier récupère tout le chemin,
    il a moyen de récupérer que ce que tape l'utilisateur? Ou juste récupérer le nom du fichier ?

    Sinon, j'imagine qu'il faut passer par les expressions régulières? Mais en perl et java ça va, mais en c++...

  7. #6
    invite4492c379

    Re : [Qt] Enregistrement fichier texte

    Citation Envoyé par defender19 Voir le message
    Ok merci des infos! Pour ce que j'ai testé, il n'y a que le bloc note windows qui change la présentation, open office garde mes retours à la ligne.

    Bah oui ... vieille technologie ...

    Citation Envoyé par defender19 Voir le message

    Remplacer tous les '\n' par '\r\n' risque d'être une peu pénible... Puisqu'il faut tout décaller après, on va oublier!
    Remplacer une sous-chaîne par une autre dans une chaîne de caractères n'est pas pénible, il y a des choses toutes faites pour ça ... encore faut-il voir si cela sera réellement utile.

    Citation Envoyé par defender19 Voir le message
    Une autre question, je cherche à afficher dans les onglets de mon bloc note le nom du fichier quand il est enregistré, seulement mon QString fichier récupère tout le chemin,
    il a moyen de récupérer que ce que tape l'utilisateur? Ou juste récupérer le nom du fichier ?

    Sinon, j'imagine qu'il faut passer par les expressions régulières? Mais en perl et java ça va, mais en c++...
    Si tu ne veux pas développer crossplatform, il suffit de chercher (si elle existe) la derniere occurence de '\', tout ce qui suit jusqu'à la fin est le nom du fichier. Sinon tu peux toujours parcourir la doc et tomber sur la classe QFileInfo ...

    La doc est utile quand on programme avec une lib externe Cela t'aurait valu un RTFM (read the fucking manual) sur d'autres forums

  8. #7
    defender19

    Re : [Qt] Enregistrement fichier texte

    Je lis la doc de Qt! Normalement, je cherche bien partout avant de demander, google, site du zéro, ici, mais là j'ai profiter du post et de ta connaissance qui me semble infinie dans ce domaine!!

    En même temps, la doc c'est en anglais (et oui! pas tout le temps facile...) et puis ça va quand tu sais quoi chercher, mais vu le nombre de chose dedans, c'est quand même dur d'y aller en aveugle. Si on sait pas que la classe QFileInfo permet ça, ça parait dur de le trouver sinon, enfin, pour moi!

    Du coup merci, ça marche! Ca sera pour plus tard le RTFM

  9. #8
    invite4492c379

    Re : [Qt] Enregistrement fichier texte

    No pb ... j'imagine bien que si tu débutes tu es un peu perdu dans la doc ...

    Bon courage

  10. #9
    defender19

    Re : [Qt] Enregistrement fichier texte

    Bah je débute en C++ ouai, le reste après, j'ai quand même quelques langages sous le coude avec les cours...(Java, Perl, C).

    Tu bosses dans le domaine toi?

  11. #10
    invite4492c379

    Re : [Qt] Enregistrement fichier texte

    gestion projet et infrastructure d'entreprise.

Discussions similaires

  1. enregistrement fichier word sous messagerie
    Par marc.mcd dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 26/01/2011, 17h49
  2. Macro excel - enregistrement en fichiers texte
    Par invitee351fa61 dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 28/01/2010, 23h15
  3. enregistrement/récupération de fichier sur CATIA V6
    Par inviteb07ac754 dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 18/10/2009, 17h39
  4. fichier texte et PIC
    Par FantomX dans le forum Électronique
    Réponses: 5
    Dernier message: 30/06/2007, 09h55
  5. traitement fichier texte
    Par invited064bf1a dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 16/04/2006, 21h42