| 
			| 
					
						| 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" от Эриха Гаммы и так далее...    Удачи тебе в этом увлекательном и захватывающем путешествии в мир профессионального программирования :!: |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	|  |