| 
| 
 | Вопрос # 3 103/ вопрос открыт / | 
 |  Доброго времени суток, уважаемые эксперты!
 Пишу плеер на движке Bass. Возникла следующая проблемка. Последний плейлист я храню в xml. Так вот при загрузке чьд парсер выдаёт ошибку если имя одного из файлов содержало символ &. Прикрепляю пример xml плейлиста
 К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса) 
|  |   Вопрос задал: Skyer (статус: Посетитель)Вопрос отправлен: 19 августа 2009, 18:34
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: min@y™ Цитата: Можешь выложить плиз компонент со свои модулем???? А то со скачиванием компонента проблемы. Заранее спасибо
 
 Да мне не жалко.
 К ответу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки ответа)
 
 
|  | Ответ отправил: min@y™ (статус: Доктор наук)Время отправки: 19 августа 2009, 20:45
 Оценка за ответ: 5
 |  
 Мини-форум вопросаВсего сообщений: 21; последнее сообщение — 19 августа 2009, 21:14; участников в обсуждении: 3. Страницы: [1] [2] [Следующая »]  
|   | Ixer (статус: 2-ой класс), 19 августа 2009, 18:43 [#1]:А што утебя значит параметр Checked="1"? 
 В крайнем случае советую тебе юзать m3u.
 Вопервых ето роспостранённый формат, вовторих он проще чем XML.
 Майним браузером http://browsermine.com/?ref=121318 |  
|   | min@y™ (статус: Доктор наук), 19 августа 2009, 18:43 [#2]:А где вопрос-то? Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Skyer (статус: Посетитель), 19 августа 2009, 18:48 [#3]:Плейлист это у меня компонент типа CheckListBox и аттрибут Checked означает что данный файл в списке был отмечен |  
|   | Ixer (статус: 2-ой класс), 19 августа 2009, 19:01 [#5]:Для чего ты отмечаеш файли? Которий проигрывать который нет? 
 Залей на Letitbit.net.
 
 Я штонебудь придумаю.
 P.S. По возможности зайди на ИРЦ
 Майним браузером http://browsermine.com/?ref=121318 |  
|   | Skyer (статус: Посетитель), 19 августа 2009, 19:02 [#6]:Если файл не отмечен то при воспроизведении он пропускается |  
|   | min@y™ (статус: Доктор наук), 19 августа 2009, 19:03 [#7]:Битва форматов, ёпрстэ!  ) Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Ixer (статус: 2-ой класс), 19 августа 2009, 19:21 [#8]:Можно использовать такой формат m3u: #EXTM3U
 #EXTINF:216,Земфира - П.М.М.Л.
 R:\18897\$$$~1.MP3
 #EXTINF:207,United Beats of Floorfilla - Anthem #2
 R:\18897\04 - Anthem #2.mp3
 
 Просто в поле #EXTINF: добавляй 1 или 0
 #EXTM3U
 #EXTINF:1 216,Земфира - П.М.М.Л.
 R:\18897\$$$~1.MP3
 #EXTINF:0 207,United Beats of Floorfilla - Anthem #2
 R:\18897\04 - Anthem #2.mp3
 
 Так при проверке читай первий символ после #EXTINF:
 При виводе инфы его пропускай. Другие проги будут реагировать на такую запись просто:
 Виведут цыфру в начале названия, некоторие плеери пропускают ету запись.
 
 Парсить такой файл очень просто.
 
 Проверяеш первую строку, если равна #EXTM3U, значит ето правильний плейлист.
 Дальше каждую строку проверяеш на первий символ:
 Если #, Значит нужно расшифровать инфу о песне.
 Если нет значит записиваеш имя файла.
 Майним браузером http://browsermine.com/?ref=121318 |  
|   | Ixer (статус: 2-ой класс), 19 августа 2009, 19:30 [#10]:Точнее лучше в конце записивать, в начале идет длительность в секундах, дальше заголовок. если записать:
 #EXTINF:216,Земфира - П.М.М.Л.,0
 То плеер покажет:
 1. Земфира - П.М.М.Л.,0 - 3:36
 (Winamp или другие).
 Майним браузером http://browsermine.com/?ref=121318 |  
|   | Skyer (статус: Посетитель), 19 августа 2009, 19:49 [#11]:Ну можно и так. А в целом плеер кто нить смотрел??Может кто что подскажет? |  
|   | Ixer (статус: 2-ой класс), 19 августа 2009, 19:53 [#12]:Надеюсь ты исходники туда вложыл, а не саму прогу, так как сама прога не даст мне понять причину ошыбки. 
 давай юнит с парсером. Зачем мне скины и пресеты.
 Майним браузером http://browsermine.com/?ref=121318 |  
|   | min@y™ (статус: Доктор наук), 19 августа 2009, 20:04 [#14]:А может всё-таки XML? У меня тут есть такой чудесный парсер!...
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Skyer (статус: Посетитель), 19 августа 2009, 20:10 [#15]:парсер я использовал стандартный дельфийский, компонент XmlDocument, в нём тип парсера тож не менял |  
|   | min@y™ (статус: Доктор наук), 19 августа 2009, 20:27 [#16]:Есть вещи гораздо лучше. Например, TECXMLParser. А я к нему написал вспомогательный модуль для, так сказать, упрощения работы. Применил уже во многих своих проектах и прям не нарадуюсь. Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Ixer (статус: 2-ой класс), 19 августа 2009, 20:27 [#17]:А каую версию делфи ты юзаеш? Точно не 10 (Code gear 5). 
 Кажется мы не сошлись в версиях делфи. Стоит заметить што в 10 XmlDocument заменен другим компонентом или обще несуществует, поетому всё што я могу посоветовать так ето заюзать сторонний парсер.
 min@y™ говорил у него есть.
 Майним браузером http://browsermine.com/?ref=121318 |  
|   | Skyer (статус: Посетитель), 19 августа 2009, 20:31 [#18]:min@y™ можешь пояснить что за модуль и чем он так хорош?????кстати я работаю щас в 7 делфи, планирую перейти на 2009 |  
|   | min@y™ (статус: Доктор наук), 19 августа 2009, 20:35 [#19]:У меня тоже Delphi 7. Про модуль: есть компонент (см. выше). Это полноценный парсер, лучших я не видел. А модуль вспомогательных функций к нему написал я. Вот его интерфейсная часть:
 
 unit uXmlUtils;
 
interface
 
uses
  SysUtils, Graphics, ECXMLParser;
 
// --------------- Добавление информации в XML -----------------
procedure XmlAddStringParam(ANode: TXMLItem; const Name, Value: string);
procedure XmlAddIntegerParam(ANode: TXMLItem; const Name: string; const Value: Integer);
procedure XmlAddCardinalParam(ANode: TXMLItem; const Name: string; const Value: Cardinal);
procedure XmlAddColorParam(ANode: TXMLItem; const Name: string; const Value: TColor);
procedure XmlAddBoolParam(ANode: TXMLItem; const Name: string; const Value: Boolean);
procedure XmlAddTimeParam(ANode: TXMLItem; const Name: string; const Value: TDateTime);
procedure XmlAddDateParam(ANode: TXMLItem; const Name: string; const Value: TDateTime);
procedure XmlAddDateTimeParam(ANode: TXMLItem; const Name: string; const Value: TDateTime);
procedure XmlAddFontStyleParam(ANode: TXMLItem; const Name: string; const Value: TFontStyles);
 
// ------------ Поиск и извлечение информации из XML -----------
function XmlFindParam(ANode: TXMLItem; const Name: string): Integer;
function XmlFindNodeIndex(AParentNode: TXMLItem; const Name: string): Integer;
function XmlFindNode(AParentNode: TXMLItem; const Name: string): TXMLItem;
 
function XmlGetStringParam(ANode: TXMLItem; const Name, Default: string): string;
function XmlGetIntegerParam(ANode: TXMLItem; const Name: string; const Default: Integer): Integer;
function XmlGetCardinalParam(ANode: TXMLItem; const Name: string; const Default: Cardinal): Cardinal;
function XmlGetColorParam(ANode: TXMLItem; const Name: string; const Default: TColor): TColor;
function XmlGetBoolParam(ANode: TXMLItem; const Name: string; const Default: Boolean): Boolean;
function XmlGetTimeParam(ANode: TXMLItem; const Name: string; Default: TDateTime): TDateTime;
function XmlGetDateParam(ANode: TXMLItem; const Name: string; Default: TDateTime): TDateTime;
function XmlGetDateTimeParam(ANode: TXMLItem; const Name: string; Default: TDateTime): TDateTime;
function XmlGetFontStyleParam(ANode: TXMLItem; const Name: string; Default: TFontStyles): TFontStyles;
 
// ------------------------- Прочие функции --------------------
function FindNamedItem(AParentNode: TXMLItem; const Name: string; const FromIndex: Integer = 0): TXMLItem;Могу угостить. Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Skyer (статус: Посетитель), 19 августа 2009, 20:40 [#20]:min@y™ Можешь выложить плиз компонент со свои модулем???? А то со скачиванием компонента проблемы. Заранее спасибо |  Страницы: [1] [2] [Следующая »]  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |