Информация об изменениях

Сообщение TArray.BinarySearch не находит строки с двойными кавычками " от 17.06.2017 8:56

Изменено 17.06.2017 8:57 HAXT

TArray.BinarySearch не находит строки с двойными кавычками "
Добрый день,
Подскажите пожалуйста по Delphi програмке

Почему то TArray.BinarySearch не находит строки в которых присутствует символ "
Такая же проблема замечена с методом TStringList.IndexOf

Как обойти это ограничение ?

var
i: integer;
idx: integer;
outFoundIndex: integer;
oldValues: TArray<String>;
newValues: TArray<String>;
oldValue : String;
newValue : String;
restValue : String;
dummy : String;
str : String;
begin
oldValue := '123,455,""333';
newValue := '123,455,""333,777';

oldValues := VarToStr(oldValue).Split([',']);
newValues := VarToStr(newValue).Split([',']);
with TStringList.Create do
begin
Delimiter := ',';
for i := Low(oldValues) to High(oldValues) do
begin
if not TArray.BinarySearch<string>(newValues, oldValues[i], outFoundIndex) then
Add(newValues[i]);
end;
restValue := DelimitedText;
end;
end.
TArray.BinarySearch не находит строки с двойными кавычками "
Добрый день,
Подскажите пожалуйста по Delphi програмке

Почему то TArray.BinarySearch не находит строки в которых присутствует символ "
Такая же проблема замечена с методом TStringList.IndexOf

Как обойти это ограничение ?

var
      i: integer;
      idx: integer;
      outFoundIndex: integer;
      oldValues: TArray<String>;
      newValues: TArray<String>;
      oldValue : String;
      newValue : String;
      restValue : String;
      dummy : String;
      str : String;
begin
      oldValue := '123,455,""333';
      newValue := '123,455,""333,777';

      oldValues := VarToStr(oldValue).Split([',']);
      newValues := VarToStr(newValue).Split([',']);
      with TStringList.Create do
      begin
        Delimiter := ',';
        for i := Low(oldValues) to High(oldValues) do
        begin
          if not TArray.BinarySearch<string>(newValues, oldValues[i], outFoundIndex) then
            Add(newValues[i]);
        end;
        restValue := DelimitedText;
      end;
end.