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 :

writeln sur un fichier txt


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 14
    Points : 12
    Points
    12
    Par défaut writeln sur un fichier txt
    Bonjour
    je cherche une commande delphi qui me permet d'écrire dans un fichier text dans la ligne N° 10 par exemple, ou lire des données dans fichier txt ligne 14 par ex

    merci

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 519
    Points : 25 037
    Points
    25 037
    Par défaut
    Pour lire

    Standard Delphi
    TextFile : ReadLn
    File : Seek et ReadBlock
    TStringList : LoadFromFile (pour un fichier de moins de 10000 lignes !)
    TFileStream : Seek et Read

    Classe Maison
    TTextFileReader : BuildLinesIndexes et ReadLine

    Pour écrire
    TextFile : WriteLn
    File : Seek et WriteBlock
    TStringList : SaveToFile (pour un fichier de moins de 10000 lignes !)
    TFileStream : Seek et Write

    Pour un fichier Texte, faut se rendre compte que remplacer une ligne par une autre c'est plus complexe que l'on croit, il faut écrire la nouvelle ligne certe mais décaler en avant ou en arrière tout le reste du fichier selon la nouvelle longueur de la ligne ...

    Faudrait que je finisse TTextFileReader pour modifier un fichier texte (gestion de cache et mise à jour des index, pas évident et probablement très lent sur de gros fichiers)
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    merci pour l'aide
    mais pour mon cas j'en ai besoin que d'un fichier normal pour écrire environ 80 ligne et les récupérer après mais mon problème c'est que j'arrive pas à écrire sur une ligne de mon choix sans avoir changer le contenu des autres lignes

  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 740
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 740
    Points : 13 285
    Points
    13 285
    Par défaut
    Les StringList le permettent à travers la propriété Strings.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sl.Strings[9] := 'Ton texte';
    //ou plus simplement
    sl[9] := 'Ton texte';
    Pour autant qu'il y ait déjà au moins 10 lignes dans le fichier.

  5. #5
    Expert confirmé

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Points : 4 173
    Points
    4 173
    Par défaut
    Citation Envoyé par adovic Voir le message
    merci pour l'aide
    mais pour mon cas j'en ai besoin que d'un fichier normal pour écrire environ 80 ligne et les récupérer après mais mon problème c'est que j'arrive pas à écrire sur une ligne de mon choix sans avoir changer le contenu des autres lignes
    Comme ça a été expliqué, les fichiers ne peuvent fonctionner qu'en accès sequentiel. Aussi, tu ne peux ouvrir un fichier texte que dans deux modes :
    Rewrite : Tu crées un nouveau fichier vide.
    Append : Tu ouvres le fichier et tu te positionne à la fin pour ajouter des données.

    Pour modifier une ligne au milieu, il faut réécrire le fichier complet avec la ligne modifiée.
    Soit en se servant de deux fichiers texte en bascule, soit (le plus simple et le plus performant) en passant par un TStringList.

Discussions similaires

  1. Lecture et écriture sur un fichier txt
    Par freemanqc dans le forum Langage
    Réponses: 13
    Dernier message: 28/02/2008, 05h29
  2. Récuperer des infos sur des fichiers .txt
    Par arnogb69 dans le forum VB.NET
    Réponses: 5
    Dernier message: 23/08/2007, 15h57
  3. Ecriture sur un fichier.txt dans tomcat
    Par xsafary dans le forum Java ME
    Réponses: 1
    Dernier message: 21/05/2007, 08h39
  4. [Tableaux] Problème sur ouverture fichier txt
    Par yaum4444 dans le forum Langage
    Réponses: 7
    Dernier message: 15/12/2006, 15h10
  5. Réponses: 2
    Dernier message: 10/05/2006, 20h10

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