pascal - Pascal 基本读写文件处理
问题描述
我目前遇到这些错误的问题,似乎无法通过它们,我已在我的错误和代码下方附上,谢谢。
错误:
Free Pascal Compiler version 2.6.4 [2014/02/26] for i386 Copyright (c) 1993-2014 by Florian Klaempfl and others Target OS: Darwin for i386 Compiling BasicReadWrite.pas BasicReadWrite.pas(22,30) Error: Incompatible types :得到“personArray”预期“LongInt”BasicReadWrite.pas(25,8)错误:没有可用的默认属性BasicReadWrite.pas(25,8)致命:语法错误,“;” 预期但发现“[” 致命:编译中止错误:/usr/local/bin/ppc386 返回错误退出代码(如果您没有指定要编译的源文件,则正常)
program BasicReadWrite;
type
Person = record
name: String;
age: String; // Should this be an integer? Why/Why not?
end;
personArray = array of Person;
procedure WriteLinesToFile(var myFile: TextFile; const pe: Person);
begin
WriteLn(myFile, pe.age);
WriteLn(myFile, pe.name);
end;
procedure PrintRecords(const ArrayOfPersons: personArray; count: Integer);
var
p: Person;
begin
setLength(p, ArrayOfPersons);
for count:= 0 to high(ArrayOfPersons) do
begin
p[count] := WriteLinesToFile();
end;
end;
procedure ReadLinesFromFile(var myFile: TextFile);
var
p: Person;
number: Integer;
ArrayOfPersons: personArray;
begin
for number:= 0 to 20 do
begin
PrintRecords([number]);
end;
end;
procedure Main();
var
myFile: TextFile;
begin
AssignFile(myFile, 'mytestfile.dat');
ReWrite(myFile); // Use ReWrite to open a file for writing
WriteLinesToFile(myFile);
Close(myFile); // We need to close the file and re-open it, as Pascal
// will not let you Read and write from a file at the same time.
AssignFile(myFile, 'mytestfile.dat');
Reset(myFile); // Open the file for reading.
ReadLinesFromFile(myFile);
Close(myFile);
end;
begin
Main();
end.
解决方案
通常第一个错误是首先要关注的错误。以下错误可能只是第一个错误的后果。我将帮助您从第一个错误开始,但剩下的留给您解决。您可能想与您的导师讨论这些错误。
所以,首先关注
BasicReadWrite.pas(22,30) 错误:不兼容的类型:得到“personArray”预期“LongInt”
22号线在
procedure PrintRecords(const ArrayOfPersons: personArray; count: Integer);
var
p: Person;
begin
setLength(p, ArrayOfPersons); // line 22
那条线是错误的,因为:
p
是Person
类型记录。您不能设置 a 的长度record
。- to 的第二个参数
SetLength()
必须是 aninteger
。ArrayOfPersons
不是整数。
我认为没有任何理由在该过程中设置任何内容的长度。
推荐阅读
- php - 如何在 wordpress 中添加可编辑的超链接?
- android - 未找到 ID 为“kotlin-android”的插件。尝试运行我的代码时给我这个错误
- ajax - 使用 Ajax 应用编辑/删除数据表时的问题
- mysql - 如何构建具有多种类型项目(服务、零件和保险等)的模式
- docker - docker如何清理deployment生成的过期镜像和容器
- python - 切片熊猫数据框列表
- python - 使用 YOLOv3 进行目标检测
- reactjs - 错误:拒绝在“tus-js-client”npm 包中获取不安全的标头“Location”
- tiff - 如何确定 tiff 是否以 bigtiff 格式编写
- gatsby - 在没有 GraphQL 的情况下使用 gatsby-image?