Форум программистов, компьютерный форум, киберфорум
C++/CLI
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
3 / 3 / 2
Регистрация: 15.10.2013
Сообщений: 91
1

Не получается записать String в файл

13.11.2014, 14:02. Просмотров 1525. Ответов 18
Метки нет (Все метки)

Не знаю как записать строку в файл. Раньше работал только в С++ на Вижуал перешёл пару месяцев назад, ещё не во всём разобрался.
C++
1
2
3
4
5
6
7
8
9
10
11
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
                 String^ family = KlientFamily->Text;
                 String^ name = KlientName->Text;
                 String^ otchestvo = KlientOtchestvo->Text;
                 ofstream Fille;
                 Fille.open("client.txt", ios::app);
                 Fille <<family<<" "<<name<<" "<<otchestvo<<endl; //Вот в этой строчке ошибка
                 Fille.close();
                 (KlientFamily->Text)="";   (KlientName->Text)="";  (KlientOtchestvo->Text)="";
                 MessageBox::Show( "Клиент успешно добавлен", "Успех!",MessageBoxButtons::OK, MessageBoxIcon::Information);
             }
Пытаюсь записать текст из TextBox в текстовый файл.
0
Изображения
 
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.11.2014, 14:02
Ответы с готовыми решениями:

нужно создать файл и записать в него что-то.создать получается, а записать нет
нужно создать файл и записать в него что-то.создать получается, а записать нет.model small .stack...

Не получается записать в файл
Здравствуйте. Необходимо записать данные в файл. Делаю через структуру и погуглив 'собрал' такой...

Как записать string в файл?
Добрый день, есть код программы, необходимо записать строку в текстовый файл. У меня получаются...

Записать из string в html файл
Долго мучаюсь, но не могу понять, как как занести спарсеные данные в html таблицу?! Создаю файл...

18
2379 / 1787 / 390
Регистрация: 15.12.2013
Сообщений: 7,597
13.11.2014, 17:18 2
Цитата Сообщение от tox14 Посмотреть сообщение
Пытаюсь записать текст из TextBox в текстовый файл.
Если используете класс String для хранения,то и записывайте в файл из средствами .Net

Добавлено через 11 минут
C++
1
2
3
                     StreamWriter^ sr = gcnew StreamWriter("arr.txt",true);//true для дозаписи
                     sr->WriteLine(textBox1->Text);
                     sr->Close();
1
3 / 3 / 2
Регистрация: 15.10.2013
Сообщений: 91
24.11.2014, 11:46  [ТС] 3
А как записать несколько переменных в одну строчку в файле? Например, я хочу имя, фамилию и отчество в одну строчку написать.
Пробовал так, но так только на новые строки
C++
1
2
3
4
StreamWriter^ File = gcnew StreamWriter("client.txt",true);
        File->WriteLine(KlientFamily->Text);
    File->WriteLine(KlientName->Text);
    File->WriteLine(KlientOtchestvo->Text);
