private void saveToolStripMenuItem_Click(object sender, EventArgs e) { GRID.EndEdit(); SaveFileDialog saveFileDialog1 = new SaveFileDialog(); //Creating a file save dialog saveFileDialog1.RestoreDirectory = true; //read and filter the raw data if (saveFileDialog1.ShowDialog() == DialogResult.OK) { BinaryFormatter formatter = new BinaryFormatter(); FileStream output = new FileStream(saveFileDialog1.FileName, FileMode.OpenOrCreate, FileAccess.Write); ; int n = GRID.RowCount; data[] Person = new data[n - 1]; //We have as many records as many rows, rows are added automaticly so we have always one row more than we need, so n is a number of rows -1 empty row for (int i = 0; i < n - 1; i++) { Person[i] = new data(); //GRID has two numbers in"[]" first numer is an index of column, second is a an idnex of row', indexing always starts from 0' Person[i].name = GRID[0, i].Value.ToString(); Person[i].surname = GRID[1, i].Value.ToString(); Person[i].city = GRID[2, i].Value.ToString(); Person[i].number = GRID[3, i].Value.ToString(); } formatter.Serialize(output, Person); output.Close(); } }
private void zapiszToolStripMenuItem_Click(object sender, EventArgs e) { GRID.EndEdit(); SaveFileDialog saveFileDialog1 = new SaveFileDialog(); //utworznie obiektu do zapisywania pliku saveFileDialog1.RestoreDirectory = true; //Okno dialogowe spowoduje przywrócenie bieżącego katalogu do poprzednio wybranego katalogu po zmianie //katalogu podczas wyszukiwania plików. if (saveFileDialog1.ShowDialog() == DialogResult.OK) //jeśli okno wyświetli się poprawnie { BinaryFormatter formatter = new BinaryFormatter(); //obiekt formatowania do zapisu binarnego //Udostępnia strumień dla pliku, obsługuje synchroniczne i asynchroniczne operacje odczytu i zapisu. FileStream output = new FileStream(saveFileDialog1.FileName, FileMode.OpenOrCreate, FileAccess.Write); int n = GRID.RowCount; //odczytanie liczby wierszy data[] Osoba = new data[n - 1]; //utowrzenie tablicy klasy osoba //pętla odczytująca wartości pól w tabeli i przekazujaca je do tablicy for (int i = 0; i < n - 1; i++) { Osoba[i] = new data(); Osoba[i].imie = GRID[0, i].Value.ToString(); Osoba[i].nazwisko = GRID[1, i].Value.ToString(); Osoba[i].email = GRID[2, i].Value.ToString(); } formatter.Serialize(output, Osoba); //serializajca wyjścia output.Close(); //zamknięcie wyścia danych } }