回 帖 发 新 帖 刷新版面

主题:[讨论]【急】关于pascal的文件操作

(1).假如一个pascal程序的目录下只有一个txt文本文件,但我不知道它的文件名,那么我能不能在程序里获取这个文件名/读取这个文件???
(2).在pascal程序中能不能获取一个文件夹里的所有文件名???
(3).如果一个文件里有一行大于字符串最多的255个字节,那么怎么才能把这个文件的内容复制到一个新的文件里呢???pascal里有没有这样的复制文件的函数???
不甚感激!

回复列表 (共5个回复)

沙发

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之类的类型。

板凳

在OPEN目录下输入*.*可显示所有文件

3 楼

回复2楼:我不是说了是在程序里吗!

4 楼

请问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 楼

$是十六进制的开头,如$A4=10*16+4=164
所以就是说他们是一堆整型常量。

我来回复

您尚未登录,请登录后再回复。点此登录或注册