私は2つのテキストファイル、長さ、内容が異なります。しかし、各ファイルの各行は、すべての行で大きくなります。 私は、これらの行を両方のファイルから、同じソート方法(最短行...で始まる)に置く3番目のテキストファイルを作成する必要があります。 最初のファイルと2番目のファイルの両方の行が同じサイズの場合は、両方を出力する必要があります。パスカル、2つのテキストファイルをマージし、行の長さで並べ替えます
は、これまでのところ私はこれを持っている:
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);
私は私を修正してくださいいない場合は、私のソートアルゴリズムは、罰金だと思います。しかし、私はこれをするのにどれくらいの時間がかかるかという条件について助けが必要です。これら2つのファイルが同じ長さでない場合、私はあなたがファイルの終わりに達したときに、ファイルからの読み込みを停止する必要が
まあ、一方では、ineファイルには、他のものより多くの行がある可能性を考慮する必要があります。それに伴い、到達している各ファイルの終わりをチェックし、whileループがいったん正しく動作するように調整する必要があります。 – MartynA
どのパスカルを使用しているかはわかりません。 FreePascalまたはDelphiの場合は、TStringListsの使用を検討して、少し簡単にしてください。しかし、ファイルが大きすぎてメモリに収まらない場合にのみ実行してください。それ以外の場合は、各ファイルごとにEof()を個別にチェックし、可能性ごとに条件を設定する必要があります。 –