Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Сохранить в файл  (Прочитано 10661 раз)
0 Пользователей и 1 Гость смотрят эту тему.
e.o.b.
Гость
« : 26-06-2004 09:53 » 

Как в Visual Studio .net 2003 (visual c++) сделать чтобы из несколькольких edit control при нажатии на кнопку вся информация занесенная в них сохранялась в заданный текстовый файл (быз вызова стандартного окна сохранить)?
Записан
Never
Команда клуба

ua
Offline Offline
Пол: Женский

« Ответ #1 : 26-06-2004 11:36 » 

Выкидываю в соответствующий форум. Когда вы уже научитель читать объявления в начале форума!!!  Ха-ха-ха
Записан

не умеете летать- не мучайте метлу!
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #2 : 26-06-2004 12:15 » 

e.o.b., Специфику Вижуал не знаю. Но делается это просто. Открываеш файл (CreateFile) В цикле опрашиваеш свои Edit и береш у них информацию, записываеш в файл (WriteFile), Закрываеш файл (CloseFile).
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Serega
Гость
« Ответ #3 : 28-06-2004 10:57 » 

Код:
void SaveToFile()
{
TextBox[] boxes = new TextBox[] { textBox1, textBox2, textBox3 };
StreamWriter writer = new StreamWriter("text.txt");
foreach(TextBox tb in boxes)
{
writer.WriteLine(tb.Text);
}
writer.Close();
}
на С++ код не сильно отличается
Код:
void SaveToFile()
{
TextBox* boxes[] = new TextBox*[3];
boxes[0] = textBox1;
boxes[1] = textBox2;
boxes[2] = textBox3;
StreamWriter* writer = new StreamWriter("text.txt");
for(int i = 0; i < boxes->Length; i++)
{
TextBox* tb = boxes[i];
writer->WriteLine(tb->Text);
}
writer->Close();
}
« Последнее редактирование: 28-11-2007 19:04 от Алексей1153++ » Записан
e.o.b.
Гость
« Ответ #4 : 29-06-2004 12:28 » 

Ну народ, я же у вас не то спрашиваю! Смысл вопроса заключается в том, как сохранить в файл данные через стандартный класс CFile без включения стандратного окна Save as: чтобы нажал на кнопку и все само-сабой сохранилось (не спрашивая в какой файл).
Записан
Pu
Большой босс

ru
Offline Offline
78


« Ответ #5 : 29-06-2004 13:48 » 

e.o.b., то есть ты юзаешь MFC? так для уточнения.
я пользую stl для этого. Открыл поток

std::fstream fs(Text, std::ios::text | std::ios::out);
потом туда чего душа пожелает
fs.write(....);
ну и есесно
fs.close();
Записан

Насколько я опытен? Достаточно, чтобы понимать, что дураков нельзя заставить думать по–другому, но недостаточно, чтобы отказаться от попыток это сделать.
(с) Артур Джонс
e.o.b.
Гость
« Ответ #6 : 30-06-2004 05:58 » 

Я не знаю что юзаю, я пытаюсь первую программу написать, использую MFC, после длительного гемороя получилось:

