@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. Надеюсь, это поможет вам решить вашу задачу.