Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.98/125: Рейтинг темы: голосов - 125, средняя оценка - 4.98
12 / 12 / 0
Регистрация: 03.10.2011
Сообщений: 343

Открытие и сохранение текствого файла

10.11.2012, 15:37. Показов 24455. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Подскажите. У меня есть TextBox и 2 кнопки.. При нажатии на первую кнопку, у меня должно все, что я написал в TextBox, сохраниться в файл. А вторая кнопка должна наоборот, открывать заданный файл. Как это можно реализовать? Везде описана только консоль..
И еще..можно ли все это сохранить как то в проект? Ну, например, путь для сохранения файла писать не на диск C, а в папку с проектом..чтобы когда человек другой открыл мой проект в любом другом месте, у него все работало
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.11.2012, 15:37
Ответы с готовыми решениями:

Написать текстовый редактор, в котором продемонстрировать открытие файла, сохранение файла, создание нового файла
№ 5. Написать текстовый редактор, в котором продемонстрировать открытие файла, сохранение файла, создание нового файла – чистого листа, на...

Открытие файла - запуск макроса и сохранение файла с новым именем
Пытаюсь сделать vba-программу для следующих действий: 1. открытие файла путем его выбора из окна windows; 2. запуск макроса для этого...

Сохранение и открытие файла и занесение текста файла в ListBox
Здравствуйте! Вот никак не могу понять, прочитал уже столько тем на форуме, на http://msdn.microsoft.com/, но ничего не помогает. Мне нужно...

12
15 / 15 / 1
Регистрация: 23.10.2010
Сообщений: 83
10.11.2012, 16:06
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 private void button1_Click(object sender, RoutedEventArgs e)
        {
            using (StreamWriter sw = new StreamWriter(AppDomain.CurrentDomain.BaseDirectory+"text.txt"))
            {
                sw.WriteLine(textBox1.Text);
            }
        }
 
        private void button2_Click(object sender, RoutedEventArgs e)
        {
            using (StreamReader sr = new StreamReader(AppDomain.CurrentDomain.BaseDirectory+ "text.txt"))
            {
                textBox1.Text = sr.ReadLine();
            }
        }
0
12 / 12 / 0
Регистрация: 03.10.2011
Сообщений: 343
10.11.2012, 17:37  [ТС]
AppDomain - у меня подчеркивается эта часть...Типа не существует в этом контексте..что делать?
0
 Аватар для Jylik
110 / 51 / 14
Регистрация: 06.03.2012
Сообщений: 858
10.11.2012, 17:48
LieCatcher, О,,О чет слишком просто...)

Добавлено через 1 минуту
Panda30, У меня воть так...
C#
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
28
29
30
31
32
33
34
35
//Открытие файла
        private void button1_Click(object sender, System.EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();
 
            openFileDialog.Filter = "Текстик (*.txt)|*.txt";
 
            if (openFileDialog.ShowDialog() == true)
            {
                FileInfo fileInfo = new FileInfo(openFileDialog.FileName);
 
                StreamReader reader = new StreamReader(fileInfo.Open(FileMode.Open, FileAccess.Read), Encoding.GetEncoding(1251));
 
                textBox1.Text = reader.ReadToEnd();
 
                reader.Close();
                return;
            }
        }
        //Сохранение файла
        private void button2_Click(object sender, System.EventArgs e)
        {
            SaveFileDialog saveFileDialog1 = new SaveFileDialog();
 
            saveFileDialog1.Filter = "Текстик (*.txt)|*.txt";
 
            if (saveFileDialog1.ShowDialog() == true)
            {
                using (StreamWriter sw = new StreamWriter(saveFileDialog1.OpenFile(), System.Text.Encoding.Default))
                {
                    sw.Write(textBox1.Text);
                    sw.Close();
                }
            }
        }
0
12 / 12 / 0
Регистрация: 03.10.2011
Сообщений: 343
10.11.2012, 17:59  [ТС]
Jylik, Опять диалоги) Мне надо заранее заданный документ открыть)
LieCatcher логику правильно, как я понял, вы сделали)только вот подчеркивается..ошибку выдает..
0
15 / 15 / 1
Регистрация: 23.10.2010
Сообщений: 83
10.11.2012, 22:08
оставьте только параметр "text.txt" остальное уберите, все будет работать и файл будет сохраняться/загружаться там же/оттудаже где будет экзешник.
0
12 / 12 / 0
Регистрация: 03.10.2011
Сообщений: 343
10.11.2012, 22:14  [ТС]
LieCatcher, sw.WriteLine(textBox1.Text) только это оставить?
0
15 / 15 / 1
Регистрация: 23.10.2010
Сообщений: 83
10.11.2012, 22:52
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 private void button1_Click(object sender, RoutedEventArgs e)
        {
            using (StreamWriter sw = new StreamWriter("text.txt"))
            {
                sw.WriteLine(textBox1.Text);
            }
        }
 
        private void button2_Click(object sender, RoutedEventArgs e)
        {
            using (StreamReader sr = new StreamReader("text.txt"))
            {
                textBox1.Text = sr.ReadLine();
            }
        }
