그래서 두 개의 텍스트 파일, 길이, 내용이 있습니다. 그러나 각 파일의 각 줄은 모든 줄마다 커지고 길어집니다. 두 파일의이 줄을 동일한 정렬 방법 (가장 짧은 줄로 시작하는 ...)으로 배치 할 세 번째 텍스트 파일을 만들어야합니다. 첫 번째 파일과 두 번째 파일의 두 줄이 같은 크기 인 경우 둘 다 인쇄해야합니다.파스칼, 두 개의 텍스트 파일을 병합하고 줄 단위로 정렬합니다.
지금까지 나는이 있습니다
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);
내가 저를 수정하시기 바랍니다하지 않을 경우 내 정렬 알고리즘은, 좋은 생각합니다. 하지만이 일을 얼마나 오래해야하는지에 대한 조건이 도움이 필요합니다. 나는
글쎄, 한 가지 경우, ine 파일에 다른 파일보다 더 많은 줄이 포함될 가능성을 허용해야합니다. 이와 함께 도달하는 각 파일의 끝을 확인하고'while' 루프가 한 번 올바르게 작동하도록 조정해야합니다. – MartynA
어떤 파스칼을 사용하고 있는지 알려주지 않습니다. FreePascal 또는 Delphi 인 경우 TStringLists를 사용하여 좀 더 쉽게 작업 할 수 있습니다. 그러나 파일이 너무 커서 메모리에 들어 가지 않는 경우에만 수행하십시오. 그렇지 않으면 각 파일에 대해 Eof()를 개별적으로 점검하고 각각의 가능성에 대해 별도의 조건을 설정해야합니다. –