IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

concervation d'un retour chariot provenant d'une string d'un .ini


Sujet :

C++Builder

  1. #1
    Membre averti
    Inscrit en
    Février 2007
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 39
    Par défaut concervation d'un retour chariot provenant d'une string d'un .ini
    Bonjour tout le monde,

    Mon problème n'est pas bien compliqué et j'imagine qu'il existe une solution toute bête

    j'ai créé un .ini dans lequel je rentre une chaine de charactère.
    je récupère cette chaine à l'aide de ReadString ce qui me crée un jolie AnsiString.
    par la suite je redessine la chaine à l'aide de DrawText.
    je voudrais pouvoir redessiner la string en concervant les retours chariots qu'il y a dans la string d'origine dans le .ini.

    avec le DrawText un simple '\n' suffit mais si j'insert '\n' dans la string du .ini lorsque je la récupère à l'aide de ReadString le '\n' se transforme en "\\n"
    j'ai trouvé le moyen de remplacer les "\\n" par des '\n' ( une boucle sur la chaine de charactere ), donc ca marche, mais j'imagine qu'il doit y avoir des moyens plus propres pour arriver au même résultat.

    merci d'avance

  2. #2
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2007
    Messages : 86
    Par défaut
    pourquoi ne pas ajouter un '\n' lorsque tu a recupérer ta ligne dans le fichier ini ?

    comme ceci (je ne suis aps sur de l'ordre des paramètres)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    AnsiString txt = ini->ReadString("section","cle","");
    txt = (Trim(txt)).Insert(Trim(txt).Length, "\n");

  3. #3
    Membre expérimenté Avatar de Mattetfamilly
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 182
    Par défaut
    Perso, j'ai une difficulté similaire:
    Nous avons établi un format type pour la n° de nos documents clients. En cas de révision, ce n° est "suffixé" d'un "-" et d'un n° de révision. Ces documents sont sauvegardés en utilisant le n° de document ainsi que on n° de révision le cas échéant: "0701703.txt" ou "0701704-1.cet". Dans ce cas de base, ou cas général pas de soucis...

    Maintenant, nous avons été confrontés à un autre problème: certains de nos documents clients sont d'origine externe sans reprises interne.
    et nos fournisseurs n'utilisent pas forcément notre format de n° de nos documents. Par exemple, l'un d'entre eux, utilisent un "/" à la fin du n° puis une n° indiquant le n° de document pour l'affaire qu'il n'y en ai qu'un ou plus plusieurs... cela donne quelque chose du genre: 0701823/1...
    Pour utiliser ce n° sutour quand il y a deux documents, exemple 0701823/2, il a fallu ruser: pas possible de mettre le caractére '/' dans les noms de fichiers...

    Nous avons donc procéder par substitution. *Nous avons cherché un caractére que nous ne risquions pas d'utiliser dans la n° de nos documents ni même dans la sérialisation de nos appareils... et le caractére '±' répondait à ce cas là tout en étant toléré de Windows pour les noms de fichiers...
    Donc dans ton ca, je te suggères de faire de la subsitution. Par exemple, si tu es sûre de ne pas utiliser le caratère '|' (Alt Gr + 6) tu n'as qu'à le mettre à la place de ton '\n' et faire une fonction spécique pour le chargement d'une clé, dans laquelle après chargement de la clé tu substitue le caractére '|' par '\n'.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    AnsiString __fastcall ReadMyString (TIniFile ficini,AnsiString SECTION, AnsiString KEY)
    {
    AnsiString MyString
    MyString=ReadString(ficini,SECTION,KEY);
    while(MyString.Pos("|")>=1)
               MyString[MyString.Pos("|")]='\n';
    return MyString;
    }
    @+
    Mattetfamilly.

  4. #4
    Membre averti
    Inscrit en
    Février 2007
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 39
    Par défaut
    en fait c'est ce que j'ai fait une substitution visiblement c'est la meilleure des méthodes. merci pour vos réponses

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/11/2014, 21h57
  2. [String] Supprimer retours chariot en début de String
    Par doons dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 06/06/2012, 10h32
  3. Retour chariot + récupération dans une variable JS
    Par seblo_scoqi dans le forum Langage
    Réponses: 12
    Dernier message: 03/12/2008, 10h37
  4. [débutant] Gestion retour à la ligne d'une String dans une JSP
    Par caballero dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 26/02/2008, 12h14
  5. [VB.NET] Enlever les retours à la ligne dans une string
    Par adrix26 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 09/01/2007, 23h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo