assign((文件类型,如input或output),(文件名及路径,如'c:\'));
如果是input要用reset(input)将输入文件变量初始化
如果是output要用rewrite(output)将输出文件清空并初始化
你的文件错误是没有输入文件路径,例如readmein和readmeout在文件夹abc1中
则应该是
Assign(input,':\abc1\readmein');Reset(input);
Assign(output,':\abc1\readmeout');Rewrite(output);
文件最后不要忘记
Close(input);Close(output);
否则可能造成文件损坏
使用PERFORM FORM1 IN PROGRAM ('ZMM001')等价于PERFORM FORM1(ZMM001)
使用FIELD-SYMBOLS使用其他程序的数据,
FIELD-SYMBOLS <F1> TYPE ANY
DATA XX(50)
XX = '(ZMM002)G_DATA' "程序ZMM001中G_DATA的数据
ASSIGN (XX) TO <F1>
<F1> = 'SDFAS' "这样就可以将主程序中ZMM001的变量G_DATA的值修改为SDFAS了。
我感觉吧,cout表示ina+inb+cin的最高那位,sum表示ina+inb+cin的低四位
assign的含义是定义,{cout,sum}这个的含义是将括号内的数按位并在一起,比如:{1001,1110}表示的是10011110
assign还有个相似的用法如:assign A = {a,b};
若a = 100101,b = 1010
那么A就被定义成了A = 1001011010;
整个语句:assign {cout,sum}=ina+inb+cin;
含义为将四位数ina,inb,cin相加,其值放入sum,进位放入cout。恩,这是一个带进位的加法模块。cin表示的是上一级加法给这一级的进位。
希望对你有所帮助。
要还是不懂可百度hi我
1、strong表示指向并拥有该对象。其修饰的对象引用计数会增加1。该对象只要引用计数不为0则不会被销毁。当然强行将其设为nil可以销毁它。
strong表示对一块内存强引用,当strong类型的指针指向一块内存,这块内存的引用计数就加1,相反则减1。当一块内存的引用计数为0时则销毁这块内存。
2、weak表示指向但不拥有该对象。其修饰的对象引用计数不会增加。无需手动设置,该对象会自行在内存中销毁。
weak表示一个指针对一块内存进行弱引用。弱引用就是不增加所指向内存的引用计数。
3、assign主要用于修饰基本数据类型,如NSInteger和CGFloat,这些数值主要存在于栈上。不涉及内存管理,内存计数不变化,如果修饰对象类型的话会出现野指针或者EXC_BAD_ACCESS错误。
4、weak 一般用来修饰对象,assign一般用来修饰基本数据类型。原因是assign修饰的对象被释放后,指针的地址依然存在,造成野指针,在堆上容易造成崩溃。而栈上的内存系统会自动处理,不会造成野指针。
5、copy与strong类似。不同之处是strong的复制是多个指针指向同一个地址,而copy的复制每次会在内存中拷贝一份对象,指针指向不同地址。copy一般用在修饰有可变对应类型的不可变对象上,如NSString, NSArray, NSDictionary。
6、@property 这个关键词的唯一作用就是声明getter、setter方法接口
7、@synthesize 实现setter、getter方法,找不到实例变量则主动创建一个
8、@dynamic 语义是用户要求自动生成setter getter方法,系统不会自动生成,所以此时调用setter或getter方法会crash,编译不报错(oc的动态绑定机制),而且调用对应的实例变量会报错
9、atomic 默认属性。当前进程进行到一半,其他线程来访问当前线程,可以保证先执行完毕当前线程。只是保证setter/getter完整,不是线程安全。atomic修饰的设值、取值方法使用了自旋锁,确保线程同步。虽然设值、取值方法是原子 *** 作,但不代表是线程安全。
10、nonatomic 非默认属性。两个线程同时访问同一个属性将会导致无法预计的结果。优点是程序运行速度快。
11、unsafe_unretained类型指针指向一块内存时,内存的引用计数也不会增加,这一点与weak一致。但是与weak类型不同的是,当其所指向的内存被销毁时,unsafe_unretained类型的指针并不会被赋值为nil,也就是变成了一个野指针。对野指针指向的内存进行读写,程序就会crash。
浅拷贝即指针拷贝,
深拷贝不但拷贝了对象的指针,还在系统中在分配了一块内存用来存放拷贝对象的内容
assign 只能给wire类型的变量赋值,而且它只能用来实现组合逻辑,它的赋值必须用=号。assign赋值语句不能放在alway里面。
对一个变量赋值,如果在always外面,只能用“assign wire_name = ……”或者parameter的格式。如果在always里面,有两种情况。
(1)如果多个变量被赋值的时候,是需要同时的,那么就用<=
(2) 如果多个变量被赋值的时候,需要有先后次序,那么就用=
通俗来讲,就像是3个人到ATM取钱的时候,(1)是有3台ATM,这三个人同时开始,同时取完;(2)是这3个人排队一个一个取。
但是对rtl仿真来讲,可以认为(1)和(2)的执行是“瞬间”完成的,即它们计算的时间为0
Assign是文本文件用的,文本文件又称为正文文件或行文文件,可以直接阅读,是人机通信的基本数据形式之一。文本文件的内容由ASCII字符集中的字符组成,因此文本文件也称ASCII码文件。文本文件具体是由一系列行组成,每一行可以包括0个或多个字符型成分,并以行结束符结尾。文本文件可用文字编辑程序(如Free Pascal的编辑窗口中或记事本中)直接建立、阅读和修改, 也可以由Pascal程序在运行过程中建立。 一、文本文件的定义
文本文件的类型为text,它是由ASCII字符组成的,是Pascal提供的标准文件之一。标准文件text已由Pascal说明如下:type text=file of char;因此,同标准类型integer、real等一样可以直接用于变量说明之中,无需再由用户说明。 例如:
var f1,f2:text;
这里定义了两个文本文件变量f1和f2。二、文本文件的建立
文本文件的建立有两种方法:一是直接用Free Pascal的Edit建立原始数据文件;二是用程序的方式建立中间数据或结果数据文件。例如将下表中的数据存入名为Adat的文件中。
3 4
29 30 50 60
80 90 70 75
60 50 70 45
*** 作步骤:进入Free Pascal的编辑状态;输入数据;存盘,文件名取Adat。
此时,已将数据存入文本文件Adat中。文本文件也可用记事本等文本编辑器在windows下建立。
如果用程序的方式建立文件, *** 作步骤为:
1、定义文本文件变量;
2、把一外部文件名赋于文本文件变量,使该文本文件与相应外部文件相关联;
命令格式:assign(f,name)
f为定义的文本文件变量,name为实际文件文件名
如:assign(f1,'fileinin') {相对路径}
或:assign(f1,'d:\pas\fileoutout') {绝对路径}
这样在程序中对文本文件变量f1的 *** 作,也就是对外部实际文件'fileinin'或'fileoutout'的 *** 作。上例中文件'fileinin'是存贮在当前目录中,而文件'fileoutout'则是存贮在d:\pas\子目录中。
3、打开文本文件,写准备;
命令格式:rewrite(f)
功能:创建并打开新文件准备写,若已有同名文件则删除再创建。
4、对文件进行写 *** 作;
命令格式:write(f,<项目名>)或:writeln(f,<项目名>)
功能:将项目内容写入文件f中
5、文件 *** 作完毕后,关闭文件。
命令格式:close(f)例111 从键盘输入下列数据,然后用程序写入名为Bdat的文件中。3 4
29 30 50 60
80 90 70 75
60 50 70 45program exp11_1;
var i,j,n,m,x:integer;
f:text;
begin
write('n,m=');
readln(n,m);
assign(f,'bdat');
rewrite(f);
writeln(f,n,' ',m);
for i:=1 to n do
begin
for j:=1 to m do
begin
read(x);
write(f,x,' ');
end;
readln;writeln(f);
end;
close(f);
end
三、读取文本文件
文本文件内容读取 *** 作步骤:
1、定义文本文件变量;
2、用assign(f,name)命令,将内部文件f与实际文件name联系起来;
3、打开文本文件,读准备;
命令格式:reset(f)
功能:打开一个已经存在的磁盘文件,该文件只能读,指向文件元素的指针指向第一个元素。4、对文件进行读 *** 作;
命令格式:read(f,<变量名表>) 或readln(f,<变量名表>)
功能:读文件f中指针指向的数据于变量中。
5、文件 *** 作完毕,用close(f)命令关闭文件。
例112 读出例1生成的文本文件Bdat中的内容,并输出到屏幕。program exp11_2;var i,j,n,m,x:integer;f:text;beginassign(f,'bdat');reset(f);read(f,n,m);writeln(n,' ',m);for i:=1 to n dobeginfor j:=1 to m dobeginread(f,x);write(x,' ');end;writeln;end;close(f);readlnend由于文本文件是以ASCII码的方式存储,故查看文本文件的内容是极为方便,在windows状态可使用记事本等软件进行查看,在Free Pascal中可以象取程序一样取出文件进行查看。
以上就是关于pascal高手进 关于assign用法的问题全部的内容,包括:pascal高手进 关于assign用法的问题、ABAP 调用另一个程序的子程序、verilog中assign{ }是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)