Delphi StringBuilder

Используемый метод - это стандартная служба Feathers create метод :

return authService.create({
  "strategy": "local",
  "email": "torodom.canada@gmail.com",
  "password": "password"
});

Подробнее об услуге Feathers можно прочитать в руководстве по основам и в служба аутентификации в документации сервера аутентификации API .

20
задан user81864 26 March 2009 в 16:05
поделиться

4 ответа

Да, Delphi предлагает TStringBuilder (начиная с версии 2009):

procedure TestStringBuilder;
var
  I: Integer;
  StringBuilder: TStringBuilder;
begin
  StringBuilder := TStringBuilder.Create;
  try
    for I := 1 to 10 do
    begin
      StringBuilder.Append('a string ');
      StringBuilder.Append(66); //add an integer
      StringBuilder.Append(sLineBreak); //add new line
    end;

    OutputWriteLine('Final string builder length: ' +
                    IntToStr(StringBuilder.Length));
  finally
    StringBuilder.Free;
  end;
end;

И да, Вы правы. s := s + 'text'; не действительно медленнее, чем использование TStringBuilder.

41
ответ дан 29 November 2019 в 22:50
поделиться

В более старом Delphis можно использовать HVStringBuilder Hallvard Vassbotn. Мне не удалось найти источники на его блоге, но можно выбрать их в исходном дереве OmniThreadLibrary, например (Вам будут нужны файлы HVStringBuilder.pas и HVStringData.pas).

7
ответ дан 29 November 2019 в 22:50
поделиться

Delphi не "ТРЕБУЕТ" строкового разработчика класс, но каждому предоставляют для Delphi 2009 если Вы, так требуйте использовать его. Ваш пример s: = s + 'некоторая строка'; типичный метод конкатенации строк и использовался в Паскале/Delphi в течение прошлых нескольких десятилетий без любых значительных проблем.

5
ответ дан 29 November 2019 в 22:50
поделиться

Я перечислил некоторые хорошие ресурсы на строках Delphi ниже.

Как кто-то еще сказал, простая конкатенация с помощью '+', оператор со строковыми типами общего назначения о с такой скоростью, как использующий TStringbuilder (по крайней мере, для операций формы:: = s + [...]'). Не знайте, верно ли это или нет, но производительность, по крайней мере, достаточно близка, что [1], ниже, утверждает, что "Строковая конкатенация в Delphi так быстра, что новый оптимизированный класс StringBuilder в Delphi 2009 не может разбить его". Это вызвано тем, что строки изменяются на месте, и Delphi transparenty выделяет больше памяти для основной строки в случае необходимости, вместо того, чтобы делать копию на операции записи всех данных к новому местоположению в памяти.

[1] http://blog.marcocantu.com/blog/delphi_super_duper_strings.html

[2] http://conferences.codegear.com/he/article/32120

[3] http://www.codexterity.com/delphistrings.htm

[4] http://www.monien.net/blog/index.php/2008/10/delphi-2009-tstringbuilder/

3
ответ дан 29 November 2019 в 22:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: