Bonjour, dans une de mes applications je doit enregistrer une Stinggird qui doit etre rechargée a chaque démarage de l'application, et je doit enregister des modifications qui sont uniquement des qui ont été ajoutées (programme d'enregistrement d'activté Fil de l'eau), le probléme est que dés que j'enregistre, les données se trouvent décalées et le probléme récurent est que le logiciel se bloque à la moindre action recue par l'interface serie et que si je désactive la lecture et l'enregistrement du fichier csv, le logiciel ne bloque plus
voici comment ce retrouve le fichier csv après blocage, toutes les données sont décalées
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
 
;;;;;;
;;;;;;Poste 1;25/09/2008;10:05:10;SEA: Enreg;0;0;
;;;;;;Poste 1;25/09/2008;10:05:10;SEA: Enreg;0;0;Poste 1;25/09/2008;10:05:19;GPS: Début Loc Auto;0;0;
;;;;;;Poste 1;25/09/2008;10:05:10;SEA: Enreg;0;0;Poste 1;25/09/2008;10:05:19;GPS: Début Loc Auto;0;0;Poste 1;25/09/2008;10:05:28;GPS: Erreur;0;0;
;;;;;;Poste 1;25/09/2008;10:05:10;SEA: Enreg;0;0;Poste 1;25/09/2008;10:05:19;GPS: Début Loc Auto;0;0;Poste 1;25/09/2008;10:05:28;GPS: Erreur;0;0;Poste 1;25/09/2008;10:05:33;GPS: Erreur;0;0;
;;;;;;Poste 1;25/09/2008;10:05:10;SEA: Enreg;0;0;Poste 1;25/09/2008;10:05:19;GPS: Début Loc Auto;0;0;Poste 1;25/09/2008;10:05:28;GPS: Erreur;0;0;Poste 1;25/09/2008;10:05:33;GPS: Erreur;0;0;Poste 1;25/09/2008;10:05:46;GPS: Erreur;0;0;
;;;;;;Poste 1;25/09/2008;10:05:10;SEA: Enreg;0;0;Poste 1;25/09/2008;10:05:19;GPS: Début Loc Auto;0;0;Poste 1;25/09/2008;10:05:28;GPS: Erreur;0;0;Poste 1;25/09/2008;10:05:33;GPS: Erreur;0;0;Poste 1;25/09/2008;10:05:46;GPS: Erreur;0;0;Poste 1;25/09/2008;10:06:15;GPS: Erreur;0;0;
;;;;;;Poste 1;25/09/2008;10:05:10;SEA: Enreg;0;0;Poste 1;25/09/2008;10:05:19;GPS: Début Loc Auto;0;0;Poste 1;25/09/2008;10:05:28;GPS: Erreur;0;0;Poste 1;25/09/2008;10:05:33;GPS: Erreur;0;0;Poste 1;25/09/2008;10:05:46;GPS: Erreur;0;0;Poste 1;25/09/2008;10:06:15;GPS: Erreur;0;0;Poste 1;25/09/2008;10:07:05;GPS: Erreur;0;0;
;;;;;;Poste 1;25/09/2008;10:05:10;SEA: Enreg;0;0;Poste 1;25/09/2008;10:05:19;GPS: Début Loc Auto;0;0;Poste 1;25/09/2008;10:05:28;GPS: Erreur;0;0;Poste 1;25/09/2008;10:05:33;GPS: Erreur;0;0;Poste 1;25/09/2008;10:05:46;GPS: Erreur;0;0;Poste 1;25/09/2008;10:06:15;GPS: Erreur;0;0;Poste 1;25/09/2008;10:07:05;GPS: Erreur;0;0;Poste 1;25/09/2008;10:07:22;SEA: Enreg;0;0;
;;;;;;Poste 1;25/09/2008;10:05:10;SEA: Enreg;0;0;Poste 1;25/09/2008;10:05:19;GPS: Début Loc Auto;0;0;Poste 1;25/09/2008;10:05:28;GPS: Erreur;0;0;Poste 1;25/09/2008;10:05:33;GPS: Erreur;0;0;Poste 1;25/09/2008;10:05:46;GPS: Erreur;0;0;Poste 1;25/09/2008;10:06:15;GPS: Erreur;0;0;Poste 1;25/09/2008;10:07:05;GPS: Erreur;0;0;Poste 1;25/09/2008;10:07:22;SEA: Enreg;0;0;Poste 1;25/09/2008;10:07:25;GPS: Erreur;0;0;
;;;;;;Poste 1;25/09/2008;10:05:10;SEA: Enreg;0;0;Poste 1;25/09/2008;10:05:19;GPS: Début Loc Auto;0;0;Poste 1;25/09/2008;10:05:28;GPS: Erreur;0;0;Poste 1;25/09/2008;10:05:33;GPS: Erreur;0;0;Poste 1;25/09/2008;10:05:46;GPS: Erreur;0;0;Poste 1;25/09/2008;10:06:15;GPS: Erreur;0;0;Poste 1;25/09/2008;10:07:05;GPS: Erreur;0;0;Poste 1;25/09/2008;10:07:22;SEA: Enreg;0;0;Poste 1;25/09/2008;10:07:25;GPS: Erreur;0;0;Poste 1;25/09/2008;10:07:40;SEA: Enreg;0;0;
;;;;;;Poste 1;25/09/2008;10:05:10;SEA: Enreg;0;0;Poste 1;25/09/2008;10:05:19;GPS: Début Loc Auto;0;0;Poste 1;25/09/2008;10:05:28;GPS: Erreur;0;0;Poste 1;25/09/2008;10:05:33;GPS: Erreur;0;0;Poste 1;25/09/2008;10:05:46;GPS: Erreur;0;0;Poste 1;25/09/2008;10:06:15;GPS: Erreur;0;0;Poste 1;25/09/2008;10:07:05;GPS: Erreur;0;0;Poste 1;25/09/2008;10:07:22;SEA: Enreg;0;0;Poste 1;25/09/2008;10:07:25;GPS: Erreur;0;0;Poste 1;25/09/2008;10:07:40;SEA: Enreg;0;0;Poste 1;25/09/2008;10:07:48;GPS: Erreur;0;0;
;;;;;;Poste 1;25/09/2008;10:05:10;SEA: Enreg;0;0;Poste 1;25/09/2008;10:05:19;GPS: Début Loc Auto;0;0;Poste 1;25/09/2008;10:05:28;GPS: Erreur;0;0;Poste 1;25/09/2008;10:05:33;GPS: Erreur;0;0;Poste 1;25/09/2008;10:05:46;GPS: Erreur;0;0;Poste 1;25/09/2008;10:06:15;GPS: Erreur;0;0;Poste 1;25/09/2008;10:07:05;GPS: Erreur;0;0;Poste 1;25/09/2008;10:07:22;SEA: Enreg;0;0;Poste 1;25/09/2008;10:07:25;GPS: Erreur;0;0;Poste 1;25/09/2008;10:07:40;SEA: Enreg;0;0;Poste 1;25/09/2008;10:07:48;GPS: Erreur;0;0;Poste 1;25/09/2008;10:08:14;GPS: Erreur;0;0;
;;;;;;Poste 1;25/09/2008;10:05:10;SEA: Enreg;0;0;Poste 1;25/09/2008;10:05:19;GPS: Début Loc Auto;0;0;Poste 1;25/09/2008;10:05:28;GPS: Erreur;0;0;Poste 1;25/09/2008;10:05:33;GPS: Erreur;0;0;Poste 1;25/09/2008;10:05:46;GPS: Erreur;0;0;Poste 1;25/09/2008;10:06:15;GPS: Erreur;0;0;Poste 1;25/09/2008;10:07:05;GPS: Erreur;0;0;Poste 1;25/09/2008;10:07:22;SEA: Enreg;0;0;Poste 1;25/09/2008;10:07:25;GPS: Erreur;0;0;Poste 1;25/09/2008;10:07:40;SEA: Enreg;0;0;Poste 1;25/09/2008;10:07:48;GPS: Erreur;0;0;Poste 1;25/09/2008;10:08:14;GPS: Erreur;0;0;Poste 1;25/09/2008;10:08:45;GPS: Erreur;0;0;
;;;;;;Poste 1;25/09/2008;10:05:10;SEA: Enreg;0;0;Poste 1;25/09/2008;10:05:19;GPS: Début Loc Auto;0;0;Poste 1;25/09/2008;10:05:28;GPS: Erreur;0;0;Poste 1;25/09/2008;10:05:33;GPS: Erreur;0;0;Poste 1;25/09/2008;10:05:46;GPS: Erreur;0;0;Poste 1;25/09/2008;10:06:15;GPS: Erreur;0;0;Poste 1;25/09/2008;10:07:05;GPS: Erreur;0;0;Poste 1;25/09/2008;10:07:22;SEA: Enreg;0;0;Poste 1;25/09/2008;10:07:25;GPS: Erreur;0;0;Poste 1;25/09/2008;10:07:40;SEA: Enreg;0;0;Poste 1;25/09/2008;10:07:48;GPS: Erreur;0;0;Poste 1;25/09/2008;10:08:14;GPS: Erreur;0;0;Poste 1;25/09/2008;10:08:45;GPS: Erreur;0;0;Poste 1;25/09/2008;10:09:18;GPS: Erreur;0;0;
;;;;;;Poste 1;25/09/2008;10:05:10;SEA: Enreg;0;0;Poste 1;25/09/2008;10:05:19;GPS: Début Loc Auto;0;0;Poste 1;25/09/2008;10:05:28;GPS: Erreur;0;0;Poste 1;25/09/2008;10:05:33;GPS: Erreur;0;0;Poste 1;25/09/2008;10:05:46;GPS: Erreur;0;0;Poste 1;25/09/2008;10:06:15;GPS: Erreur;0;0;Poste 1;25/09/2008;10:07:05;GPS: Erreur;0;0;Poste 1;25/09/2008;10:07:22;SEA: Enreg;0;0;Poste 1;25/09/2008;10:07:25;GPS: Erreur;0;0;Poste 1;25/09/2008;10:07:40;SEA: Enreg;0;0;Poste 1;25/09/2008;10:07:48;GPS: Erreur;0;0;Poste 1;25/09/2008;10:08:14;GPS: Erreur;0;0;Poste 1;25/09/2008;10:08:45;GPS: Erreur;0;0;Poste 1;25/09/2008;10:09:18;GPS: Erreur;0;0;Poste 1;25/09/2008;10:09:45;GPS: Erreur;0;0;
code d'ouverture du fichier csv
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
 
