Имя файла в 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 - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.