void Cbase_adressDlg::OnBnClickedButton1()
{
         int ec_length, count;
   CFile data_file("c:\\!.txt",CFile::modeCreate
      |CFile::modeNoTruncate
      |CFile::modeReadWrite);
   UpdateData(TRUE);
            
   ec_mname.GetString();
   ec_mname.GetLength();
            
   for (count=1; count=6; count++)
   Не понял Как вот тут опросить все 6 editcontrol, можно ли как-нибудь создать
   массив строк, как? Для этого можно использовать .GetString()?

   data_file.Write(Не понял,ec_length);   
   
   data_file.Close();
Записан
Serega
Гость
« Ответ #7 : 30-06-2004 08:00 » 

Есть два способа получить данные от контролов.
Способ первый:
создать в классе диалога переменные связанные с этими контролами (это может сделать визард)
выглядить это будет примерно так
Код:
class CTestDlg : public CDialog
{
...
CEdit edit1;
CEdit edit2;
CEdit edit3;
...
};

void CTestDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_EDIT1, edit1);
DDX_Control(pDX, IDC_EDIT2, edit2);
DDX_Control(pDX, IDC_EDIT3, edit3);
...
}
Потом можно создать массив указателей на нужные нам контролы и использовать его при сохранении
Код:
void CTestDlg::OnBnClickedButton1()
{
CFile file(_T("file_to_save.txt"),
   CFile::modeCreate | CFile::modeNoTruncate | CFile::modeWrite);
file.SeekToEnd();
UpdateData();
static CWnd* controls[] = { &edit1, &edit2, &edit3 };
for(int i = 0; i < sizeof(controls) / sizeof(controls[0]); i++)
{
CString text;
controls[i]->GetWindowText(text);
file.Write(text.GetString(), text.GetLength());
}
}
Вариант два: не создавать в классе переменных для контролов, тогда нам потребуются их ID (они определены в ресурсах)
Код:
void CTestDlg::OnBnClickedButton1()
{
CFile file(_T("file_to_save.txt"),
   CFile::modeCreate | CFile::modeNoTruncate | CFile::modeWrite);
file.SeekToEnd();
static int controlsID[] = | IDC_EDIT1, IDC_EDIT2, IDC_EDIT3 };
for(int i = 0; i < sizeof(controlsID) / sizeof(controlsID[0]); i++)
{
CString text;
GetDlgItemText(controlsID[i], text);
file.Write(text.GetString(), text.GetLength());
}
}
« Последнее редактирование: 28-11-2007 19:07 от Алексей1153++ » Записан
Serega
Гость
« Ответ #8 : 30-06-2004 08:05 » 

Never, не в тот форум ты тему выкинула Ага
.NET тут и не пахнет Отлично

e.o.b., зря ты связался с MFC, лучше потрать время на изучение C# и избавишься от лишней головной боли в будущем Ага
Записан
e.o.b.
Гость
« Ответ #9 : 30-06-2004 11:01 » 

А что такое С# - мне люди сказали, что это вроде бы как для сети. У меня инфы просто никакой нет, кроме как по MFC и в visual studio.net 2003 ни одного help'а (или другого чего-нибудь, что могло бы помочь). Просто хочу научиться писать проги для себя любимого (на C++ -немного знаком). Что порекомендуете. Вместо MFC что можно использовать? Я раньше использовал библиотеки iostream.h и fstream.h, а в VS.net они есть в папке include, только без расширения .h - это с чем связано. Не ругайтесь на меня больше, я еще глупенький!!!
Записан
Pu
Большой босс

ru
Offline Offline
78


« Ответ #10 : 30-06-2004 11:23 » 

e.o.b., это как раз и есть stl библиотеки стандартные обработки потоков Улыбаюсь. просто включаешь <fstream> ,  <iostream> ну и используешь как я выше показывал.
Записан

Насколько я опытен? Достаточно, чтобы понимать, что дураков нельзя заставить думать по–другому, но недостаточно, чтобы отказаться от попыток это сделать.
(с) Артур Джонс
e.o.b.
Гость
« Ответ #11 : 30-06-2004 11:27 » 

А как мне полюсик дяденьке Sereg'e поставить. Или мне нельзя. Только не выкидывайте меня больше никуда. Мне здесь нравится. Я буду С# учить, честно.
Записан
Serega
Гость
« Ответ #12 : 01-07-2004 10:15 » 

Книги по STL и по C# есть у нас в библиотеке
Правда я сейчас не в курсе работает ли она

Если больше нравятся бумажные версии ищи на findbook.ru

По STL там нашел "Эффективное использование STL", "STL для программистов на C++", "Обобщенное программирование и STL"

Осваивать .NET и C# советую с книги Троелсена "C# и платформа .NET. Библиотека программиста"
Записан
Serega
Гость
« Ответ #13 : 01-07-2004 10:45 » 

Так же советую почитать книгу Брюса Эккеля "Философия Java", если даже и не будешь писать на Java, почитать стоит для расширения кругозора.
Решения использующиеся в Java просты, элегантны и универсальны, так что время потраченное на чтение окупится сполна.
А дальше, если тебе действительно интересно программирование, доберешься и до "Design Patterns" от Эриха Гаммы и так далее... Ага
Удачи тебе в этом увлекательном и захватывающем путешествии в мир профессионального программирования :!:
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines