Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2021, 12:05   #1
apofioz
Форумчанин
 
Регистрация: 22.01.2014
Сообщений: 313
По умолчанию Запуск приложения из приложения.

Здравствуйте! Нужно сделать следующее:
Цитата:
При помощи своей любимой утилиты поиска (например, grep) найдите имена всех файлов, содержащих определенную последовательность символов. Перенаправьте вывод в файл. Напишите программу, которая по содержимому этого файла генерирует пакетный файл, запускающий текстовый редактор для каждого найденного файла.
Я написал такой код:
Код:
if (argc < 1)
	{
		cerr << "Not enought parameters in command line\n";
		_getch();
		exit(EXIT_FAILURE);
	}
	//const string fname = argv[1];
	const string fname = "D:\\FILESLIST.txt";
	ifstream fin(fname.c_str());
	if (!fin)
	{
		cerr << "Could not open file '" << fname << "'\n";
		_getch();
		exit(EXIT_FAILURE);
	}

	string title = "@echo off";
	string device_c = "C:\\\\";
	string device_d = "D:\\\\";
	string volume_86 = "Program Files(x86)";
	string volume_64 = "Program Files";
	string aplication_name = "notepad++.exe";
	string fname_n = "FILE_";
	string extension = ".bat";
	int idx = 1;

	string s;
	while (getline(fin, s))
	{
		cout << "string s: " << s << endl;

		ostringstream os;
		os << idx;
		string file_bat = device_d + "ASM\\\\" + fname_n + os.str() + extension;//путь и имя файла .bat
		ofstream fout(file_bat.c_str(), ios::trunc);
		
		if (!fout)
		{
			cerr << "Could not open file '" << file_bat << "'\n";
			_getch();
			exit(EXIT_FAILURE);
		}
		//содержимое bat-файла(просто запуск приложения блокнот с содержимым открытого файла)
		fout << title << endl << "\nstart " << "\"\" " << "\"" << device_c
		     << volume_64 << "\\\\" << "Notepad++" << "\\\\"
			<< "notepad++.exe\"" << " -multiInst" << " " << s << "\n" << "exit";
		
		fout.close();
		system(file_bat.c_str()); //ничего не запускает
		++idx;
	}
Вот и вопрос, если я хочу запустить приложение или, как в моём случае, батник, то что нужно использовать, какой фукнционал. Сталкиваюсь с таким впервые, так что...

P.S. Возможно, в путь и имя .bat при формировании попадают лишние служенбные символы. Т.к. если установить имя и путь файла, без формирования, то запускается нормально.

fout.close() - решил проблему!

Последний раз редактировалось apofioz; 21.03.2021 в 13:55.
apofioz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск приложения ser70 Java Мобильная разработка (Android) 2 29.11.2016 19:19
Запуск приложения aleks2377 Работа с сетью в Delphi 2 17.02.2016 12:42
Запуск приложения jkpro Помощь студентам 16 08.11.2009 12:31
Запуск приложения Zloy_Doomer Общие вопросы Delphi 2 10.10.2008 13:47
Запуск приложения Артэс Общие вопросы C/C++ 2 07.06.2008 17:38