问题:我最近购买了1989年的IBM PS2,并且我正尝试通过软盘将大型文件从我的较新的基于UNIX的计算机移动到该IBM。我有一个bash脚本,可将我的文件分成大约2MB的块,现在我试图编写一个pascal程序来在这些文件传输后重建它们。

我在这台计算机上找不到正确的读/写文件方法。我已经尝试了各种pascal教程站点,但是它们都是针对较新版本的(我跟随File Handling In Pascal的站点)。我能够创建一个空文件(如下所述),但是无法写入它。有人知道这种计算机的正确Pascal读写方法吗?

我知道这是一个晦涩的问题,因此,在此先感谢您为我提供的任何帮助!

详细信息:

当前正确创建文件的测试代码是:

program testingFiles;
uses Crt, Win;

const FILE_NAME = 'testFile.txt';
var outFile : File;

begin
writeln('creating file ...');
Assign(outFile, FILE_NAME);
rewrite(outFile);

end.

这是一些无效的测试代码,找不到该方法的append()close():
program testingFiles;
uses Crt, Win;

const FILE_NAME = 'testFile.txt';
var outFile : File;

begin
writeln('creating file ...');
Assign(outFile, FILE_NAME);

append(outFile);
writeln('this should be in the file');
close(outFile);

end.

这是另一种也不起作用的方法,writeln()方法仅打印到终端。但这确实可以编译。
program testingFiles;
uses Crt, Win;

const FILE_NAME = 'testFile.txt';
var outFile : File;

begin
writeln('creating file ...');
Assign(outFile, FILE_NAME);

rewrite(outFile);
writeln('this should be in the file');
close(outFile);

end.

系统:如前所述,这是1989年的IBM PS2
  • 它已安装Windows 3.0,并且还可以运行DOS和MS-DOS终端。
  • 它具有Microsoft SMARTDrive磁盘缓存版本3.06
  • 它已安装了Turbo Pascal 5.5,并且我正在使用turbo作为命令行pascal编辑器。 (自述文件的最新更新于1989年)
  • 它已安装了Turbo调试器1.5。

  • 同样,我知道这是一个晦涩的问题,因此,在此先感谢您为我提供的任何帮助!

    最佳答案

    我的Pascal内存非常生锈...但是正如其他人指出的那样,这是您应该考虑的事项:

    program testingFiles;
    uses Crt, System;
    //No need of importin Win Win is for Windows enviorment, however I'm not sure if you need to use System, Sysutils or was there a Dos class???
    
    const FILE_NAME = 'testFile.txt';
    var outFile,inFile : File;
    
    begin
    writeln('creating file ...');
    Assign(outFile, FILE_NAME);
    rewrite(outFile);
    
    //Now Open the first chunk of the file you want to concatenate
    
    AssignFile(inFile, "fisrt_chunk.dat");
    reset(inFile);
    
    while not eof(inFile) do
     begin
       readln(inFile, s);
       writeln(outFile,s);
     end;
    close(inFile);
    
    end.
    

    我再也没有安装Turbo/Borland Pascal了,所以我自己也不能编译它,不保证它会起作用,这更像是一个主意:
  • 要记住的关键是,readln和writeln总是在字符串/行的末尾添加一个返回值,另一方面,读写会把光标留在任何地方,而无需跳到新行。
  • 关于pascal - 在Turbo Pascal 5.5中在旧IBM PS/2上读/写文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35076417/

    10-14 14:49