0
2379 / 1787 / 390
Регистрация: 15.12.2013
Сообщений: 7,597
24.11.2014, 11:48 4
Цитата Сообщение от tox14 Посмотреть сообщение
А как записать несколько переменных в одну строчку в файле?
Используйте метод Write(),вместо WriteLine().
1
3 / 3 / 2
Регистрация: 15.10.2013
Сообщений: 91
24.11.2014, 12:15  [ТС] 5
А как получить значение из файла?
0
2379 / 1787 / 390
Регистрация: 15.12.2013
Сообщений: 7,597
24.11.2014, 12:27 6
tox14,
http://msdn.microsoft.com/ru-r... 10%29.aspx
или можно считать весь текст,а потом его разбивать:
http://msdn.microsoft.com/ru-r... 10%29.aspx
1
3 / 3 / 2
Регистрация: 15.10.2013
Сообщений: 91
29.11.2014, 00:22  [ТС] 7
У меня не получается считать строку из файла. Я пытаюсь поиск слова в файле сделать, но не получается. Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
String^ SearchKey = SearchKnig->Text; //Получаем из файла строку, которую хотим найти
             String^ ActiveKey; //Строка, которая считается из файла
             bool on = false;
             StreamReader^ File = gcnew StreamReader("knigi.txt"); 
             if (File){ //Если файл открыт
                 while (!File->EndOfStream){ //Пока не конец файла
                    ActiveKey = File->ReadLine();//Получаем строку
                    if(ActiveKey == SearchKey){//Если строки равны, то выводим информацию
                        MessageBox::Show("Книга найдена!\nИнформация о книге:\n"+System::Convert::ToChar(ActiveKey), "Успех!",MessageBoxButtons::OK, MessageBoxIcon::Information);
                        on = true;                  
                    }
                }
                if (on == false) MessageBox::Show("Книга не найдена!", "Ошибка",MessageBoxButtons::OK, MessageBoxIcon::Error); //Если нет, то ошибка
                File->Close();
             }
             else  MessageBox::Show( "Файл не найден", "Ошибка",MessageBoxButtons::OK, MessageBoxIcon::Error);
0
2379 / 1787 / 390
Регистрация: 15.12.2013
Сообщений: 7,597
29.11.2014, 00:29 8
Цитата Сообщение от tox14 Посмотреть сообщение
Я пытаюсь поиск слова в файле сделать, но не получается.
Если файл не большой,то можно загрузить его весь в String а там искать или substring или find или регуляркой.

Добавлено через 2 минуты
Вот похожий вопрос на C#:
https://www.cyberforum.ru/post659220.html

но переделать будет просто.
1
3 / 3 / 2
Регистрация: 15.10.2013
Сообщений: 91
29.11.2014, 00:41  [ТС] 9
С# я ещё не изучал...

Файл вот такого вида будет. Не очень большой
Поиск хочу сделать либо по автору, либо по названию. Но как это реализовать - не знаю.
0
Миниатюры
Не получается записать String в файл  
2379 / 1787 / 390
Регистрация: 15.12.2013
Сообщений: 7,597
29.11.2014, 15:38 10
Цитата Сообщение от tox14 Посмотреть сообщение
Файл вот такого вида будет. Не очень большой
Поиск хочу сделать либо по автору, либо по названию. Но как это реализовать - не знаю.
Вариантов по реализации очень много.
Для начала перевел код по ссылке выше на C++/CLI:

C++
1
2
3
4
5
6
7
8
9
10
11
12
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
                     textBox2->Clear();
                     StreamReader^ str = gcnew StreamReader("test.txt",System::Text::Encoding::Default);
                     while (!str->EndOfStream)
                         {
                         String^ st = str->ReadLine();
                         if (st->StartsWith(textBox1->Text))
                             textBox2->Text += st+=Environment::NewLine;
 
 
                         }
                     }
1
3 / 3 / 2
Регистрация: 15.10.2013
Сообщений: 91
30.11.2014, 15:19  [ТС] 11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
             String^ SearchKey = SearchKnig->Text;
             bool on = false;
             StreamReader^ File = gcnew StreamReader("knigi.txt",System::Text::Encoding::Default); 
             if (File){
                 while (!File->EndOfStream){
                    String^ ActiveKey = File->ReadLine();
                    if(ActiveKey->StartsWith(SearchKey)){
                        MessageBox::Show("Книга найдена!\nИнформация о книге:\n"+System::Convert::ToChar(ActiveKey), "Успех!",MessageBoxButtons::OK, MessageBoxIcon::Information);
                        on = true;                  
                    }
                }
                if (on == false) MessageBox::Show("Книга не найдена!", "Ошибка",MessageBoxButtons::OK, MessageBoxIcon::Error);
                File->Close();
             }
