e.o.b.
Гость
|
|
« : 26-06-2004 09:53 » |
|
Как в Visual Studio .net 2003 (visual c++) сделать чтобы из несколькольких edit control при нажатии на кнопку вся информация занесенная в них сохранялась в заданный текстовый файл (быз вызова стандартного окна сохранить)?
|
|
|
Записан
|
|
|
|
Never
|
|
« Ответ #1 : 26-06-2004 11:36 » |
|
Выкидываю в соответствующий форум. Когда вы уже научитель читать объявления в начале форума!!!
|
|
|
Записан
|
не умеете летать- не мучайте метлу!
|
|
|
Finch
Спокойный
Администратор
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
Большой босс
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
Большой босс
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" от Эриха Гаммы и так далее... Удачи тебе в этом увлекательном и захватывающем путешествии в мир профессионального программирования :!:
|
|
|
Записан
|
|
|
|
|