0
12 / 12 / 0
Регистрация: 03.10.2011
Сообщений: 343
10.11.2012, 22:59  [ТС]
теперь ошибка:
C#
1
new StreamWriter("text.txt"))
Ошибка 1 Наиболее подходящий перегруженный метод для "System.IO.StreamWriter.StreamWriter(Sys tem.IO.Stream)" имеет несколько недопустимых аргументов C:\Users\Александр\Desktop\Students\Stud ents\Students\MainPage.xaml.cs
Ошибка 2 Аргумент "1": преобразование типа из "string" в "System.IO.Stream" невозможно C:\Users\Александр\Desktop\Students\Stud ents\Students\MainPage.xaml.cs
0
15 / 15 / 1
Регистрация: 23.10.2010
Сообщений: 83
10.11.2012, 23:08
пришлите проект посмотрю как вы ЭТО делаете)
0
12 / 12 / 0
Регистрация: 03.10.2011
Сообщений: 343
10.11.2012, 23:12  [ТС]
У меня проект на Windows 8. Метро приложение) Но по идее логика сохранения не должна быть изменена..Откроете?)
Вложения
Тип файла: rar Students.rar (159.9 Кб, 78 просмотров)
0
12 / 12 / 0
Регистрация: 03.10.2011
Сообщений: 343
10.11.2012, 23:12  [ТС]
но если что, то сам код вод:
C#
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
 
// Документацию по шаблону элемента "Основная страница" см. по адресу [url]http://go.microsoft.com/fwlink/?LinkId=234237[/url]
 
namespace Students
{
    /// <summary>
    /// Основная страница, которая обеспечивает характеристики, являющимися общими для большинства приложений.
    /// </summary>
    public sealed partial class MainPage : Students.Common.LayoutAwarePage
    {
        public MainPage()
        {
            this.InitializeComponent();
        }
 
        /// <summary>
        /// Заполняет страницу содержимым, передаваемым в процессе навигации. Также предоставляется любое сохраненное состояние
        /// при повторном создании страницы из предыдущего сеанса.
        /// </summary>
        /// <param name="navigationParameter">Значение параметра, передаваемое
        /// <see cref="Frame.Navigate(Type, Object)"/> при первоначальном запросе этой страницы.
        /// </param>
        /// <param name="pageState">Словарь состояния, сохраненного данной страницей в ходе предыдущего
        /// сеанса. Это значение будет равно NULL при первом посещении страницы.</param>
        protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
        {
        }
 
        /// <summary>
        /// Сохраняет состояние, связанное с данной страницей, в случае приостановки приложения или
        /// удаления страницы из кэша навигации. Значения должны соответствовать требованиям сериализации
        /// <see cref="SuspensionManager.SessionState"/>.
        /// </summary>
        /// <param name="pageState">Пустой словарь, заполняемый сериализуемым состоянием.</param>
        protected override void SaveState(Dictionary<String, Object> pageState)
        {
        }
 
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            using (StreamWriter sw = new StreamWriter("text.txt"))
            {
                sw.WriteLine(TextBox1.Text);
            }
 
 
        }
 
        private void Button_Click_2(object sender, RoutedEventArgs e)
        {
            {
               using (StreamReader sr = new StreamReader("text.txt"))
                {
                    TextBox1.Text = sr.ReadLine();
                }
 
            }
 
        }
    }
}
0
 Аватар для Jman
89 / 77 / 38
Регистрация: 11.10.2015
Сообщений: 860
12.04.2017, 15:31
Дабы не плодить темы, оставлю здесь. Мне нужно наоборот. Сохранить как я сделал. Мне необходимо сделать кнопку Save, чтобы писались изменения в файл. Если ни разу данные не изменялись, открыть диалоговое окно, если уже есть файл - записать без подтверждений и диалогового окна.
Вот код, который я использую для Save As:
C#
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
28
29
30
31
32
33
34
35
36
  private void saveClick(object sender, RoutedEventArgs e)
        {
            const string caption = "Error!";
            SaveFileDialog dialog = new SaveFileDialog();
            var readDataFromDB = StudentManager.ReadData();
 
            dialog.Filter = "CSV Files(*.csv)|*.csv|All(*.*)|*";
            dialog.RestoreDirectory = true;
            dialog.InitialDirectory = dialog.FileName;
 
            try
            {
                if (dialog.ShowDialog() == true)
                {
                    string  path = dialog.FileName;
                    StreamWriter sw = new StreamWriter(path, true, System.Text.Encoding.GetEncoding(1251));
                    
                    using (sw)
                    {
                        foreach (var item in readDataFromDB)
                        {
                            sw.Write(item.Name + ",");
                            sw.Write(item.SecondName + ",");
                            sw.Write(item.DepartmentId + ",");
                        }
                   
                    }
 
                  
                }
        
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error! " + ex.Message, caption, MessageBoxButton.OK, MessageBoxImage.Error);
            }
Тут я читаю из базы данных
C#
1
  var readDataFromDB = StudentManager.ReadData();
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.04.2017, 15:31
Помогаю со студенческими работами здесь

Открытие и сохранение файла.
Здравствуйте, уважаемые форумчане, у меня возник такой вопрос. Я открываю файл с тектсом, что бы показать текст пользователю. ...

Сохранение и открытие файла
Нужно организовать сохранение данных (элементы StringGrid) в файл, а также открытие (и соответственно заполнение этого самого StringGrid) ...

Открытие и сохранение файла
Добрый вечер. Есть код void __fastcall TForm1::N3Click(TObject *Sender) { TTabSheet* TabSheet1 = new...

Открытие и сохранение файла
Хочу в своей программе сделать сохранение и загрузка данных. (Button1) Подскажите, как правильно прочитать файл и полученные из него...

Сохранение\Открытие файла
Нужно организовать сохранение в файл, например через SaveFileDialog. Проект организован так что в файл **.hpp описаны переменные, например ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru