pascal 判断换行

来源:百度知道 编辑:UC知道 时间:2024/09/23 03:20:29
新手问题
如下我的程序(d盘下又我新建的文件a)
program ss(input,output,a);
var
a:file of char;
i:integer;
begin
assign(a,'d:\a');
reset(a);
while not eof do
begin
if eoln then i:=i+1;
end;
writeln(i);
end.
为什么没有结果,一点编译就死了,不动了,我用的是TUBO pascal 到底怎么回事啊,还有大家帮忙写下判断一片文章的行数,我上面写的可以吗? 在pascal中,数组有没有大小限制,就是说一个数组最多包含多少元素,为什么我用turbo pascal 定义数组
type
mar=array[1..600] of char;
var
ss=mar;
显示结构体太大,是什么意思啊 难道数组个数不能取到500以上吗?
新手问题,大家多多关照!
首先谢谢大家的答案。
问题是下面几个我都式过了,都不行,要不是无反映就是没有返回的I直,我也搞不懂,我的文件是个.dssp的文件,我把后缀去了,命名为a,当然没有后缀了,后来我换成.txt一样是前面的没反映,不知道那里错了,这个问题搞了我好几天了,.dssp用delphi是可以打开的,我是想用程序提取里面的信息,因为每个文件的大小都是不一样的,我定义的数组没办法定义是多少行,比如说我定义了100行数组可以读取数据,但是文件不止100行,我改成小于文件行数的都可以读取数据,但是一旦超过文件行数,就什么也不返回了。我不知道是什么问题; 或者大家能不能解决这个问题,就是说数组可以让他根据文件的行数,自动匹配呢 ?不知道大家了解我的意思没。。。郁闷。。。

你不能这样子的。
*********************************************************
program ss(input,output,a);
var
a:file of char;
i:integer;
begin
assign(a,'d:\a');
reset(a);
while not eof do
begin
if eoln then i:=i+1;
end;
writeln(i);
end.

program ss(input,output,a);
var
a:text;
i:integer;
x:char;
begin
assign(a,'d:\a');
reset(a);
while not eof do
begin
read(a,x);
if ord(x)=13 then i:=i+1;
end;
writeln(i);
close(a);
end.
*********************************************************
你最主要的问题是没有close(a),既然打开了,当然要关闭了。还有,回车的ASCII码是13,就是说ord以后的值是13,所以你可以读入一个字符,判断ASCII码,数组大小你不用担心,至少现在不用担心,可以到几十万。read(a,x)是指从a这个文件里读入一个字符x。最后输出是在显示屏上的,因为你没有输出文件。
有问题找我,
我随时奉陪。

(1)
program ss(input,output);
var