![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как пробежаться по строкам DBMemo? [D7, XP]
azamatufa © (2010-07-05 09:52:00)Есть FireBird, Delphi7, TIBDataSet в нем DBMemo поле.
Хочу в это Мемо содержать строки такого формата:
--------------------------------
2004-2005 | менеджер ООО Феникс
2005-2006 | складовщик ЗАО Пупкин
2006-2007 | зам.директора ОАО МММ
--------------------------------
т.е. трудовая деятельность человека, где "|" - разделитель.
Так, я должен писать и читать от туда.
Спасибо!
Anatoly Podgoretsky (2010-07-05 10:47:00) [21]> azamatufa (05.07.2010 10:43:08) [8]
Конечно можно и нужно.
azamatufa (2010-07-05 10:43:00) [22]Спасибо за ответы!
Юрий, просто не охота еще одну таблицу делать для этого... (это про "еще проще")
а с обычным мемо это как?
(а можно ли загнать данные из blob/memo-поля в TStrings напрямую, минуя (не создавая) компонент TDBMemo ? )
Anatoly Podgoretsky (2010-07-05 10:40:00) [23]> azamatufa (05.07.2010 09:52:00) [0]
Писать через АДД, читать путем обращения к строке по индексу.
Юрий Зотов (2010-07-05 10:23:00) [24]Читать - это просто, а вот как туда писать такие строки? DBMemo - он, вообще-то не для этого предназначен, насколько я понимаю.
Будет проще, если использовать обычный Memo. А еще проще - использовать DBGrid и не хотеть странного.
RWolf (2010-07-05 10:14:00) [25]
> TMemo, который является его предком
TCustomMemo, если быть точным.
И. Павел (2010-07-05 10:13:00) [26][0] -> [i]
И. Павел (2010-07-05 10:13:00) [27]А если год всегда состоит из 4 цифр и число пробелов фиксировано, то:
for i := 0 to DBMemo1.Lines.Count - 1 do
begin
god1 := Copy(DBMemo1.Lines[0], 1, 4);
god2 := Copy(DBMemo1.Lines[0], 6, 9);
dolznost := Copy(DBMemo1.Lines[0], 13, Length(DBMemo1) - 12);
end;
RWolf (2010-07-05 10:11:00) [28]
> Как пробежаться по строкам DBMemo?
Наверно, так же, как и по строкам обычного TMemo, который является его предком.
И. Павел (2010-07-05 10:08:00) [29]for i := 0 to DBMemo1.Lines.Count - 1 do
Caption := Caption + Copy(DBMemo1.Lines[i], Pos('|', DBMemo1.Lines[i]) + 1, Length(DBMemo1.Lines[i]) - Pos('|', DBMemo1.Lines[i]));
Для более сложного разбора лучше использовать регулярные выражения.