{
///////////////////////////////////
// on redefini le separateur decimal
////
DecimalSeparator = '.';
///////////////////////////////////
// ici on appelle la boite de dialogue ouvrir un fichier
// avec les options et le filtre
OpenDialog1->Options.Clear();
OpenDialog1->Options << ofAllowMultiSelect << ofFileMustExist;
OpenDialog1->Filter = "Fichiers TXT (*.TXT) (*.txt)|*.txt|Fichiers DOC (*.DOC) (*.doc)|*.doc|Fichiers CSV (*.CSV) (*.csv)|*.csv";
OpenDialog1->FilterIndex = 3; // demarre le dialogue d'affichage des fichiers
///////////////////////////////////
if(OpenDialog1->Execute() == NULL)
{
// si aucune selection on quitte
ShowMessage("aucun fichier selectionné arret du programme");
Application->Terminate();
}
else
{
String FilePath = OpenDialog1->FileName;
///////////////////////////////////
// ici on va charger la StringGrid avec le fichier
int i;
int j;
int k;
char b;
AnsiString convertisseur;
TStringList *MyStringList = new TStringList();
MyStringList->LoadFromFile(FilePath); //Si tu as créer ton extension lors de la sauvegarde, penses à réutiliser la même ici.
StringGrid1->ColCount=1;//cela met la grille à une seule colonne de base
StringGrid1->RowCount=1;//cela met la grille à une seule ligne de base
for(i=0;i<MyStringList->Count;i++)
{
convertisseur=MyStringList->Strings[i];
// teste pour trouver les separateurs en fonction on modifie
// (convertisseur.Pos("\t"));
if (convertisseur.Pos("\t") > 0)
b = '\t';
else
if (convertisseur.Pos("\;") > 0)
b = '\;';
else
if (convertisseur.Pos("\,") > 0)
b = '\,';
// on va chercher le separateur soit ( "\t" ) soit ( "\;" ) soit ( "\," )
for(j=0;(convertisseur.Pos(b)>=1);j++)
{
// on va chercher le separateur soit ( "\t" ) soit ( "\;" ) soit ( "\," )
convertisseur[convertisseur.Pos(b)]='\n';
//voir s'il faut ajouter un test sur le cas où j=0
if(j>StringGrid1->ColCount)
StringGrid1->ColCount = j; //Il est possible que cela soit un j-1 ou un j+1...
if(i>(StringGrid1->RowCount-1))
StringGrid1->RowCount = i+1;
StringGrid1->Rows[i]->Text = convertisseur; // x correspond à la ligne, 0 pour la première, souvent grisée
}//fin du for
}
delete MyStringList; //si cette ligne te poses un soucis essayes de la supprimer: en théorie elle est nécessaire.
Partager