我正在使用GnuCOBOL(使用Windows),我需要用它编写一个编译器。
我要问的是 - 给定目录路径,我可以修改其中的文件 使用COBOL?重要的是要说你不能知道文件名。您只知道包含它们的目录的路径。
答案 0 :(得分:1)
以下是POSIX系统的一些代码
identification division.
program-id. SAMPLE.
environment division.
configuration section.
repository.
function all intrinsic.
data data division.
working-storage section.
01 dir usage pointer.
01 dent usage pointer.
01 dirent based.
05 filler pic x(19). *> HERE BE DRAGONS
05 entname pic x(256).
05 filler pic x(237).
01 sayname pic x(256).
*> ************************************************
code procedure division.
call "opendir" using
by content z"."
returning dir
on exception
display "error: no opendir found" upon syserr end-display
bail stop run returning 1
end-call
if dir not equal null then
call "readdir" using
by value dir
returning dent
end-call
perform until dent equal null
*> set address of the based dirent and pull out the name
set address of dirent to dent
initialize sayname
string entname delimited by x"00" into sayname end-string
display trim(sayname TRAILING) end-display
call "readdir" using
by value dir
returning dent
end-call
end-perform
call "closedir" using by value dir end-call
else
call "perror" using by content z"" returning omitted end-call
bail stop run returning 1
end-if
done goback.
end program SAMPLE.
最初发布到SourceForge,根据GPL许可。由于对dirent
的大小调整的假设,你想要在不加思索的情况下释放代码之前将其编写一段时间。