Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для opel431

Ветеран


Contributor


Сообщения: 1803
Благодарности: 714

Профиль | Отправить PM | Цитировать


Встроенного аналога, с параметром разделителя, не нашел (есть обычная Concat), заменяющая +. Так что, или ее или ручками.
pageYK@fb, нужно с интересом подходить к своей задаче. Поковыряюсь параллельно с вами.

Поставил триальный XE4, нашел в справочнике функцию SplitString (функция есть, как минимум с XE) и .... Для наглядность, применил TMemo.
pageYK@fb, дальнейшие "телодвижения" (сортировка, адаптация, оптимизация и все, что вам требуется, делайте сами).

SplitString+
Код: Выделить весь код
......
var
  Form1: TForm1;
  ts: TStringList;
......

procedure TForm1.Button1Click(Sender: TObject);
var
  i, n, value: integer;
begin
  if FileExists(ExtractFilePath(Application.ExeName) + '1.txt') then
  begin
    ts := TStringList.Create;

    try
      ts.LoadFromFile(ExtractFilePath(Application.ExeName) +'1.txt');

      for i := 0 to ts.Count - 1 do
      begin
        value := StrToInt((SplitString(ts.Strings[i], '|')[2]));
        n := StrToInt(SplitString(ts.Strings[i], '|')[0]);

        if value > 394 then
          Memo1.Lines.Add(IntToStr(n) + '|' + (SplitString(ts.Strings[i], '|')[1])
            + '|' + IntToStr(value) + '|' + (SplitString(ts.Strings[i], '|')[3]) +
            '|' + (SplitString(ts.Strings[i], '|')[4]) + '|');

        while value > 394 do
        begin
          value := value - 394;
        end;
        n := StrToInt(SplitString(ts.Strings[i], '|')[0]) + 1;
        Memo1.Lines.Add(IntToStr(n) + '|' + (SplitString(ts.Strings[i], '|')[1]) +
        '|' + IntToStr(value) + '|' + (SplitString(ts.Strings[i], '|')[3]) + '|'
        + (SplitString(ts.Strings[i], '|')[4]) + '|');
      end;

    finally
      Memo1.Lines.SaveToFile(ExtractFilePath(Application.ExeName) +'2.txt');
      FreeAndNil(ts);
    end;
  end;
end;
Результат
1|325230ш5ш3|438|Лондон|ЛОНДОН, ВЕЛИКОБРИТАНИЯ|
2|325230ш5ш3|44|Лондон|ЛОНДОН, ВЕЛИКОБРИТАНИЯ|
3|32523лпукп4|22|Европа|ДУБЛИН, ИРЛАНДИЯ|
4|32епкупщ4пп|21|Венгрия|БУДАПЕШТ, ВЕНГРИЯ|

-------
Хвала тому, кто встав среди камней, уча другого, сам будет умней.


Последний раз редактировалось opel431, 09-08-2016 в 15:30.

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:54, 08-08-2016 | #17