Ładny brzuch
Ponizej zamieszcze plik z kodem zrodlowym. Problem mam taki a mianowicie chce zapisac do struktury tekst z ComboBoxu do "sterowania"
struct silownik { String sterowanie[5]; float zasilanie[5]; }silownik1; void __fastcall TForm1::Button1Click(TObject *Sender) { String pp; float aa; pp=Edit1->Text.c_str(); aa=Edit2->Text.ToDouble(); ComboBox2->Items->Add(pp); ComboBox1->Items->Add(aa); Edit1->Clear(); Edit2->Clear(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { FILE *stream; if((stream=fopen("proba11.tab","wt"))==NULL) { fprintf(stderr,"Cannot open output file.\n"); } String pp1; int aa,bb; aa=ComboBox2->Items->Count; for(int i=0;i<aa;i++) { ComboBox2->ItemIndex=i; pp1=ComboBox2->Text.c_str(); silownik1.sterowanie[i]=pp1; fwrite(&silownik1,sizeof(silownik1),1,stream); } float pp11; bb=ComboBox2->Items->Count; for(int i=0;i<bb;i++) { ComboBox1->ItemIndex=i; pp11=ComboBox1->Text.ToDouble(); silownik1.zasilanie[i]=pp11; fwrite(&silownik1,sizeof(silownik),1,stream); } fclose(stream); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) { FILE *stream; if((stream=fopen("proba11.tab","rt"))==NULL) { fprintf(stderr,"Cannot open output file.\n"); } String pp1; int aa; aa=ComboBox2->Items->Count; for(int i=0;i<5;i++) { fread(&silownik1,sizeof(silownik1),1,stream); } int jjg; jjg=1; for(int jj=0;jj<jjg;jj++) { pp1=silownik1.sterowanie[jj]; if (pp1!="") { ListBox1->Items->Add(pp1); jjg ++; } } jjg=1; float pp11; for(int jj=0;jj<jjg;jj++) { pp11=silownik1.zasilanie[jj]; if (pp11!=0) { ListBox2->Items->Add(pp11); jjg ++; } } fclose(stream); }
Podczas zapisu w czasie programu bez problemu jestem w stanie odczytac zapisane dane, jednak po ponownym uruchomieniu pojawiaja sie bzdury, inaczej jest w przypadku liczb gdzie wszystko jest ok. Czytalem troszke o AnsiStringach i domyslam sie ze przy takim zapisie powstaja smieci w zapisanym pliku. Dlatego czy ktos widzi jakies rozwiazanie, zaznaczam ze musze to w ajkis sposob zapisac do struktury.
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
struct silownik { String sterowanie[5]; float zasilanie[5]; }silownik1; void __fastcall TForm1::Button1Click(TObject *Sender) { String pp; float aa; pp=Edit1->Text.c_str(); aa=Edit2->Text.ToDouble(); ComboBox2->Items->Add(pp); ComboBox1->Items->Add(aa); Edit1->Clear(); Edit2->Clear(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { FILE *stream; if((stream=fopen("proba11.tab","wt"))==NULL) { fprintf(stderr,"Cannot open output file.\n"); } String pp1; int aa,bb; aa=ComboBox2->Items->Count; for(int i=0;i<aa;i++) { ComboBox2->ItemIndex=i; pp1=ComboBox2->Text.c_str(); silownik1.sterowanie[i]=pp1; fwrite(&silownik1,sizeof(silownik1),1,stream); } float pp11; bb=ComboBox2->Items->Count; for(int i=0;i<bb;i++) { ComboBox1->ItemIndex=i; pp11=ComboBox1->Text.ToDouble(); silownik1.zasilanie[i]=pp11; fwrite(&silownik1,sizeof(silownik),1,stream); } fclose(stream); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) { FILE *stream; if((stream=fopen("proba11.tab","rt"))==NULL) { fprintf(stderr,"Cannot open output file.\n"); } String pp1; int aa; aa=ComboBox2->Items->Count; for(int i=0;i<5;i++) { fread(&silownik1,sizeof(silownik1),1,stream); } int jjg; jjg=1; for(int jj=0;jj<jjg;jj++) { pp1=silownik1.sterowanie[jj]; if (pp1!="") { ListBox1->Items->Add(pp1); jjg ++; } } jjg=1; float pp11; for(int jj=0;jj<jjg;jj++) { pp11=silownik1.zasilanie[jj]; if (pp11!=0) { ListBox2->Items->Add(pp11); jjg ++; } } fclose(stream); }
Podczas zapisu w czasie programu bez problemu jestem w stanie odczytac zapisane dane, jednak po ponownym uruchomieniu pojawiaja sie bzdury, inaczej jest w przypadku liczb gdzie wszystko jest ok. Czytalem troszke o AnsiStringach i domyslam sie ze przy takim zapisie powstaja smieci w zapisanym pliku. Dlatego czy ktos widzi jakies rozwiazanie, zaznaczam ze musze to w ajkis sposob zapisac do struktury.