Ошибка: Длина строки должна составлять один знак.
0
2379 / 1787 / 390
Регистрация: 15.12.2013
Сообщений: 7,597
30.11.2014, 16:59 12
Цитата Сообщение от tox14 Посмотреть сообщение
Ошибка: Длина строки должна составлять один знак.
На что ругается?
0
3 / 3 / 2
Регистрация: 15.10.2013
Сообщений: 91
30.11.2014, 17:05  [ТС] 13
Вот
0
Миниатюры
Не получается записать String в файл  
2379 / 1787 / 390
Регистрация: 15.12.2013
Сообщений: 7,597
30.11.2014, 17:15 14
tox14, обработайте исключение и посмотрите информацию или посмотрите в отладчике на каком этапе возникает.
Или прикрепите файл,я проверю у себя
1
3 / 3 / 2
Регистрация: 15.10.2013
Сообщений: 91
30.11.2014, 17:41  [ТС] 15
Вот проект
0
Вложения
Тип файла: rar Проект.rar (9.49 Мб, 9 просмотров)
2379 / 1787 / 390
Регистрация: 15.12.2013
Сообщений: 7,597
30.11.2014, 18:34 16
Лучший ответ Сообщение было отмечено tezaurismosis как решение

Решение

tox14, исправил и добавил обработку исключений

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
private: System::Void button3_Click(System::Object^  sender, System::EventArgs^  e) {
            try
                {
            
             bool on = false;
             StreamReader^ File = gcnew StreamReader("knigi.txt",System::Text::Encoding::Default); 
             if (File){
                 while (!File->EndOfStream){
                    String^ ActiveKey = File->ReadLine();
                    if(ActiveKey->StartsWith(SearchKnig->Text)){
                        MessageBox::Show("Книга найдена!\nИнформация о книге:\n"+ActiveKey, "Успех!",MessageBoxButtons::OK, MessageBoxIcon::Information);
                        on = true;                  
                    }
                }
                if (on == false) MessageBox::Show("Книга не найдена!", "Ошибка",MessageBoxButtons::OK, MessageBoxIcon::Error);
                File->Close();
             }
             else  MessageBox::Show( "Файл не найден", "Ошибка",MessageBoxButtons::OK, MessageBoxIcon::Error);
                }
            catch(Exception^ ex)
                {
 
                MessageBox::Show(ex->ToString());
                }
            catch(...)
                {
                MessageBox::Show("Перехватили неизвестное исключение =)");
                }
         }
1
3 / 3 / 2
Регистрация: 15.10.2013
Сообщений: 91
30.11.2014, 18:45  [ТС] 17
Всё работает, спасибо.
Я так понимаю оно сравнивает строчки, начиная с начала. А что если нужно в файле записано так:
Лев Толстой - Война и мир
Как сделать, что бы можно было ввести в запрос "Война и мир" и оно его бы нашло?
0
2379 / 1787 / 390
Регистрация: 15.12.2013
Сообщений: 7,597
30.11.2014, 18:50 18
Цитата Сообщение от tox14 Посмотреть сообщение
Как сделать, что бы можно было ввести в запрос "Война и мир" и оно его бы нашло?
http://msdn.microsoft.com/ru-r... 10%29.aspx
0
3 / 3 / 2
Регистрация: 15.10.2013
Сообщений: 91
30.11.2014, 18:56  [ТС] 19
Большое спасибо. Получилось.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.11.2014, 18:56

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Не получается записать данные в файл
Не получается записать данные в файл 1) Установил Open Server 2) В папке domains создал файл...

Не получается записать данные в файл
собственно проблема на скринах указана. Может кто подскажет решение? #include &quot;stdafx.h&quot;...

Как записать в файл System::String?
У меня есть 1 textBox. Я с него записываю в System::String информацию, и мне нужно потом записать с...

Не получается записать строку в php файл
Может кто знает, как это сделать , или вдруг можно изменить txt на php


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.