我正在尝试将一个包含字符的二维数组存储到一个逗号分隔值(CSV)格式的文本文件中。我已经半数能够将数组存储到文本文件中,但我不认为它会允许它被读回,因为在每行结尾处没有新行,数组的末尾将是(董事会[1] [8])举个例子。我一直无法将信息读回到阵列中。
这是我将数组存储到文本文件
的代码Const
BoardDimension = 8;
Type
TBoard = Array[1..BoardDimension, 1..BoardDimension] Of String;
procedure SaveGame(Board : Tboard);
var
FileNm : Textfile;
RankCount : Integer;
FileCount : Integer;
begin
Assignfile(Filenm, 'SavedGame.txt');
Rewrite(Filenm);
for RankCount :=1 to BoardDimension do
begin
for FileCount := 1 to BoardDimension-1 do
begin
write(Filenm,Board[RankCount,FileCount],',');
end;
write(Filenm,Board[RankCount,BoardDimension]);
end;
CloseFile(filenm);
writeln('game saved');
end;
这是我回读文本文件的代码,但是我收到一条错误,指出函数Copy2SymbDel未声明,但我在using语句中包含了strutils
procedure LoadGame(Var Board :TBoard);
var
Filenm : TextFile;
RankCount : Integer;
FileCount : Integer;
Text : String;
begin
AssignFile(Filenm, 'SavedGame.txt');
reset(Filenm);
for RankCount := 1 to BoardDimension do
begin
readln(Filenm,text);
for FileCount := 1 to BoardDimension -1 do
begin
Board[RankCount,FileCount] := Copy2SymbDel(Text, ',');
end;
Board[RankCount,BoardDimension] := Text;
end;
end;
如何在delphi / pascal
中存储和读回二维数组谢谢
答案 0 :(得分:0)
Copy2SymbDel
是一个FreePascal库函数,在Delphi中不可用。它描述如下:
function Copy2SymbDel( var S: string; Symb: Char ):string;
<强>描述强>
Copy2SymbDel确定第一次出现的Symb的位置 在字符串S中并返回到此位置的所有字符。该 Symb字符本身不包含在结果字符串中。所有 返回的字符和Symb字符,都从中删除 字符串S,之后它被右边修剪。如果没有出现Symb S,然后整个S返回,S本身就被清空了。
在Delphi中,函数可以像这样实现:
function Copy2SymbDel(var S: string; Symb: Char): string;
var
I: Integer;
begin
I := Pos(Symb, S);
if I = 0 then
begin
Result := S;
S := '';
end
else
begin
Result := Copy(S, 1, I-1);
S := TrimRight(Copy(S, I+1, MaxInt));
end;
end;