Добрый день,
Подскажите пожалуйста по 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.
Здравствуйте, HAXT, Вы писали:
HAX>Добрый день,
HAX>Подскажите пожалуйста по Delphi програмке
HAX>Почему то TArray.BinarySearch не находит строки в которых присутствует символ "
HAX>Такая же проблема замечена с методом TStringList.IndexOf
HAX>Как обойти это ограничение ?
HAX>HAX>var
HAX> i: integer;
HAX> idx: integer;
HAX> outFoundIndex: integer;
HAX> oldValues: TArray<String>;
HAX> newValues: TArray<String>;
HAX> oldValue : String;
HAX> newValue : String;
HAX> restValue : String;
HAX> dummy : String;
HAX> str : String;
HAX>begin
HAX> oldValue := '123,455,""333';
HAX> newValue := '123,455,""333,777';
HAX> oldValues := VarToStr(oldValue).Split([',']);
HAX> newValues := VarToStr(newValue).Split([',']);
HAX> with TStringList.Create do
HAX> begin
HAX> Delimiter := ',';
HAX> for i := Low(oldValues) to High(oldValues) do
HAX> begin
HAX> if not TArray.BinarySearch<string>(newValues, oldValues[i],outFoundIndex) then
HAX> Add(newValues[i]);
HAX> end;
HAX> restValue := DelimitedText;
HAX> end;
HAX>end.
HAX>
А что делает ваш код? Особенно выделенные фрагменты
Здравствуйте, HAXT, Вы писали:
HAX>Добрый день,
HAX>Подскажите пожалуйста по Delphi програмке
HAX>Почему то TArray.BinarySearch не находит строки в которых присутствует символ "
HAX>Такая же проблема замечена с методом TStringList.IndexOf
HAX>Как обойти это ограничение ?
Для обхода ограничения надо отсортировать список
Здравствуйте, kov_serg, Вы писали:
Код удаляет повторяющиеся вхождения строк
_>Для обхода ограничения надо отсортировать список
Это типа сарказм ?
Здравствуйте, HAXT, Вы писали:
HAX>Здравствуйте, kov_serg, Вы писали:
HAX>Код удаляет повторяющиеся вхождения строк
_>>Для обхода ограничения надо отсортировать список
HAX>Это типа сарказм ?
Нет
Note: BinarySearch requires that the array be sorted.
Здравствуйте, HAXT, Вы писали:
HAX>Код удаляет повторяющиеся вхождения строк
Есть для этого полезная структура
TDictionary
Здравствуйте, kov_serg, Вы писали:
HAX>>Это типа сарказм ?
_>Нет
_>_>Note: BinarySearch requires that the array be sorted.
Извините, действительно получилось,
спасибо.