|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - C++ Другие переменные в строке |
|
C/C++ - C++ Другие переменные в строке
|
Новый участник Сообщения: 17 |
Профиль | Отправить PM | Цитировать
Всем привет!
Переписываю свой батник на плюсы. Все уперлось в банальный вопрос: Вот у меня есть такой кусок: char file_name = 'что-то'; string others = 'еще что-то'; string params = "file.exe -name \"file_name\" -p =\"others\"" Можно ли это как-то осуществить? Просто мягко говоря, это как бы суть программы - запуск других консольных утилит с параметрами Заранее благодарен! |
|
Отправлено: 01:45, 15-04-2014 |
Ветеран Сообщения: 740
|
Профиль | Отправить PM | Цитировать Если в лоб, то можно получить params так:
VS под руками нет, так что с WinExec посмотрите сами. |
Отправлено: 07:26, 15-04-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 17
|
Профиль | Отправить PM | Цитировать User001, А! Хм... Таки... А вот синтаксис JS я использовать не додумался... Благодарю!
Тогда сразу хочу спросить: а что, если эти переменные я хочу использовать несколько раз в разных местах? Просто прога при этом компилируется без ошибок, но при запуске почему-то сразу вылетает... |
Отправлено: 17:03, 15-04-2014 | #3 |
Ветеран Сообщения: 740
|
Профиль | Отправить PM | Цитировать |
Отправлено: 15:39, 16-04-2014 | #4 |
Новый участник Сообщения: 17
|
Профиль | Отправить PM | Цитировать User001, я просто PHP/JS программист, а это я просто свой старый батник переписываю для души)
Проблема возникает, когда какая-либо переменная уже включает в себя какие-либо переменные. То есть с таким куском все нормально: string copyright = "(c) 2013-2014 Acuna."; string params = "\"Created with " + string (copyright) + "\""; программа вылетает сразу после запуска( |
|
Отправлено: 00:06, 19-04-2014 | #5 |
Ветеран Сообщения: 740
|
Профиль | Отправить PM | Цитировать Цитата Acuna:
Цитата Acuna:
Насчет вылетает - видимо, надо смотреть функцию целиком. Вот это, например, не вылетает. |
||
Отправлено: 08:11, 21-04-2014 | #6 |
Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать Acuna, ещё вариант (больше параметризован, можно играть с синтаксисом):
void replace_all(string& str, const string& samp, const string& repl) { static unsigned const nowhere=string::npos; unsigned pos, samp_len=samp.length(), repl_len=repl.length(); for(pos=0; nowhere!=(pos=string.find(samp, pos)); pos+=repl_len) { string.replace(pos, samp_len, repl); } } string others = "...", params = "...", cmdline = "file.exe -name \"$(params)\" -p =\"$(other)\""; string eval=cmdline; replace_all(eval, "$(params)", params); replace_all(eval, "$(other)", other); WinExec(..., eval.c_str(), 1); Но вообще советую поиграться, выработать навыки работы со строками и сделать как было, через батник. Имхо было лучше |
Отправлено: 14:23, 22-04-2014 | #7 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Прочее - Переменные | RasKolbas | Общий по Linux | 8 | 23-07-2010 18:12 | |
Разное - [PHP] Переменные | CXREF | Программирование и базы данных | 2 | 16-06-2009 08:15 | |
Переменные окружения | Danwer | Общий по FreeBSD | 2 | 16-09-2007 14:47 | |
$OEM$ Переменные | Iliander | Автоматическая установка Windows 2000/XP/2003 | 1 | 08-03-2007 04:53 | |
Переменные в PHP | Guest | Программирование и базы данных | 6 | 11-09-2003 04:28 |
|