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 :

Tester la présence d'un titre dans un fichier TextFile


Sujet :

Langage Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de ddubois
    Profil pro
    Inscrit en
    Février 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 111
    Par défaut Tester la présence d'un titre dans un fichier TextFile
    J'ai une routine pour enregistrer le contenu d'un TStringGrid dans un fichier et auquel j'ai rajouté un titre au document.

    Lorsque j'ouvre le document avec un OpenDialog, j'aimerais pouvoir tester si un titre existe ou non au début du fichier etauquel cas le demander (via un inputbox). Comment faire ce test ?

    Voci les 2 codes correspondants :

    Le code pour enregistrer le fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    procedure SaveStringGrid(StringGrid: TStringGrid; const FileName: TFileName);
    var f:    TextFile;
        i, k: Integer;
    begin
      AssignFile(f, FileName);
      Rewrite(f);
      with StringGrid do
      begin
        Writeln(f, 'Mon Titre'); //Insérer un titre
        Writeln(f, ColCount);   //Ecrire le nb de colonnes
        Writeln(f, RowCount);   //Ecrire le nb de lignes
        // Boucler sur les cellules
        for i := 0 to ColCount - 1 do    //ou i et k :=0 ou 1
          for k := 0 to RowCount - 1 do
            Writeln(F, Cells[i, k]);
      end;
      CloseFile(F);
    end;
    Le code pour lire le fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
      AssignFile(f, FileName);
      Reset(f);
      with StringGrid do
      begin
        // Récuperer le titre du document:
        Readln(f, xTmp);
        DocTitle := xTmp;
          //ShowMessage (DocTitle);
        // Obtenir le nombre de colonnes:
        Readln(f, iTmp);
        ColCount := iTmp;
        // et de lignes
        Readln(f, iTmp);
        RowCount := iTmp;
        // remplir les cellules:
        for i := 0 to ColCount - 1 do     //ou i et k := 0 ou 1
          for k := 0 to RowCount - 1 do
          begin
            Readln(f, strTemp);
            Cells[i, k] := strTemp;
          end;
      end;
      CloseFile(f);
    Grand merci pour votre aide,

    Denis

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 089
    Par défaut
    Impossible dans un fichier texte pur, ce n'est que du texte, il faudrait soit faire une balise genre TITLE="" au début du fichier, ... ou mettre un caractère spécial pour indiquer le titre, bien sur, si ton fichier est modifié par un autre programme tu peux perdre tes marquages ...
    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 Expert
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 539
    Billets dans le blog
    10
    Par défaut
    En complément : Tu peux utiliser les TIniFiles

  4. #4
    Membre confirmé Avatar de ddubois
    Profil pro
    Inscrit en
    Février 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 111
    Par défaut
    J'ai appris que c'est rarement impossible en programmation...

    Le titre étant une chaine, les valeurs suivantes étant numériques, ne peut-on pas tester la première donnée ? si je lit un string ou integer et auquel cas je peut déterminer qu'il y a un titre ou non.

    Qu'en pensez vous ?

    Denis

  5. #5
    Membre chevronné
    Inscrit en
    Octobre 2005
    Messages
    338
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 338
    Par défaut
    bonjour

    une idée:
    A l'enregistrement, mettre un identifiant avant le titre (caractères peu utilisés),
    à la lecture, lire la première ligne et rechercher l'identifiant.
    si l'identifiant est trouvé (à la place prévue) alors titre = chaine - identifiant...

    à+

  6. #6
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 089
    Par défaut
    C'est l'idée que j'ai émise avec un caractère spécial, mais l'ouverture par certains editeurs de texte peuvent supprimer des caractères ...

    sinon ddubois, lorsque je dis que c'est impossible, je parle si on se limite à un fichier texte "pur", dès que l'on ajoute des balises, des caractrès binaires, ... ce n'est plus un fichier texte pur mais un déjà un fichier texte formaté (le RTF c'est un fichier texte formaté, à la différence d'un fichier word qui est un fichier binaire structuré), c'est juste dans la nuance que ce situe l'impossibilité ... évidemment ce n'est que de la terminologie, cela n'a rien d'impératif, ...
    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

Discussions similaires

  1. Tester la présence d'un attribut dans une BD
    Par michouhayoo dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 26/04/2008, 15h57
  2. Tester la présence d'un enregistrement dans une table ?
    Par Evocatii dans le forum Requêtes
    Réponses: 5
    Dernier message: 25/02/2008, 21h02
  3. Tester la présence d'une image dans un fichier WORD
    Par porikito dans le forum Débuter
    Réponses: 1
    Dernier message: 05/12/2007, 16h12
  4. Tester la présence d'un caractère dans une chaine
    Par sebinator dans le forum VBA Access
    Réponses: 2
    Dernier message: 15/11/2007, 14h23
  5. [XSLT] Tester la non présence d'une valeur dans un fichier
    Par arnauann dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 23/01/2007, 15h29

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