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 confirm�
    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
    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 Expert
    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
    Par d�faut
    Salut, quel type de fichier veux tu utiliser: XML, CSV, INI, etc???

  3. #3
    Membre confirm�
    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
    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 �clair�
    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
    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 confirm�
    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
    Par d�faut
    Peut-�tre, dans ce cas pouvez-vous m'aiguiller vers un tutoriel ou un exemple via cette TStringList?

  6. #6
    Membre chevronn�
    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
    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 �clair�
    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
    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 confirm�
    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
    Par d�faut
    Je regarde,
    est ce que la TAdvListView a les m�me propri�t� qu'une TListView?

  9. #9
    Membre Expert
    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
    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 confirm�
    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
    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 chevronn�
    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
    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