Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void __fastcall TForm1::bSaveClick(TObject *Sender)//обработчик для клавиши "Сохранить"
- { //данные из таблицы разделяются символом ";",
- if(SaveDialog1->Execute()){TStringList *pStrings = new TStringList;
- for(int i=1; i < StringGrid1->RowCount; i++)
- {
- pStrings->Add(StringGrid1->Cells[0][i] + ";" + StringGrid1->Cells[1][i] + ";" + StringGrid1->Cells[2][i]+ ";" + StringGrid1->Cells[3][i]+ ";" + StringGrid1->Cells[4][i]+ ";" + StringGrid1->Cells[5][i]+ ";" + StringGrid1->Cells[6][i]+ ";" + StringGrid1->Cells[7][i]+ ";" + StringGrid1->Cells[8][i]+ ";" + StringGrid1->Cells[9][i]+ ";" + StringGrid1->Cells[10][i]+ ";" + StringGrid1->Cells[11][i]);
- }
- pStrings->SaveToFile(SaveDialog1->FileName);
- delete pStrings;
- }
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::bOpenClick(TObject *Sender)
- {
- if(OpenDialog1->Execute())
- {
- TStringList *pStrings = new TStringList;
- pStrings->LoadFromFile(OpenDialog1->FileName);
- StringGrid1->RowCount = pStrings->Count+1;
- StringGrid1->ColCount=10;
- for(int i=0; i < pStrings->Count; i++)
- {
- StringGrid1->Rows[i+1]->Delimiter = ';';
- StringGrid1->Rows[i+1]->DelimitedText = pStrings->Strings[i];
- }
- delete pStrings;
- }
- for(int i=StringGrid1->ColCount; i>0;i--) {
- if(StringGrid1->Cells[i][3]==" ")
- StringGrid1->ColCount--;
- }
- j=StringGrid1->ColCount;
- }
- ..............
- StringGrid1->Rows[i+1]->DelimitedText = pStrings->Strings[i]; ?
- .............
- AnsiString S;
- struct SaveStorage(AnsiString One, AnsiString Two, ... ,AnsiString Ten,); //описание структуры для хранения данных таблицы
- SaveStorage Storage; //Объявили структуру
- FILE *in; //объявляем файл в который сэйвим
- in = fopen("TestFile.txt", "wt"); //создаем файл, присваиваем имя
- fclose(in);
- for(i=0;i<StrinGrid->ColCount; i++) { // в цикле выдергиваем из строки таблицы дынные
- Storage.One=StringGrid->Cells[0][i];
- Storage.Two=StringGrid->Cells[1][i];
- ...
- Storage.Ten=StringGrid->Cells[9][i];
- sprintf (S, "%s %s %s %s %s %s %s %s %s %s n", // заносим данные из 10 ячеек строки **StrinGrid'a** в 1 строку (/n - означает перенос в низ на новую строчку в той же строке)
- Storage.One,
- Storage.Two,
- ...
- Storage.Ten)
- in=fopen("TestFile.txt", "at"); //открываем созданный файл
- fputs (S, in); // пишем в него строку
- fclose(in);
- }
- AnsiString One,Two, ... , Ten; //В эти строки будем писать данные из файла (структура для этого не пригодна)
- in=fopen("TestFile.txt", "rt");
- while(fscanf(in,"%s %s %s %s %s %s %s %s %s %sn",
- &One,
- &Two,
- ...
- &Ten)!=EOF) //проще говоря сканим данные пока не наступит конец строки в файле
- {
- StringGrid1->Cells[0][i]=One; // пишем в строку **StringGrid'a** отсканенные данные из строки файла
- StringGrid1->Cells[1][i]=Two;
- ...
- StringGrid1->Cells[9][i]=Ten;
- i++;
- }
- fclose(in);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement