Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/86: Рейтинг темы: голосов - 86, средняя оценка - 4.79
28 / 28 / 1
Регистрация: 10.12.2009
Сообщений: 792

Работа с аргументами командной строки

19.11.2010, 18:53. Показов 17807. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Использую fpc в линуксе . Никак не получается разобраться как же правильно использовать paramcount и paramstr() . буду очень благодарен , если кто-то наконец объяснит(куском программы))

Добавлено через 19 минут
буду еще больше признателен , если до завтра поможете
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.11.2010, 18:53
Ответы с готовыми решениями:

Работа со списком в режиме командной строки
Структура данных Двусвязный список описана в модуле, который использует программа + модуль crt. Не понимаю пункт задания лабораторной:...

Работа с аргументами командной строки
ПОдскажите, как через аргументы командной строки вывести {1 2 3 4 5} в файл по блочно из массива?

Работа с аргументами командной строки
Есть такой кусок старого кода на с++int help=1; char *file=0; char *File=0; char *blank=0; int num1=0; int num2=0; int...

8
 Аватар для Mawrat
13113 / 5894 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
19.11.2010, 18:54
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
program Project1;
 
var
  i : Integer;
begin
  (*Функция ParamCount возвращает количество дополнительных параметров,
  переданных программе через командную строку.*)
  if ParamCount = 0 then begin
    Writeln('Параметр по умолчанию, содержащий путь к исполняемому файлу программы:');
    Writeln(ParamStr(0));
    Writeln('Дополнительные параметры в программу не переданы.');
  end else begin
    Writeln('Параметр по умолчанию, содержащий путь к исполняемому файлу программы:');
    Writeln(ParamStr(0));
    Writeln('Дополнительные параметры, переданные в программу:');
    for i := 1 to ParamCount do begin
      Writeln(ParamStr(i));
    end;
  end;
 
  Readln;
end.
2
28 / 28 / 1
Регистрация: 10.12.2009
Сообщений: 792
19.11.2010, 18:56  [ТС]
а еще вот вопрос , что же у меня неправильно ?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
   if (paramcount <3) then
      begin
         writeln('  Не хватает аргументов!!!');
         writeln('  Н а п р и м е р, используйте ./matr1 5 3 r/k');
         exit;
      end;
 
        rezhim:=paramstr(3);
Val(paramstr(1),kolm,error);
if error =1 then
kolm:=0;
 
Val (paramstr(2),koln,error);
if error =1 then
koln:=0;
0
 Аватар для Mawrat
13113 / 5894 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
19.11.2010, 19:27
Если не проверять типы переменных, то в этом коде ошибок нет. А что неверно работает?
0
28 / 28 / 1
Регистрация: 10.12.2009
Сообщений: 792
19.11.2010, 20:40  [ТС]
Цитата Сообщение от Mawrat Посмотреть сообщение
Если не проверять типы переменных, то в этом коде ошибок нет. А что неверно работает?
ну параметры "проглатывает";как будто их нет) ну типы переменных:error:boolean; например: программа работает с матрицей 5-число строк 5-число столбцоа р/к-тип ввода

Добавлено через 3 минуты
если не сложно ,то как бы вы написали этот кусок для моей программы ??
0
 Аватар для Mawrat
13113 / 5894 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
19.11.2010, 22:59
Цитата Сообщение от Don Rodrigo Посмотреть сообщение
если не сложно ,то как бы вы написали этот кусок для моей программы ??
Я попробовал в консоли Windows погонять такой код:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
program Project1;
 
var
  i : Integer;
  rezhim : String;
  Kolm, Koln, Error : Integer;
begin
  if (paramcount <3) then
  begin
    writeln('  Не хватает аргументов!!!');
    writeln('  Н а п р и м е р, используйте ./matr1 5 3 r/k');
    exit;
  end;
 
  rezhim:=paramstr(3);
  Writeln('rezhim = ', rezhim);
 
  Val(paramstr(1),kolm,error);
  if error =1 then
    kolm:=0;
  Writeln('Kolm = ', Kolm);
 
  Val (paramstr(2),koln,error);
  if error =1 then
    koln:=0;
  Writeln('Koln = ', Koln);
 
  Readln;
end.
Отрабатывает без ошибок и без потерь параметров... Как этот код ведёт себя в Линуксе - проверить не могу.
На всякий случай замечу - если требуется передать в качестве параметра строку с пробелами - такую строку следует заключать в парные кавычки: "Строка с пробелами". - Так в Windows системах, по крайней мере.
0
28 / 28 / 1
Регистрация: 10.12.2009
Сообщений: 792
20.11.2010, 18:27  [ТС]
спс ; разобрался ) хотя все было правильно написано , забыл writeln "старый!" убрать , все дело в нем было ))

---
Mawrat: Хорошо.
0
20.11.2010, 18:33

Не по теме:

если не секрет, какой дистр? и привязывал FPC к Lazarus? А то у меня никак не может запустицо...

0
 Аватар для Mawrat
13113 / 5894 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
20.11.2010, 19:01
Цитата Сообщение от nonamez123 Посмотреть сообщение
если не секрет, какой дистр? и привязывал FPC к Lazarus? А то у меня никак не может запустицо...
На самом деле, наверное, запускается, но сразу выходит из программы. Из-за этого:
Pascal
1
2
3
4
5
6
7
  if (paramcount <3) then
  begin
    writeln('  Не хватает аргументов!!!');
    writeln('  Н а п р и м е р, используйте ./matr1 5 3 r/k');
    //ВНИМАНИЕ! Происходит выход, если передано менее 3 доп. параметров.
    exit;
  end;
Можно запустить программу, например, через Far, передав, ей не менее 3 параметров. Или надо убрать Exit в этом коде.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.11.2010, 19:01
Помогаю со студенческими работами здесь

Работа с аргументами командной строки
Котаны, комрады. подсобите. Даны переменные A, B, C. Изменить их значения, переместив содержимое A в B, B — в C, C — в A, и вывести новые...

Работа с аргументами командной строки, stream!=null
Пишу прогу, которая будет принимать в качестве аргументов командной строки текстовые файлы, брать из них числа и выводить по порядку. ...

Работа с аргументами командной строки, не могу найти ошибку
Господа, пытаюсь написать программу, которая будет принимать 3 аргумента, в виде: ./progName fileName.txt word1 word2 где fileName.txt...

Отладка с аргументами командной строки
Приложение получает аргументы через командною строку, то есть в командной строке вводим: &quot;start имя_файла.exe аргумент1...

Как пользоваться аргументами командной строки?
Стр. 185. Г. Шилдт: Как пользоваться аргументами Командной строки. Для лучшего понимания, как пользоваться аргументами командной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru