using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; using System.IO; // File using Microsoft.Win32; // SaveFileDialog using System.Threading; //Thread namespace ankieta { /// /// Logika interakcji dla klasy WindowFormularz.xaml /// // Aby dodać nowe okno: prawy na nazwę projektu (Eksplorator rozwiązań)/Dodaj/Nowy Element/Okno (WPF) public partial class WindowFormularz : Window { public WindowFormularz() { InitializeComponent(); } // metoda zbierająca dane z ankiety // i wrzucająca je do typu string // CR: Carriage Return // LF: Line Feed // \r\n = CR + LF // Used as a new line character in Windows private string getContent() { string content = ""; content += "Twoje dane:\r\n"; content += "imię: " + tbImie.Text + "\r\n"; content += "nazwisko: " + tbNazwisko.Text + "\r\n"; content += "płeć: "; if (rbtnKobieta.IsChecked == true) { content += "kobieta\r\n"; } else { content += "mężczyzna\r\n"; } content += "zainteresowania:\r\n"; if(cbProgramowanie.IsChecked == true) { content += "programowanie\r\n"; } if (cbMuzyka.IsChecked == true) { content += "muzyka\r\n"; } if (cbFilm.IsChecked == true) { content += "film\r\n"; } if (cbSport.IsChecked == true) { content += "sport\r\n"; } content += "o sobie:\r\n"; content += tbOSobie.Text + "\r\n"; return content; } // zapisujemy treść formularza w pliku za pomocą okna dialogowego SaveFileDialog // brak mozliwości dopisania danych do pliku private void btnFormularzZapisNewFile_Click(object sender, RoutedEventArgs e) { // pobieramy treść ankiety string tresc = getContent(); // okienko dialogowe do zapisu pliku // https://wpf-tutorial.com/pl/47/okna-dialogowe/okno-zapisz-plik/ SaveFileDialog saveFileDialog = new SaveFileDialog(); // filtruje pokazywane pliki - pokazuje tylko pliki z rozszerzeniem .txt saveFileDialog.Filter = "Text file (*.txt)|*.txt"; // pobieramy bieżący katalog projektu - WORKING directory (i.e. \bin\Debug) string workingDirectory = Environment.CurrentDirectory; // ustawienie defaultowego folderu do zapisu na bieżący projektu saveFileDialog.InitialDirectory = workingDirectory; // defaultowa nazwa pliku do zapisu saveFileDialog.FileName = "ankieta.txt"; // zapisujemy treść ankiety w pliku if (saveFileDialog.ShowDialog() == true) File.WriteAllText(saveFileDialog.FileName, tresc); } // zapisujemy treść formularza w pliku za pomocą klasy StreamWriter // dopisujemy dane do pliku (gdy nie ma pliku to go tworzy) private void btnFormularzZapisAppend_Click(object sender, RoutedEventArgs e) { // pobieramy treść ankiety string tresc = getContent(); // nazwa pliku string name = "ankieta.txt"; // pobieramy bieżący katalog projektu - WORKING directory (i.e. \bin\Debug) string workingDirectory = Environment.CurrentDirectory; // dopisujemy dane do pliku (append), // słowo kluczowe using służy do tworzenia obiektów, // po wyjściu z bloku using, obiekt zostaje zwolniony (pamięć jest czyszcona). // klasa, której obiekt został zainicjalizowany musi implementować interfejs System.IDisposable. using (var fileStream = new FileStream(System.IO.Path.Combine(workingDirectory, name), FileMode.Append)) using (var streamWriter = new StreamWriter(fileStream)) { streamWriter.WriteLine(tresc); // komunikat o wykonaniu zadania tbFormularzZapisAppend.Text = "zrobione"; } } } }