Имя файла в openFileDialog в C++


В C++ довольно много разных типов данных. И заставить их взаимодействовать между собой (конвертироваться друг в друга) иногда совсем даже непросто. Более того, распространенные задачи, которые решаются в других языках одной строкой, в это могут занимать несколько. Примером такой задачи является получение и работа с адресом файла через стандартный диалог окна выбора файла.



Итак, добавляем на нашу форму элемент типа openFileDialog. Теперь открываем окно выбора файла:

openFileDialog1->ShowDialog();
Получаем путь к файлу в типе System::String^:

System::String^ path_f = openFileDialog1->FileName;
Инициализируем вспомогательную переменную типа std::string:

std::string vsSt= "";
Циклом через char её определяем:

for(int i = 0; i < path_f ->Length; i++)
vsSt += (char) path_f [i];
И, наконец, получаем переменную типа const char *:

const char * stt = vsSt.c_str();
Зачем такие сложности? Дело в том, что теперь, в таком формате имени файла, мы можем открыть его и записать что-то него, к примеру:

	FILE *file;
	if ((file=fopen(stt,"w"))==NULL) {
		printf("Невозможно открыть файл\n");
		exit(1);
	};
else {
fprintf(file,"%f\n",  “бе-бе-бе”);
}
Стоит отметить, что данный пример – это не исключение. Не хочу сказать ничего плохого, но в том же C# все происходит гораздо проще. Однако, для некоторых графических программ, которые студенты должны выполнить в рамках рубежного контроля, есть условие использовать именно язык C++. Так что приходится работать в этом направлении – в будущем я планирую еще написать несколько заметок на данную тему.

Кстати, напоминаю вам, что я смогу выполнить для вас практическую, лабораторную, курсовую или дипломную работу по программированию за небольшое вознаграждение. Гарантии, опыт, конфиденциальность – есть все. Пишите.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегизаметки, си плюс плюс, openFileDialog, типы данных




Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Макросы CorelDraw: модальное окно и обработка событий документа
Взаимодействие и синхронизация потоков
Поля и методы в Java: константы поля