Объединение строк в Memo

В Memo1 есть текст

aaa: 111 одинаковые слова до двоеточие
aaa: 222 одинаковые слова до двоеточие
aaa: 333 одинаковые слова до двоеточие
bbb: 444
ccc: 555 одинаковые слова до двоеточие
ccc: 777 одинаковые слова до двоеточие
kkkkk: 888

Соединить строки по нажатию кнопки вот таким образом. То есть там где в начале одинаковые слова до двоеточие то все в одну строчку и разделитель знак \

То есть на выходе:

aaa: 111 \ 222 \ 333
bbb: 444
ccc: 555 \ 777
kkkkk: 888

Ответы (1 шт):

Автор решения: Татьяна
var
  srcList, resultList: TStringList;
  i: integer;
  a: TArray<string>;
begin
  srclist := TStringList.Create;
  resultList := TStringList.Create;
  try
    srcList.LoadFromFile(Filename);
 
    resultList.NameValueSeparator := ':';
 
    for i := 0 то srcList.Count - 1 do
    begin
      a := srcList[i].Split([':']);
      resultList.values[a[0]] := resultList.values[a[0]] + ' \ ' + a[1];
    end;
    resultlist.SaveToFile(filename2);
  finally
    srcList.free;
    resultList.free;
  end;
end;
→ Ссылка