所以我有两个文本文件,不同的长度,不同的内容。但是每个文件中的每一行都会变得更大/更长。我需要创建第三个文本文件,我将从这两个文件中放入这些行,也以相同的排序方式(从最短行开始...)。如果第一个和第二个文件中的两行都是相同的大小,我应该打印它们。
到目前为止我有这个:
assign(file1, 'file1.txt');
assign(file2, 'file2.txt');
assign(file3, 'file3.txt');
reset(file1);
reset(file2);
rewrite(file3);
readln(file1,s1);
readln(file2,s2);
while MISSING CONDITION do
begin
if length(s1) > length(s2) then
begin
writeln(file3, s1);
readln(file1, s1);
end
else if length(s1) < length(s2) then
begin
writeln(file3, s2);
readln(file2, s2);
end
else
begin
writeln(file3, s1);
writeln(file3, s2);
readln(file1, s1);
readln(file2, s2);
end;
end;
close(file1);
close(file2);
close(file3);
我认为我的排序算法很好,如果不是,请纠正我。但我需要帮助我需要多长时间才能做到这一点。如果这两个文件的长度不一样,我不知道该怎么办..
谢谢..
到达文件末尾时,需要停止读取文件。您可以使用Eof()
函数检测到这一点。您需要为每个输入文件单独测试此条件,因为可能比另一个包含更多行。
检查您的算法。如果输出文件必须从较短的行到较长的行,那么您应该首先写入哪个行,更长或更短? ;)还要考虑一个文件在一个文件之前可能有几个较短的行,这个行比另一个文件中的当前行长。您可能需要在主循环内创建其他循环。
我建议你创建几个测试文件来测试你的算法。