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

Langage Delphi Discussion :

Comment écrire une très longue variable dans un fichier ?


Sujet :

Langage Delphi

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 36
    Par défaut Comment écrire une très longue variable dans un fichier ?
    voilà, mon programme écrit dans un fichier .bat
    mon souci, c'est qu'a un moment il doit écrire le contenu d une variable et celle ci peut s'avérer trèèèèèèès lngue ...
    en fait cette variable est la concaténation de plusieurs, genre la variable peut etre :
    agadou agadi agada agadou agadi agada agadou agadi agada agadou agadi agada agadou agadi agada agadou agadi agada agadou agadi agada agadou agadi agada agadou agadi agada agadou agadi agada agadou agadi agada agadou agadi agada

    et au bout d un moment, bah ça n'écris plus dans mon fichier bat .. :/

    mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Writeln(FichierFonction, 'mafonction a -m'+IntToStr(pourcen)+' -v'+IntToStr(taille)+' -r "'+pourcRar+'" '+fichier);
    c'est fichier qui peut etre trrrrrrrrrrreeeeeeees long

    ->existe il un moyen pour mettre quand meme le contenu de la variable dans le fichier
    -> ou en dos y a t il un moyen de continuer ca commande en allant a la ligne ( comme ça je pourrais simuler ça entre chaque valeur de la concaténation ^_^ )

    Merci ^_^

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 50
    Par défaut
    salut,

    je pense que si tu utilise write au lieu writeln ton texte sera mis bout a bout sans retour a la ligne et tu fais des write a la chaine...


  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 68
    Par défaut
    En utilisant un TStringlist? ( J'ai pas trop compris la question ^^ ).

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 210
    Par défaut
    Je crois me souvenir que la longueur max d'une chaine de caractère est limitée dans ce type de fichier (256 ou 65536 caractères je sais plus), mais cela reste à vérifier.

    En plus des deux solutions proposées ci-avant, je propose cela (je garanti rien) :
    - ecrire dans un fichier binaire non typé (pas un *.bat, mais un truc style *.hex ou *.bin par exemple)
    - écrire dans un mémo et enregistrer ton mémo

    D'autre part, est-ce que le nombre de caractère de la fonction writeln est illimité ?

    Salutations

  5. #5
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 68
    Par défaut
    Citation Envoyé par diam's
    - écrire dans un mémo et enregistrer ton mémo
    Ecrire dans un TMemo revient à écrire dans un TStringlist.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 36
    Par défaut
    effectivement write semble limité par le nombre de caractere.
    Mais j'ai trouvé un autre moyen, j'ai modifié ma fonction ^_^

    merci a vous tous ^_^

  7. #7
    Membre Expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    Un petit tag [résolu] alors ?

  8. #8
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 462
    Par défaut
    salut

    en plus du tag tu devrais utilise la fonction format

    dans ton cas cela devrais donner ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Writeln(FichierFonction,fornat( 'mafonction a -m%d  -v%d  -r"%s" %s ' ,[pourcen,taille,pourcRar,fichier ]));
    de plus si j'avai ete toi j'aurai utiliser un object stream on est en programmation objet donc autant utiliser les classe mis a notre disposition

    @+ Phil

  9. #9
    Membre Expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 564
    Par défaut
    Salut

    Je confirme : utiliser un TFileStream aurait deux avantages:
    - pas de limitation,
    - plus pertinent dans la philosophie de Delphi.

    Si tu veux rester avec des fichiers texte "old fashion", épluche l'aide en ligne (info reprise dans D6) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SetTextBuf(var F: Text; var Buf [ ; Size: Integer] );
    Tu pourras spécifier un buffer plus grand. Je pense avoir répondu à ta question.

    cdlt

    e-ric

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Batch] Comment écrire une ligne de commande dans un autre batch ?
    Par pierrot91000 dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 02/04/2011, 13h31
  2. Récupérer une liste de variables dans un fichier
    Par livre dans le forum Langage
    Réponses: 4
    Dernier message: 10/03/2010, 14h22
  3. Réponses: 3
    Dernier message: 22/12/2008, 11h05
  4. Comment créer une base de donnée dans un fichier .txt
    Par vantoff dans le forum C++Builder
    Réponses: 9
    Dernier message: 19/07/2006, 20h44
  5. Réponses: 10
    Dernier message: 16/06/2006, 14h53

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