Memo i TStrings — odwoływanie do wartości po nazwie indeksu

0

Witam

Mam przykladowo Memo1 w ktorym chce przechowywac dane w takiej formie:

'nazwaindeksu=wartosc'
'nazwa2=inna wartosc'
itd...

Teraz chce odczytac sama wartosc po nazwie indeksu wiec zrobilem tak:

  ShowMessage(memo1.Lines[memo1.Lines.IndexOfName('nazwaindeksu')]);

Zwraca cala linie 'nazwaindeksu=wartosc' zamiast sama wartosc. A jak sama wartosc?

1

Wiem

var
  i := integer;
begin
  memo1.lines.AddPair('liczba', '1234');
  i := memo1.Lines.IndexOfName('liczba');
  ShowMessage(memo1.lines.ValueFromIndex[i]);
end;

0

Czemu nie skorzystałeś z TValueListEditor, albo pliku INI/JSON/itd. ?

1

Komponenty nie służą do przechowywania danych.

Do uses System.Generics.Collections;

type
  TMyDictionary = TDictionary<string, Integer>; //może być string, string
var
  Dictionary: TMyDictionary;
  Value: Integer;
begin
  Dictionary:= TMyDictionary.Create;

  Dictionary.Add('test1', 1);
  Dictionary.Add('test2', 2);
  Dictionary.Add('test3', 3);

  if Dictionary.TryGetValue('test2', Value) then
    ShowMessage(Value.ToString)
  else
    ShowMessage('Nie znaleziono!');
end;
0
skrzat napisał(a):

Czemu nie skorzystałeś z TValueListEditor, albo pliku INI/JSON/itd. ?

No właśnie skorzystał, bo TStringList ma wbudowane wsparcie części funkcjonalnosci INI. ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1