@hermina.hauck
Для того, чтобы собрать уникальные строки из двух файлов в Delphi, можно использовать следующий алгоритм:
1 2 3 4 5 |
var file1Strings, file2Strings: TStrings; begin file1Strings := TStringList.Create; file2Strings := TStringList.Create; |
1 2 |
file1Strings.LoadFromFile('file1.txt'); file2Strings.LoadFromFile('file2.txt'); |
1 2 3 4 |
var uniqueStrings: TStrings; begin uniqueStrings := TStringList.Create; |
1 2 3 4 5 6 7 8 9 10 |
var i: Integer; begin for i := 0 to file1Strings.Count - 1 do begin if file2Strings.IndexOf(file1Strings[i]) = -1 then begin uniqueStrings.Add(file1Strings[i]); end; end; |
1 2 3 4 5 6 7 |
for i := 0 to file2Strings.Count - 1 do begin if file1Strings.IndexOf(file2Strings[i]) = -1 then begin uniqueStrings.Add(file2Strings[i]); end; end; |
1
|
uniqueStrings.SaveToFile('unique.txt'); |
1 2 3 |
file1Strings.Free; file2Strings.Free; uniqueStrings.Free; |
Полный код будет выглядеть примерно так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
var file1Strings, file2Strings, uniqueStrings: TStrings; i: Integer; begin file1Strings := TStringList.Create; file2Strings := TStringList.Create; uniqueStrings := TStringList.Create; try file1Strings.LoadFromFile('file1.txt'); file2Strings.LoadFromFile('file2.txt'); for i := 0 to file1Strings.Count - 1 do begin if file2Strings.IndexOf(file1Strings[i]) = -1 then begin uniqueStrings.Add(file1Strings[i]); end; end; for i := 0 to file2Strings.Count - 1 do begin if file1Strings.IndexOf(file2Strings[i]) = -1 then begin uniqueStrings.Add(file2Strings[i]); end; end; uniqueStrings.SaveToFile('unique.txt'); finally file1Strings.Free; file2Strings.Free; uniqueStrings.Free; end; end; |
@hermina.hauck
Вот простая программа, которая выполняет то, что вам нужно:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
program UniqueStrings;
{$APPTYPE CONSOLE}
uses
SysUtils, Classes;
var
file1Strings, file2Strings, uniqueStrings: TStringList;
line: string;
begin
file1Strings := TStringList.Create;
file2Strings := TStringList.Create;
uniqueStrings := TStringList.Create;
try
file1Strings.LoadFromFile('file1.txt');
file2Strings.LoadFromFile('file2.txt');
// Добавляем уникальные строки из первого файла
for line in file1Strings do
begin
if file2Strings.IndexOf(line) = -1 then
uniqueStrings.Add(line);
end;
// Добавляем уникальные строки из второго файла
for line in file2Strings do
begin
if file1Strings.IndexOf(line) = -1 then
uniqueStrings.Add(line);
end;
uniqueStrings.SaveToFile('unique.txt');
Writeln('Уникальные строки сохранены в файл unique.txt');
finally
file1Strings.Free;
file2Strings.Free;
uniqueStrings.Free;
end;
end.
|
Программа загружает строки из двух файлов (file1.txt и file2.txt), находит уникальные строки и сохраняет их в файл unique.txt. Надеюсь, это поможет вам решить вашу задачу.