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 :

enregistrement lecture Stringgrid


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 11
    Par défaut enregistrement lecture Stringgrid
    J'ai un problème car, j'arrive à enregistrer ma stringgrid 11 colonnes par 57 lignes.

    avec ce code:
    Code C++ : 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
    {
    int ii,jj;
      TStringList *StrGrd=new TStringList();
     
      for(ii=0;ii<StringGrid1->RowCount;ii++)
      {
        AnsiString Texte;
        Texte += StringGrid1->Cells[0][ii];
        Texte += " ";
        for(jj=1;jj<StringGrid1->ColCount;jj++)
        {
          Texte += StringGrid1->Cells[jj][ii];
        StrGrd->Add(Texte);
      }
      StrGrd->SaveToFile("101006.pla"); //cest le nom de mon fichier
     
    delete StrGrd;
     
    }


    mais quand il y a des cases de vide cela me décale tout; j'ai essayé l'aide de builder mais cela ne marche pas
    merci à celui qui peut me renseigner

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 80
    Par défaut
    Essaie d'inserer ca dans ton code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(StringGrid1->Cells[jj][ii]== "") Texte += "        ";

  3. #3
    Membre expérimenté Avatar de Mattetfamilly
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 182
    Par défaut
    Pourqoui mets-tu un espace entre chaque cellules?
    Proposition:
    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
     
    {
    AnsiString Conversion;
    TStringList *StrGrd= new TStringList()
    int y;
    for(y=0;y<StringGrid1->RowCount;y++
    {
    Conversion=StringGrid1->Rows[y]->Text;
    while(Conversion.Pos("\r")>=1)Conversion=Conversion.Delete(Conversion.Pos("\r"),1);
    while(Conversion.Pos("\n")>=1)Conversion[Conversion.Pos("\n")]=' ';
    StrGrd->Add(Conversion);
    }
     
    StrGrd->SaveToFile("101006.pla");
    delete StrGrd;
    }
    Je penses que un '\t' serait plus indiqué comme séparateur pour pouvoir charger la grille à nouveau. Si une cellulle est vide cela peut poser un problème lorsque tu tenteras de charger la grille à partir du fichier plus tard.
    Parfois les cases vides contiennent un espace, je ne sais pas pourquoi, mais cela peut induire des problèmes si tu conserves un séparateur du type ' '.

    Je te recommandes d'indiquer un répertoire pour ta sauvegarde.
    le séparateur de répertoire doit être doublé dans ta chaîne, exemple: "C:\\101006.pla".
    Si c'est le répertoire de l'exécutable que tu veux utiliser, alors mets:
    SaveGrid->SaveToFile(ExtractFileDir(Application->ExeName)+"101006.pla");

    Mattetfamilly

  4. #4
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 51
    Par défaut Enrgistrer StringGrid dans un fichier et ouvrire ce fichier
    Salut ,j'etait besoin d'enregistrer les pixels d'image dans un StringGrid et le enrgi aussi dans un fichier text et en mm temp je peut l'ouvrire c fichier avec cette image j'ai bien utiliser merci pour les codes et voila mes codes.
    //pour l'ouvertire
    int k,g;
    AnsiString src="";
    String FilePath ;
    // OpenDialog1->Options.Clear(); //j'ai pas besoin pq le fichier et de meme nom que l'image
    // OpenDialog1->Options << ofAllowMultiSelect << ofFileMustExist;
    // OpenDialog1->Filter = "Fichiers TXT (*.TXT) (*.txt)|*.txt|Fichiers DOC (*.DOC) (*.doc)|*.doc|Fichiers CSV (*.CSV) (*.csv)|*.csv";
    // OpenDialog1->FilterIndex = 1;
    if(OpenDialog1->Execute())
    {
    FilePath = OpenDialog1->FileName;

    // ici on va charger la StringGrid avec le fichier
    int i,l=0;
    int j=0;
    AnsiString convertisseur,pile="";
    TStringList *MyStringList = new TStringList();
    MyStringList->LoadFromFile(FilePath);

    StringGrid1->ColCount=200; //initialisation
    StringGrid1->RowCount=200;

    for(i=0;i<MyStringList->Count;i++)
    {
    g:
    l=0;
    convertisseur=MyStringList->Strings[i];
    pile="";
    src="";
    j=i;

    for(k=1;k<=convertisseur.Length();k++)
    {
    src=convertisseur[k];

    if(src==" ")
    {
    pile="";
    src="";
    l++;
    }else
    if(src.Pos(src)=='\r')
    {
    goto g;
    }
    else
    {
    pile=pile+src;
    StringGrid1->Cells[l][j]=pile;
    }
    }
    }

    delete MyStringList;
    }


    ///pour enregistrement

    AnsiString Name;
    AnsiString Conversion;
    if (SavePictureDialog1->Execute())
    {
    Image1->Picture->SaveToFile(SavePictureDialog1->FileName);
    Name=SavePictureDialog1->FileName; //la il faut une fonction qui prend le nom seul

    TStringList *StrGrd= new TStringList();
    int y;
    for(y=0;y<StringGrid1->RowCount;y++)
    {
    Conversion=StringGrid1->Rows[y]->Text;
    while(Conversion.Pos("\r")>=1)
    Conversion=Conversion.Delete(Conversion.Pos("\r"),1);
    while(Conversion.Pos("\n")>=1)
    Conversion[Conversion.Pos("\n")]=' ';
    StrGrd->Add(Conversion);
    }

    StrGrd->SaveToFile(Name+".txt");
    delete StrGrd;
    }


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

Discussions similaires

  1. Enregistrement/Lecture d'un Cluster
    Par demum dans le forum LabVIEW
    Réponses: 5
    Dernier message: 27/06/2012, 11h07
  2. Enregistrer un StringGrid au format xls
    Par Jotomaticen dans le forum C++Builder
    Réponses: 16
    Dernier message: 13/09/2010, 14h45
  3. Empecher Lecture d'Enregistrement en cours de Modification
    Par toony dans le forum Administration
    Réponses: 4
    Dernier message: 09/12/2009, 11h18
  4. [debutant]enregistrement/lecture données téléphone
    Par noname_971 dans le forum Java ME
    Réponses: 10
    Dernier message: 20/05/2008, 15h44
  5. TDateTimePicker Enregistrement/lecture dans un fichier
    Par zenetcalme dans le forum C++Builder
    Réponses: 7
    Dernier message: 21/04/2008, 12h10

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