DWScript写/读一个简单的文本文件

时间:2014-04-22 16:17:51

标签: dwscript

我想使用dwscript编写/读取一个简单的文本文件。 我的代码如下所示...但我无法让它运行,请有人可以帮忙...: (我在DWS安装的Demos文件夹中使用Simple.exe)

// uses Classes;
{$INCLUDE_ONCE 'c:/.../System.Classes.pas'}

var
    s: TFileStream;
    o: string; // out
    i: integer;
    f: word; // flag

f := fmOpenReadWrite;
if not FileExists('C:\Temp\Junkfile.txt') then
    f := f or fmCreate;

s := TFileStream.Create('C:\Temp\Junkfile.txt', f);
try
    s.Position := s.Size;  // will be 0 if file created, end of text if not
    for i := 1 to 10 do begin
        o := Format('This is test line %d'#13#10, [i]);
        s.Write(o[1], Length(o) * SizeOf(Char));
    end;
finally
    s.Free;
end;

1 个答案:

答案 0 :(得分:0)

默认情况下,脚本引擎会将所有内容保留为沙盒,并且不会提供任何可以在沙箱外部进行访问的内容。因此,如果您想要访问任意文件到脚本,您需要公开函数&实现它的类(通过TdwsUnit f.i。)。

它也不会编译Delphi类单元,DWScript不是Delphi编译器的替代品,而是提供脚本支持,即。允许最终用户以完全控制他们可以执行的操作的方式运行代码,并且不会崩溃或损坏主机应用程序(最后一点是与其他值得注意的Pascal脚本引擎的关键区别)

您可以使用dwsFileFunctions来获得基本的文件I / O支持,在这种情况下,代码的文件创建部分的等价物将类似于

var f := FileCreate('C:\Temp\Junkfile.txt');

for var i := 1 to 10 do
   FileWrite(f, Format('This is test line %d'#13#10, [i]));

FileClose(f);