Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.08.2011, 13:45   #11
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

ты скорей всего это видел, если помудрить чуток то получишь желаемое
ZuBy вне форума Ответить с цитированием
Старый 04.08.2011, 10:21   #12
DenNik2006
Пользователь
 
Аватар для DenNik2006
 
Регистрация: 27.07.2011
Сообщений: 71
По умолчанию

задаешь входную строку. в которой есть части типа %Artist% и т.д. затем либо функцией POS() ищешь и заменяешь, либо StringReplace(). Дело вкуса.

именно так и реализовано в том исходнике от ZuBy
Техника несовершенна: компьютеру, чтобы прийти в себя, нужно три пальца, человеку - всего два!

Последний раз редактировалось DenNik2006; 04.08.2011 в 10:31.
DenNik2006 вне форума Ответить с цитированием
Старый 05.08.2011, 10:58   #13
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

вот реализовал IF и REPLACE
единственно пока не сделал рекурсию в IF
например такой запрос не сработает, бред покажет
Цитата:
$if($if(A||B||C)$||$if(A||B||C)$||C )$
ZuBy вне форума Ответить с цитированием
Старый 05.08.2011, 17:33   #14
NITROGEN_92
Пользователь
 
Регистрация: 25.08.2009
Сообщений: 12
По умолчанию

Zuby, а что если в тегах присутствует "||", тогда никакая рекурсия не спасет. Поэтому, DenNik2006, Pos() - не вариант. у АИМП'а это дело выглядит так: %IF(A, B, C). и срабатывает даже если в тегах присутсвуют запятые. тут сложновато будет...
NITROGEN_92 вне форума Ответить с цитированием
Старый 05.08.2011, 20:07   #15
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну не знаю... Мне кажется стоит обратить внимание на использование регулярных выражений...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.08.2011, 21:17   #16
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

Цитата:
Сообщение от ZuBy Посмотреть сообщение
Ссылка http:///Source/FormatStringEx.rar не рабочая, напомнил.
Alter вне форума Ответить с цитированием
Старый 05.08.2011, 23:08   #17
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

NITROGEN_92, если не считая %IF, просто последовательно разбераешь элементы строки и анализируешь, потом необходимо как-нибудь все это склеить и все)
Для этого можно использовать массив вариантых записей, где в записи будет поле строки или идентификатора трека. А потом это все склеивается в строку и все. Насчет %IF, этой возможностью я предпологаю пользуются 0,01% пользователей и поэтому уделяйте время более существенным вещам и с развитием ПО добавите необходимый дополнительный функционал.
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.

Последний раз редактировалось chertovich; 05.08.2011 в 23:10.
chertovich вне форума Ответить с цитированием
Старый 06.08.2011, 11:43   #18
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

Цитата:
Сообщение от NITROGEN_92 Посмотреть сообщение
Zuby, а что если в тегах присутствует "||", тогда никакая рекурсия не спасет. Поэтому, DenNik2006, Pos() - не вариант. у АИМП'а это дело выглядит так: %IF(A, B, C). и срабатывает даже если в тегах присутсвуют запятые. тут сложновато будет...
не сравнивай с аимп, делай по своему!
если в коде посмотреть, я сделал все через одно форматирование строки.
т.е. сначала всю строку отформатировал, а уже потом сделал удаление $If и $Replace...

если пойти следующим путем:
сделать по фрагментам, не форматируя $if, $replace то можно добиться желаемого результат, только код будет в 2, 3 раза больше...

тогда будет и рекурсия работать и разделяющие знаки параметров можно сделать хоть пробелы

upd:
еще, если менять параметры (#art#, #tit#, ...) на другие, то не используй "%" иначе функция Format будет возмущаться

Последний раз редактировалось ZuBy; 06.08.2011 в 11:49.
ZuBy вне форума Ответить с цитированием
Старый 06.08.2011, 11:43   #19
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

Цитата:
Сообщение от Alter Посмотреть сообщение
Ссылка http:///Source/FormatStringEx.rar не рабочая, напомнил.
исправил баг)
ZuBy вне форума Ответить с цитированием
Старый 06.08.2011, 19:33   #20
NITROGEN_92
Пользователь
 
Регистрация: 25.08.2009
Сообщений: 12
По умолчанию

ZuBy, спасибо большое. уже ближе к тому, что я хотел.
Цитата:
этой возможностью я предпологаю пользуются 0,01% пользователей
из-за того, что до дефолту обычно задано именно это форматирование, имхо. но тем не менее, эта возможность есть во многих программах.
NITROGEN_92 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Форматирование текста Tomoyo HTML и CSS 2 18.07.2013 19:33
Форматирование текста Arsenx777 Работа с сетью в Delphi 1 31.05.2011 14:55
Форматирование текста Sergey2 Общие вопросы Delphi 10 23.09.2009 08:04
Форматирование текста. Altera Общие вопросы Delphi 3 11.05.2009 23:29
Форматирование текста rusif Помощь студентам 1 17.12.2007 22:28