1

Тема: Як зробити,щоб програма відкривала .cmd файл в залежності від слова?

Є програма, яка виводить рандомні слова, є наприклад cmd/exe файли словоA, слова, словоС, як зробити щоб було так-
Output словоA, запуск словоA.cmd/.exe.
Знаю як запустити просто файл,а як в залежності від виведеного слова - не знаю,підкажіть будь ласка.

Якщо треба - можу код для виводу слів кинути.

2

Re: Як зробити,щоб програма відкривала .cmd файл в залежності від слова?

Якщо в нас C/C++, то виклик .cmd-файла з сішної програми задається 0-термінованим рядком. Значить, треба скомпонувати рядок, що міститиме ім'я файла, й передати його функції system().

py -3 -m pip install git+https://github.com/snoack/python-goto
∩⍴○⌈⍴⍺/∧\∨/⊢○ ⌿⍀⍴⌊

3

Re: Як зробити,щоб програма відкривала .cmd файл в залежності від слова?

darsteba написав:

Є програма, яка виводить рандомні слова, є наприклад cmd/exe файли словоA, слова, словоС, як зробити щоб було так-
Output словоA, запуск словоA.cmd/.exe.
Знаю як запустити просто файл,а як в залежності від виведеного слова - не знаю,підкажіть будь ласка.

Якщо треба - можу код для виводу слів кинути.

не зовсім зрозуміло. Ви не знаете як з'єднати дві строки?
Наведіть будласка код як ви отримуєте ваші слова та як хочете запускати програми

Робіть що хочете - людина створена вільною

4 Востаннє редагувалося darsteba (26.03.2019 00:45:35)

Re: Як зробити,щоб програма відкривала .cmd файл в залежності від слова?

Зробив додавши  -

int n = rand()%11;
printf ("%s %s\n", spisok_0 [rand()%1], spisok_1 [n]);
system ( spisok_1[n]);

5

Re: Як зробити,щоб програма відкривала .cmd файл в залежності від слова?

darsteba написав:

Зробив додавши  -

int n = rand()%11;
printf ("%s %s\n", spisok_0 [rand()%1], spisok_1 [n]);
system ( spisok_1[n]);

дивний код. Але вам видніше. Можливо я не зрозумів яку ви задачу вирішуєте - та схоже що у вас з цим такіж проблеми :)

Робіть що хочете - людина створена вільною
Подякували: koala1

6 Востаннє редагувалося darsteba (26.03.2019 10:43:24)

Re: Як зробити,щоб програма відкривала .cmd файл в залежності від слова?

varkon написав:
darsteba написав:

Зробив додавши  -

int n = rand()%11;
printf ("%s %s\n", spisok_0 [rand()%1], spisok_1 [n]);
system ( spisok_1[n]);

дивний код. Але вам видніше. Можливо я не зрозумів яку ви задачу вирішуєте - та схоже що у вас з цим такіж проблеми :)

Програма виводить рандомне слово з 11 заданих.
Є наприклад 11 слів
Собака,кіт,пес,дім,миша,кнопка......
Виводить мені рандомно,наприклад - кіт  і автоматично запускається .ехе файл з такою самою назвою

7

Re: Як зробити,щоб програма відкривала .cmd файл в залежності від слова?

Якщо пишете на C, гляньте sprintf, якщо C++ - stringstream.

8

Re: Як зробити,щоб програма відкривала .cmd файл в залежності від слова?

darsteba написав:
varkon написав:
darsteba написав:

Зробив додавши  -

int n = rand()%11;
printf ("%s %s\n", spisok_0 [rand()%1], spisok_1 [n]);
system ( spisok_1[n]);

дивний код. Але вам видніше. Можливо я не зрозумів яку ви задачу вирішуєте - та схоже що у вас з цим такіж проблеми :)

Програма виводить рандомне слово з 11 заданих.
Є наприклад 11 слів
Собака,кіт,пес,дім,миша,кнопка......
Виводить мені рандомно,наприклад - кіт  і автоматично запускається .ехе файл з такою самою назвою

