VKAPI PascalABC.NET Wrapper

Доброго времени суток, написал библиотеку для PascalABC.NET, с помощью которой можно использовать vkapi. Вот он: GitHub

Буду рад Вашим предложениям!

1 лайк

Как я и писал на куберфоруме (мне почему то не пришло сообщение что вы мне там ответили, отвечу уже здесь сзнач)) ):

Замените на форматную строку или стринг билдер, сейчас тут выполняется куча операций сложения строк, что очень медленно.

Форматная строка это вот:

begin
  var url := 'http://my-site.com';
  var o := new byte[](1,2,3);
  
  var s1 := $'url is {url} and o is {_ObjectToString(o)}';
  //Предыдущая строчка разворачивается в следующую
  var s2 := string.Format('url is {0} and o is {1}', url, _ObjectToString(o));
  
  s1.Print;
end.

StringBuilder вот:

begin
  var url := 'http://my-site.com';
  var o := new byte[](1,2,3);
  
  //$'url is {url} and o is {_ObjectToString(o)}';
  
  var sb := new StringBuilder;
  sb += 'url is ';
  sb += url;
  sb += ' and o is ';
  sb += _ObjectToString(o);
  
  var s := sb.ToString;
  s.Print;
  
end.

В форматной строке не обязательно вставлять только строки, можно вставлять объекты любых типов. Но, к примеру, массив байтов по умолчанию превращает в System.Byte[] вместо [1,2,3], поэтому я использовать _ObjectToString. Это та же функция что и превращает каждый объект во writeln в строку, поэтому она выводит массив красивее.

1 лайк

Кстати, можете ещё сюда добавить описание в виде 1 поста, а обсуждения пусть уже тут будут.

Итак, я поменял пару строчек в исходнике. Теперь все работает на StringBuilder. Изменения на GitHub

В некоторых местах, как в VKAPIClient.GetAuthUrl - все ещё происходит обычное сложение строк.