IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> M3u файлы, как открыть?
сообщение
Сообщение #1


Помощник капитана
****

Группа: Пользователи
Сообщений: 601
Пол: Мужской
Реальное имя: Артем

Репутация: -  2  +


Народ помогите! Как мне с помощью ListBox открыть m3u файл. blink.gif Че-то никак не получается.. заранее благодарен! smile.gif


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Что именно не получается? Просто запихнуть в ListBox названия песен и имена файлов, хранящиеся в M3U файле?
blink.gif

ListBox1.Items.LoadFromFile(OpenDialog1.FileName);
, и потом проходи по всем строкам и удаляй ненужную информацию: #EXTM3U и #EXTINF с помощью StringReplace ...

Или ты имеешь в виду что-то другое?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Помощник капитана
****

Группа: Пользователи
Сообщений: 601
Пол: Мужской
Реальное имя: Артем

Репутация: -  2  +


Цитата
Просто запихнуть в ListBox названия песен и имена файлов, хранящиеся в M3U файле?

И ещё добавить в массив строк путь к каждой песне, которая есть в M3u файле..не совсем пойму как это можно сделать.в принципе хотелось узнать как считать из m3u файла все данные, типа путь, название. А потом при шелчке по песне медиаплеер читает из массива путь к песне, и играет..че-то короче я намутил.

Сообщение отредактировано: Артемий2 -


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






  if OpenDialog1.Execute then begin
ListBox1.Items.LoadFromFile(OpenDialog1.FileName);

for i := 0 to ListBox1.Items.Count - 1 do
if (Pos('#EXTM3U', ListBox1.Items[i]) = 0)
and
(pos('#EXTINF', ListBox1.Items[i]) = 0)
then begin
SetLength(s, length(s) + 1);
s[pred(length(s))] := ListBox1.Items[i];
end;
end;


?

Только вот я не пойму, зачем тебе еще массив надо? Есть же ListBox.Items, которые хранят все, что нужно...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Помощник капитана
****

Группа: Пользователи
Сообщений: 601
Пол: Мужской
Реальное имя: Артем

Репутация: -  2  +


спасибо за код.Массив нужен так - допустим в items только имена, а путь при щелчке по имени к файлам как получить? я подумал что все пути к файлу добавить в массив, и при щелчке по item,у Листбокса в filename плеера добавляется нужный путь из массива и все добро играется..

Сообщение отредактировано: Артемий2 -


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






На форме - 2 ListBox-а: один хранит названия песен (ListBox1, именно так должен называться), второй (возможно - скрытый, ListBox2) - пути к ним... Заполнять так:

procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
p: integer;
SL: TStringList;
begin
if OpenDialog1.Execute then begin

SL := TStringList.Create;
try

SL.LoadFromFile(OpenDialog1.FileName);
for i := 0 to SL.Count - 1 do begin
if (Pos('#EXTM3U', SL[i]) > 0) then Continue
else begin
p := pos('#EXTINF', SL[i]);
if p > 0 then p := Pos(',', SL[i]) + 1;

(FindComponent(Format('ListBox%d', [2 - byte(p > 0)])) as TListBox).AddItem(
Copy(SL[i], p, length(SL[i])), nil
);
end;
end;

finally
SL.Destroy;
end;

end;
end;


По дабл-клику на ListBox1 (по названию песни) - делать так:
procedure TForm1.ListBox1DblClick(Sender: TObject);
begin
ShowMessage(ListBox2.Items[ListBox1.ItemIndex]);
end;

(вместо ShowMessage запускай на проигрывание файл)

Так лучше?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Помощник капитана
****

Группа: Пользователи
Сообщений: 601
Пол: Мужской
Реальное имя: Артем

Репутация: -  2  +


Да, замечательно! smile.gif Смысл в принципе теперь понятен!


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 15:58
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name