Ada语言中命令行使用
Ada语言中命令行使用
要制作命令行程序,使用系统包ada.command_line 。以下例程实现一个命令行程序。
命令如下:remove -iInputFileName -nCutOffNumber -oOutFileName
该程序读取输入文件,将输入文件内容的前CutOffNumber个字节的内容去除,保存在输出文件中。
该程序就是在操作系统简单例程中提到的一个小工具。
package Ada.command_line函数说明:
function Argument_Count return Natural; – 该函数返回输入的参数个数
function Argument (Number : Positive) return String; – 该函数返回第N个参数字符串,从1开始
function Command_Name return String; – 该函数返回第1个参数,与C中的第0个参数对应
procedure Set_Exit_Status (Code : Exit_Status); – 该过程设置程序结束状态
with ada.Text_IO;
with ada.Command_Line; use ada.Command_Line;
with ada.Streams.Stream_IO;
procedure remove istype ASTR is access all string;function load(file:in string) return ASTR isuse ada.Streams.Stream_IO;pFile:File_Type;fsize:count;St :Stream_Access;src :ASTR:=Null;beginopen(pFile,in_file,file);fsize:=size(pFile);St:=stream(pFile);src:=new string(1..Integer(fsize));string'read(St,Src.all);close(pFile);return src;exception when others=>return Null;end load;beginif Argument_Count/=3 thenada.Text_IO.Put_Line(item=>"Command: remove -iInputFileName -nCutNum -oOutputFileName");set_exit_status(Failure);elsif Argument_Count=3 thendeclareuse ada.Streams.Stream_IO;arg1:string:=Argument(1);arg2:string:=Argument(2);arg3:string:=Argument(3);cmd1:string:=(if arg1(1..2)="-i" then arg1 elsif arg2(1..2)="-i" then arg2 elsif arg3(1..2)="-i" then arg3 else "NULL");cmd2:string:=(if arg1(1..2)="-n" then arg1 elsif arg2(1..2)="-n" then arg2 elsif arg3(1..2)="-n" then arg3 else "NULL" );cmd3:string:=(if arg1(1..2)="-o" then arg1 elsif arg2(1..2)="-o" then arg2 elsif arg3(1..2)="-o" then arg3 else "NULL");InFile:ASTR:=Null;outFile:ada.Streams.Stream_IO.File_Type;outStream:ada.Streams.Stream_IO.Stream_Access;beginif cmd1(1..2)="-i" thenInFile:=load(cmd1(3..cmd1'last));if inFIle/=null thenif cmd3(1..2)="-o" thencreate(outFile,Out_File,cmd3(3..cmd3'last));elsecreate(outFile,Out_File,"Out_"&cmd1(3..cmd1'last));end if;outStream:=Stream(outFile);if cmd2(1..2)="-n" thenstring'write(outStream,inFile(1+Integer'value(cmd2(3..cmd2'last))..inFile'last));elseada.Text_IO.Put_Line("Missing Cut-Number Argument,set zero");string'write(outStream,inFile(1..inFile'last));end if;close(outFile);set_exit_status(Success);elseada.Text_IO.Put_Line(item=>"The InpputFile is not Exist");set_exit_status(Failure);end if;elseada.Text_IO.Put_Line("Missing InputFile Argument.");ada.Text_IO.Put_Line(item=>"Command: remove -iInputFileName -nCutNum -oOutputFileName");set_exit_status(Failure);end if;end;end if;
end remove;
Ada语言中命令行使用相关推荐
- Go语言中命令行参数的实现
为什么80%的码农都做不了架构师?>>> 在写命令行程序时,对命令参数进行解析是常见的需求.各种语言一般都会提供解析命令行参数的方法或库,以方便程序员使用.如果命令行参数纯粹自 ...
- 在c语言中命令行参数是什么,C语言命令行参数
这是可能在命令行中的一些值传递给C程序执行.特别是从参数传入,而不是外界硬编码写入这些值到代码控制程序中,这些值被称为命令行参数,很多时候,它们对程序很重要. 命令行参数使用main()函数的参数,其 ...
- c语言中命令行参数argc,argv[]详解
argc 是 argument count的缩写,表示传入main函数的参数个数: argv 是 argument vector的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0 ...
- python 命令行参数-python中命令行参数
python中有一个模块sys,sys.argv这个属性提供了对命令行参数的访问.命令行参数是调用某个程序时除程序名外的其他参数. sys.argv是命令行参数的列表 len(sys.argv)是命令 ...
- c语言用命令行编译运行程序_使用C程序执行系统命令
c语言用命令行编译运行程序 Sometimes, we may need to execute Linux/Windows DOS commands through our C program. (N ...
- c语言学习进阶-C语言带命令行参数的文件数据批量计算
C语言带命令行参数的文件数据批量计算 (1)假设输入文件中的数据为多行整数,把数据文件命名为"InputData.txt",也可以命名为任意的文件名,尝试设计一个c 语言程序, 主 ...
- c语音学习进阶-C语言带命令行参数的程序设计
C语言带命令行参数的程序设计 (1)深入理解并学习带命令行参数的程序设计方法,使用c 语言完成带命令行参数的科学计算程序,能从给定的任意文件名的文件当中输入数据,并能向给定的任意文件名的输出文件当中输 ...
- c++笔记(1):C++中命令行参数argc,argc[ ]究竟是什么
C++中命令行参数argc,argc[ ]究竟是什么 1.argc为整数 2.argv为指针的指针(可理解为:char **argv or: char *argv[] or: char argv[][ ...
- 文本编辑器中命令行参数的应用
文章目录 1 文本编辑器中命令行参数的应用 1 文本编辑器中命令行参数的应用 我们要知道对于每一个应用程序我们都能够接收命令行参数,那么对于GUI系统中命令行参数如何传递到应用程序呢? 主要有如下两种 ...
最新文章
- 儿童编程软件python-MRT7-Python少儿编程下载
- python电脑下载方法-python 获取机器snpython下载文件的几种常用方法
- ubuntu 将某个目录下的文件复制到_命令行 将多个特定文件从一个文件夹复制到另一个文件夹...
- Item category dropdown list的determine - filtering 逻辑
- SQL 个人所学目录
- java基于springboot校园餐厅订餐管理系统
- 小学奥林匹克计算机怎么学,小学奥林匹克数学教程1--6年级全套
- 简单版本CRM 客户管理系统设计
- Python添加flac文件标签并实现wav转flac
- 制作vagrant镜像
- 用pytorch实现神经网络
- poj 1837 Balance
- 5G SA and NSA
- 瑞芯微 | 摄像头ov13850移植笔记
- “经历了人生百态世间的冷暖,这笑容温暖纯真”
- 第四周 并联电阻的值
- 微商怎么从小白开始学发圈
- Python:摘苹果
- 多图解读三大股票指数 沪深300、中证500、中证1000有何细节差异
- Bootloader Project
热门文章
- ibatis批量插入数据-iterate标签详解及应用
- C语言从0到1算法小白训练营——day1
- 一目了然 AI和PS的区别
- Arduino练习三——PWM 调控灯光亮度实验
- 2012百度校园招聘笔试试题
- 艾钧教授:5G、数字化、互联网、云计算、物联网、AI、智慧城市等课程专家
- Eclipse JDT--ASTParser介绍
- android版本5.1.1更新包,华为EMUI3.1(安卓5.0/5.1)升级包
- 本地实现类似bilibili漫画,浏览器看漫画,python自动生成
- 西部大开发,青海得到了什么?