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 :

Enregistrer/Lire une TListView dans un fichier


Sujet :

C++Builder

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 135
    Points : 66
    Points
    66
    Par défaut Enregistrer/Lire une TListView dans un fichier
    Bonjour,

    Comment enregistrer et lire une TListView dans et d'un fichier?

  2. #2
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Salut, quel type de fichier veux tu utiliser: XML, CSV, INI, etc???

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 135
    Points : 66
    Points
    66
    Par défaut
    Bonjour,

    Soit un fichier txt classique, ou binaire, je ne veux pas qu'il puisse être lu par une autre application (de manière générale).

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Août 2002
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 481
    Points : 242
    Points
    242
    Par défaut
    Personnellement je passerais par l'intermédiaire d'un TStringList qui peut aisément s'enregistrer et se lire.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 135
    Points : 66
    Points
    66
    Par défaut
    Peut-être, dans ce cas pouvez-vous m'aiguiller vers un tutoriel ou un exemple via cette TStringList?

  6. #6
    Membre averti
    Avatar de Altau
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    296
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 296
    Points : 360
    Points
    360
    Par défaut
    Très facile avec le TAdvListView de tmssoftware (téléchargement gratuit pour usage non commercial). Différents formats possibles.

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Août 2002
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 481
    Points : 242
    Points
    242
    Par défaut
    Voici un exemple
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
     
    void __fastcall TfListView::bLireClick(TObject *Sender)
    {
      TStringList *slDonnees= new TStringList;
      AnsiString asNomFichier;
      if(!OpenDialog1->Execute()) return;
      asNomFichier = OpenDialog1->FileName;
      slDonnees->LoadFromFile(asNomFichier);
      CreerListView(slDonnees);
      slDonnees->Clear();
      delete slDonnees;
    }
    //---------------------------------------------------------------------------
     
    void TfListView::CreerListView(TStringList *slDonnees)
    {
    //
      int iNbColonnes, iNbLignes, iPos;
      AnsiString asNbColonnes, asNbLignes;
      AnsiString asSeparateur =";";
      AnsiString asLigne;
      // Lecture des nombres de colonnes et de lignes
      asLigne = slDonnees->Strings[0];
      iPos = asLigne.Pos(asSeparateur);
      asNbColonnes = asLigne.SubString(1, iPos - 1).Trim();
      asLigne.Delete(1, iPos);
      asNbLignes = asLigne;
      iNbColonnes = StrToInt(asNbColonnes);
      iNbLignes = StrToInt(asNbLignes);
     
      // Création de la ListView
      // Effacement de la ListView précédente, si besoin
      lvDonnees->Columns->Clear();
      lvDonnees->ViewStyle = vsReport;
      TListColumn *NlleColonne;
      asLigne = asLigne = slDonnees->Strings[1];
      for (int iCol = 0; iCol < iNbColonnes ; iCol++ )
      {
    	AnsiString asColonne;
    	iPos = iPos = asLigne.Pos(asSeparateur);
    	if(iPos > 0)
    	{
    	  asColonne = asLigne.SubString(1, iPos - 1);
    	  asLigne.Delete(1, iPos);
    	}
    	else asColonne = asLigne;
    	NlleColonne = lvDonnees->Columns->Add();
    	NlleColonne->Caption = asColonne;
      }
     
      // Remplir les lignes
      TListItem *ListItem;
      for(int iLigne = 0; iLigne < iNbLignes; iLigne++)
      {
    	ListItem = lvDonnees->Items->Add();
    	asLigne = slDonnees->Strings[2 + iLigne];
    	AnsiString asCaption;
    	iPos = asLigne.Pos(asSeparateur);
    	asCaption = asLigne.SubString(1, iPos - 1);
    	asLigne.Delete(1, iPos);
    	ListItem->Caption = asCaption;
     
    	for(int iCol = 1; iCol < iNbColonnes; iCol++)
    	{
    	  iPos = asLigne.Pos(asSeparateur);
    	  AnsiString asLibelle;
    	  if(iPos > 0)
    	  {
    		asLibelle = asLigne.SubString(1, iPos - 1);
    		asLigne.Delete(1, iPos);
    	  }
    	  else asLibelle = asLigne;
    	  ListItem->SubItems->Add(asLibelle);
        }
     
      }
     
    }
    //---------------------------------------------------------------------------
    Le fichier texte :
    4; 5
    Colonne 1; Colonne2; Colonne 3; Colonne 4
    A11; A12; A13; A14
    A21; A22; A23; A24
    A31; A32; A33; A34
    A41; A42; A43; A44
    A51; A52; A53; A54

    Pour l'enregistrer, il faut imaginer l'opération inverse :
    Créer unTStringList
    Le remplir avec les données de la ListView et le sauvegarder.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 135
    Points : 66
    Points
    66
    Par défaut
    Je regarde,
    est ce que la TAdvListView a les même propriété qu'une TListView?

  9. #9
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Citation Envoyé par James_ Voir le message
    Je regarde,
    est ce que la TAdvListView a les même propriété qu'une TListView?
    Presque, pour plus d'info va faire un tour sur le site Web: http://www.tmssoftware.com/advlistv.htm

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 135
    Points : 66
    Points
    66
    Par défaut
    J'ai cliqué sur le lien, j'ai téléchargé le composant mais il n'y a aucun exemple.
    Comment faire pour ajouter une ProgressBar?
    Franchement je ne comprends pas pourquoi il n'y a pas d'aide?
    Ce n'est pas intuitif!

    Quelqu'un peut-il me dire comment ajouter une progressbar dans un subItem d'une TAdvListview?

  11. #11
    Membre averti
    Avatar de Altau
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    296
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 296
    Points : 360
    Points
    360
    Par défaut
    Je ne l'ai jamais fait mais tu peux leur poser des questions (voir leur site), ils te répondront même si tu n'a pas acheté le produit.

Discussions similaires

  1. [algo] Lire une ligne dans un fichier.
    Par sloshy dans le forum C
    Réponses: 0
    Dernier message: 04/12/2008, 19h46
  2. Comment lire une chaîne dans un fichier binaire?
    Par dot-_-net dans le forum Débuter
    Réponses: 9
    Dernier message: 18/05/2008, 23h13
  3. Réponses: 4
    Dernier message: 10/04/2008, 17h54
  4. Lire une ligne dans un fichier
    Par dbozec dans le forum Langage
    Réponses: 3
    Dernier message: 03/05/2006, 23h22
  5. Sauvegarder/Lire une classe dans un fichier
    Par Rodrigue dans le forum C++
    Réponses: 10
    Dernier message: 10/09/2005, 14h12

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