У вас є декілька речей, на які я б рекомендував звернути увагу.
Перше - це взагалі зрозуміти, чи ви пишете на С++ чи на С (що не схоже). Якщо ви користуєтесь С++ - то краще використовувати його інструменти для виводу, строк та іншого.
Друге - бажано перевіряти що індекс який ви використовуєте - він валіндний (не перевищує розмір вашого масива). Операція взяття індексу не генерує виключень - але це не значить що у вас не буде проблем.
Третє  - якщо ви користуєтесь С++11 - ви можете використовувати std::tuple щоб зберігати слово та програму яку треба запустити. Якщо вам це не подобається - то можна працювати з одним масивом (краще вектором). Якщо ви користуєтесь C-style string - використовуйте strcat для того щоб поєднати слово та розширення.
четверте - перевірити чи відпрацювала ваша програма теж не завадить.

Робіть що хочете - людина створена вільною
Подякували: zbst1

9

Re: Як зробити,щоб програма відкривала .cmd файл в залежності від слова?

А чи потрібен тут C/C++ взагалі, якщо вся задача зводиться до генерації випадкового числа, вибору слова, що йому відповідає, й виклику відповідного екзешника/батника? При бажанні, це все можна зробити й батником.

py -3 -m pip install git+https://github.com/snoack/python-goto
∩⍴○⌈⍴⍺/∧\∨/⊢○ ⌿⍀⍴⌊

10 Востаннє редагувалося darsteba (27.03.2019 02:28:30)

Re: Як зробити,щоб програма відкривала .cmd файл в залежності від слова?

Я зробив як мені простіше.
Так,в батнику можна було б зробити,але я не знаю ,як в .bat то зробити,в с++ простіше було мені.
Мені головне було,щоб працювало - виводить рандомне слово,відкриває .ехе файл з таким же ім'ям,це я і хотів щоб було.
Сюди я кинув приклад програми,в мене там 11 слів,а не 3,як тут.Я назвав це генератором жанру.Хотів дізнатись інф по питанню,не знайшов тут,спитав у викладача,він пояснив (це не лаб.р,ми джаву вчимо вже)

11

Re: Як зробити,щоб програма відкривала .cmd файл в залежності від слова?

darsteba написав:

Я зробив як мені простіше.

Не схоже, що вам так простіше.

12 Востаннє редагувалося darsteba (27.03.2019 14:19:36)

Re: Як зробити,щоб програма відкривала .cmd файл в залежності від слова?

koala написав:
darsteba написав:

Я зробив як мені простіше.

Не схоже, що вам так простіше.

Чому так думаєте?
В с++ в мене була 1 проблема : як зробити,щоб запускався .ехе файл.ЇЇ вирішено.
А в батнику я і близько не знаю,як зробити,тому писав на с++

13 Востаннє редагувалося P.Y. (28.03.2019 12:12:55)

Re: Як зробити,щоб програма відкривала .cmd файл в залежності від слова?

Якось так:

set /a n= %random% %% 11
goto l%n%

:l0
   echo The word is "cat"
   cat.exe
   :: щоб запустити екзешник, просто пишемо його ім’я
   goto end
:l1
   echo The word is "dog"
   call dog.cmd
   :: Або просто dog.cmd (без call), але тоді відбудеться перехід на вказаний .cmd або .bat файл без повернення.
   :: Якщо після виконання файла плануються якісь додаткові дії в основному батнику, слід використовувати call
   goto end
:: і т.д.

:end
py -3 -m pip install git+https://github.com/snoack/python-goto
∩⍴○⌈⍴⍺/∧\∨/⊢○ ⌿⍀⍴⌊
Подякували: leofun01, PRY2

14

Re: Як зробити,щоб програма відкривала .cmd файл в залежності від слова?

P.Y. написав:

Якось так:

set /a n= %random% %% 11
goto l%n%

:l0
   echo The word is "cat"
   cat.exe
   :: щоб запустити екзешник, просто пишемо його ім’я
   goto end
:l1
   echo The word is "dog"
   call dog.cmd
   :: Або просто dog.cmd (без call), але тоді відбудеться перехід на вказаний .cmd або .bat файл без повернення.
   :: Якщо після виконання файла плануються якісь додаткові дії в основному батнику, слід використовувати call
   goto end
:: і т.д.

:end

не знав,дякую