主题:[讨论]【急】关于pascal的文件操作
mxalbert1996
[专家分:780] 发布于 2009-07-11 21:27:00
(1).假如一个pascal程序的目录下只有一个txt文本文件,但我不知道它的文件名,那么我能不能在程序里获取这个文件名/读取这个文件???
(2).在pascal程序中能不能获取一个文件夹里的所有文件名???
(3).如果一个文件里有一行大于字符串最多的255个字节,那么怎么才能把这个文件的内容复制到一个新的文件里呢???pascal里有没有这样的复制文件的函数???
不甚感激!
最后更新于:2009-07-11 21:32:00
回复列表 (共5个回复)
沙发
小田甜 [专家分:3910] 发布于 2009-07-12 02:59:00
1&2:
uses Dos;
procedure dir(ffile:string);
var
DirInfo: SearchRec; { For Windows, use TSearchRec }
begin { For Windows, use faArchive }
FindFirst(ffile, Archive, DirInfo); { Same as DIR *.PAS }
while DosError = 0 do begin
Writeln(DirInfo.Name);
FindNext(DirInfo);
end;
end;
begin
dir('*.txt');
readln;
end.
参考Turbo Pascal的TP\EXAMPLES\DIRDEMO.PAS
3:
可以尝试一个一个字符复制,或者不用text类型的文件,而是file of byte之类的类型。
板凳
wangzhongqi96 [专家分:40] 发布于 2009-07-12 21:05:00
在OPEN目录下输入*.*可显示所有文件
3 楼
mxalbert1996 [专家分:780] 发布于 2009-07-12 21:57:00
回复2楼:我不是说了是在程序里吗!
4 楼
mxalbert1996 [专家分:780] 发布于 2009-07-12 22:11:00
请问1楼程序里的"Archive"是什么东西?
TP帮助里是这样的:
File-attribute constants (WinDos unit and Dos unit)
These constants test, set, and clear file-attribute bits in connection with
the GetFAttr, SetFAttr, FindFirst, and FindNext procedures.
These constants are additive. The faAnyFile constant is the sum of all
attributes.
WinDos Constant │ Value
════════════════╪════════
faReadOnly │ $01
faHidden │ $02
faSysFile │ $04
faVolumeID │ $08
faDirectory │ $10
faArchive │ $20
faAnyFile │ $3F
Dos Constant │ Value
═════════════╪════════
ReadOnly │ $01
Hidden │ $02
SysFile │ $04
VolumeID │ $08
Directory │ $10
Archive │ $20
AnyFile │ $3F
不过看不懂。。。$什么的是什么呀???
5 楼
小田甜 [专家分:3910] 发布于 2009-07-13 11:55:00
$是十六进制的开头,如$A4=10*16+4=164
所以就是说他们是一堆整型常量。
我来回复