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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2010, 21:00   #1
Dj_SheLL
Форумчанин
 
Аватар для Dj_SheLL
 
Регистрация: 14.10.2009
Сообщений: 128
Восклицание Редактирование XML-playlist-а для Flash плеера

Задача такова:прочесть атрибуты (выделенно в коде) в Edit по кнопке,там их поменять-редактировать и сохранить опять же по кнопке.
Возникли проблемы в связи незнанием работы с XML файлами.
Прочитал кучу статей и вот мои потуги...
Итак по плейлисту:
Есть вот такой XML плейлист
Код:
<?xml version="1.0" encoding="UTF-8"?>
<mp3 autoplay="no">
        <song location="mp3/adg3.com_crypticPsyche.mp" cover="3mp3/5.jpg" title="adg3.com - Cryptic Psyche"/>
        <song location="mp3/adg3.com_electroFreak.mp3" cover="mp3/6.jpg" title="adg3.com - Electro Freak"/>
        <song location="mp3/adg3.com_crypticPsyche.mp3" cover="mp3/5.jpg" title="adg3.com - Cryptic Psyche"/>
        <song location="mp3/adg3.com_electroFreak.mp3" cover="mp3/6.jpg" title="adg3.com - Electro Freak"/>
</mp3>
Нужно прочесть эти значения в TEdit,что-то подобное я пытался сделать:
Код:
XMLDocument1.Active:=true;
XMLDocument1.LoadFromFile(ExtractFilePath(Application.ExeName) + 'playlist.xml');
Edit1.Text:=VarToStr(XMLDocument1.DocumentElement.ChildNodes['song'].Text);
XMLDocument1.Active:=false;
Но эти потуги остались безуспешными.
Сохранение я предполагаю вот так,должно работать:
Код:
XMLDocument1.Active:=true;
XMLDocument1.SaveToFile(ExtractFilePath(Application.ExeName) + 'playlist.xml');
XMLDocument1.Active:=false;
,но как передать из Edit-ов в нужные "ячейки" я не знаю.

Надеюсь на вашу помощь!

Последний раз редактировалось Dj_SheLL; 23.04.2010 в 20:39.
Dj_SheLL вне форума Ответить с цитированием
Старый 23.04.2010, 20:37   #2
SolovejK
Пользователь
 
Регистрация: 27.01.2010
Сообщений: 52
По умолчанию

Код:
  XMLDocument1.Active:=true;
  XMLDocument1.LoadFromFile(ExtractFilePath(Application.ExeName) + 'playlist.xml');   
  Edit1.Text:=VarToStr(XMLDocument1.DocumentElement.ChildNodes['song'].Attributes['location']); //так читаешь

  XMLDocument1.DocumentElement.ChildNodes['song'].Attributes['location'] := Edit2.Text; //так записываешь
  XMLDocument1.SaveToFile(ExtractFilePath(Application.ExeName) + 'playlist.xml');
  XMLDocument1.Active:=false;
SolovejK вне форума Ответить с цитированием
Старый 23.04.2010, 20:44   #3
Dj_SheLL
Форумчанин
 
Аватар для Dj_SheLL
 
Регистрация: 14.10.2009
Сообщений: 128
По умолчанию

Спасибо большое!!!
Просто и наглядно! + в репу :-)
Остальное ясно,как.
Dj_SheLL вне форума Ответить с цитированием
Старый 24.04.2010, 18:22   #4
Dj_SheLL
Форумчанин
 
Аватар для Dj_SheLL
 
Регистрация: 14.10.2009
Сообщений: 128
По умолчанию

А вот ещё вопрос на засыпку!
Делаю вывод всего этого дела,пока с одним атрибутом в ListBox:
Код:
procedure TForm1.Button3Click(Sender: TObject);
var i:integer;
begin
XMLDocument1.Active := true;
XMLDocument1.LoadFromFile(ExtractFilePath(Application.ExeName)+'playlist.xml');
for i:=0 to  XMLDocument1.DocumentElement.ChildNodes.Count do
begin
Listbox1.Items.Add(XMLDocument1.DocumentElement.ChildNodes[i].Attributes['location']);
end;
XMLDocument1.Active := false;
end;
Вначале почему-то пишет ошибку List index out of bounds (4),а потом выводит те данные,которые хочу.Не кто не знает случайно,как убрать эту ошибку?

И ещё при нажатии на кнопку сделал,чтобы выбранный элемент удалялся из ListBox:
Код:
procedure TForm1.Button4Click(Sender: TObject);
var i:integer;
begin
for i:=0 to 255 do
begin
if ListBox1.Selected[i] then
begin
ListBox1.DeleteSelected
end; end; end;
Тоже всё работает!Но достаёт эта назойливая ошибка.
Не могу узнать в чём причина!Подскажите пожалуйста!

Последний раз редактировалось Dj_SheLL; 24.04.2010 в 18:42. Причина: Дополнил...
Dj_SheLL вне форума Ответить с цитированием
Старый 24.04.2010, 19:52   #5
SolovejK
Пользователь
 
Регистрация: 27.01.2010
Сообщений: 52
По умолчанию

Исправь эту строку:

Код:
for i:=0 to  XMLDocument1.DocumentElement.ChildNodes.Count-1 do
SolovejK вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализация скинов в С++ на XML c эффектами Flash Yuri_semko Общие вопросы C/C++ 0 20.12.2009 20:45
XML редактирование. BlincAttack Общие вопросы .NET 2 10.12.2009 10:23
Редактирование XML из PHP. mikhea PHP 7 04.11.2009 15:13
Проигрывание SWF без установленного Flash-плеера Zen2007 Общие вопросы .NET 2 19.07.2009 22:49