void __fastcall TForm3::loadFile()
{
TStringList *fichier = new TStringList();
  fichier->LoadFromFile( "D:\\Road.csv" ) ;
 
  TStringList *ligne ;
 
  Form3->StringGrid1->RowCount = fichier->Count ;
 
  for( int i=0; i< fichier->Count; i++ )
  {
	ligne = new TStringList() ;
	ligne->Text = StringReplace(fichier->Strings[i], ';' , "\n", TReplaceFlags()<< rfReplaceAll );
	Form3->StringGrid1->ColCount = ligne->Count ;
	Savecount=ligne->Count ;
	for(int j=0; j < ligne->Count; j++)
	{
	  Form3->StringGrid1->Cells[j][i] = ligne->Strings[j] ;
	}
	delete ligne ;
  }
  delete fichier ;
}
code de l'enregistrement
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
void __fastcall TForm3::Autoenreg()
{
 
	String FilePath ="D:\\Road.csv";
	int i,j;
	AnsiString Texte;
	TStringList *MyStringList=new TStringList();
	for(i=Savecount;i<StringGrid1->RowCount;i++)
	{
	Application->ProcessMessages();
 
	  Texte += StringGrid1->Cells[0][i];
	  Texte += "\;";
	  for(j=1;j<StringGrid1->ColCount;j++)
	  {
	  Texte += StringGrid1->Cells[j][i];
		Texte += "\;";
		Application->ProcessMessages();
	  }
	  MyStringList->Add(Texte);
	}
	  MyStringList->SaveToFile(FilePath);
	  Application->ProcessMessages();
 
	delete MyStringList;
	Application->ProcessMessages();
}
code de l'ajout
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
void __fastcall TForm3::AddLine(String Poste,String Date,String Time, String type,float Longitude,float Latitude)
{
int Row;
Row=StrToInt(StringGrid1->RowCount);
StringGrid1->Cells[0][Row]=Poste;
StringGrid1->Cells[1][Row]=Date;
StringGrid1->Cells[2][Row]=Time;
StringGrid1->Cells[3][Row]=type;
StringGrid1->Cells[4][Row]=FloatToStr(Longitude);
StringGrid1->Cells[5][Row]=FloatToStr(Latitude);
Row++;
StringGrid1->RowCount=Row;
}
en déactivant les deux premiers codes il n'ya plus de probleme