Показать сообщение отдельно
  #3  
Старый 24.02.2019, 10:06
Аватар для dr. F.I.N.
dr. F.I.N. dr. F.I.N. вне форума
I Like it!
 
Регистрация: 12.12.2009
Адрес: Россия, г. Новосибирск
Сообщения: 660
Версия Delphi: D6/D7
Репутация: 26643
По умолчанию

Код:
const
  src = '"SA":50.62,"LV":6.79,"BLB":9.16,"ZSD":7.75,"SHT":11.11';
var
  i: Integer;
begin
  with TStringList.Create do
  try
    Delimiter := ',';
    QuoteChar := #0;
    NameValueSeparator := ':';
    DelimitedText := src;
    for i := 0 to Count - 1 do
     ShowMessageFmt('%d. Name: %s; Value: %s', [i+1, Names[i], ValueFromIndex[i]]);
  finally
    Free;
  end;
end;
Ну а дальше сверяете Names[i] с нужными Вам. Например:
Код:
const
...
  ptrn: array[0..1] of string = ('"SA"', '"ZSD"');
...
  for i := Low(ptrn) to High(ptrn) do
      ShowMessageFmt('Pattern: %s; Value: %s', [ptrn[i], Values[ptrn[i]]]);
Цитата:
PS. Для тех, кто считает, что через Delimiter и DelimitedText будет проще - попробуйте.
Это происходит из-за QuoteChar, который по-умолчанию равен ". А можно изначально удалить эти кавычки: DelimitedText := StringReplace(src, '"', '', [rfReplaceAll]);
__________________
Грамотно поставленный вопрос содержит не менее 50% ответа.
Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть.
Ответить с цитированием