Взять фрагмент из строки delphi
Есть строка:
Товар * Цена | Категория
Задача: выцепить "цену".
Половину сделал:
inc(result, strtoint(copy(ListBox2.items[i], Pos('* ', ListBox2.items[i]) + 1, Length(ListBox2.Items[i]))));
Как в этой части кода ещё убрать " | Категория", чтобы осталась только цена?
По дате
По Рейтингу
что за мания писать все в одну строку? :)
123
index := Pos('* ', ListBox1.items[i]) + 1;
count := Pos(' |', ListBox1.items[i]) - 1 - index; {pos-2-(index+1)}
inc(result, strtoint(copy(ListBox1.items[i], index, count)));
если хочешь в одну строку, то
1
inc(result, ListBox1.items[i].Split(['*','|'])[1].Trim.ToInteger);
это будет работать в Delphi XE3+
А что мешает повторить процедуру, но искать позицию | ?
Можно еще проще сделать
1234
S := 'Товар * Цена | Категория';
P1 := Pos('*', S);
P2 := Pos('|', S);
S1 := Trim(Copy(S, P1+1, P2-P1-1));
Все. В S1 строка "Цена"