Короче, сначала сразу сформулирую вопрос. Можно ли в относительном пути ВООБЩЕ НЕ ПИСАТЬ <SrcDir>?
То есть, если, например, путь такой: <SrcDir>\плейлисты\list1.m3l
то вместо него писать просто:
плейлисты\list1.m3l
Попробовал - вроде бы получается без всякого <SrcDir>.
Программа находит указанные файлы в своей папке и подпапках,
даже когда <SrcDir> не указано.
Что интересно: если плейлист лежит по адресу:
C:\\autorun\Data\list1.m3l'
и если написать в программе вот так:
list$ = 'autorun\Data\list1.m3l'
ListBoxAddItem("SongList","list$")
то программа НАХОДИТ этот плейлист, даже когда её запускают
по клавише F5! А не только когда она лежит на диске C:\
Я мог бы предположить, что имя диска добавляется автоматически,
однако если всё это хозяйство лежит на диске D:\, то программа
тоже его находит, когда сама лежит на том же диске. А если бы туда
подставилось C:\, то программа не нашла бы лист.
Вопрос данный задаю вот почему. В моем проекте мр3-авторана
нужно формировать плейлисты с относительными путями, чтобы
авторан работал с компакт-диска. Однако автоматически редактировать
списки так, чтобы в них прописывалось <SrcDir>, очень геморройно.
А вот без этого <SrcDir> - легко, можно реализовать сохранение спика
через команду SongListSave("SongList","list$").
В противном же случае список ни в какую не хочет сохранять слово
<SrcDir> - обязательно норовит подставить вместо него конкретный путь.
И приходится пользоваться командой StrToFile для редактирования списков,
что трудно и нежелательно.
Итак, повторяю главный вопрос:
Можно ли в относительном пути ВООБЩЕ НЕ ПИСАТЬ <SrcDir>?
Кстати, если это работает для плейлистов, то ни черта не работает
для команды Run(). Я проверял - путь без указания <SrcDir> не будет найден.
Добавлено (25 Января 2007, 14:02)
---------------------------------------------
Вобщем, написал такой сценарий для редактирования плейлистов
и добавления в них пресловутого <SrcDir>:
Code |
If (NUM>N) Then Гуляй Вася! End list$='<SrcDir>\Data\list'+CHAR(NUM)+'.m3l' insert$='<SrcD'+'ir>'+CHR(92) For n=1 To NOL(list$) string$=StrFromFile(list$,n,1) string$=insert$+string$ rv=StrToLine(list$,string$,n,TRUE) Next n NUM=NUM+1 ScriptTimer("EditList","50") |
Раньше не было команды StrToLine(), а была только StrToFile(),
поэтому геморройно было делать.
Добавлено (25 Января 2007, 14:03)
---------------------------------------------
Да, а с помощью команды SongListSave() чёртов <SrcDir> записать в файл
не удается... Я даже вот как написал для примера:
Code |
OpenFile("Text Files (*.txt)|*.txt|All Files|*.*||","*.txt") as$=CBK_OpenFile file$=ExtractName(as$)+ExtractExt(as$) item$='<SrcD'+'ir>\Song'+CHR(92)+file$ ListBoxAddItem("Son gList","STRING:item$") SongListSave("SongList","C:\\list.txt") |
Уж вроде бы исхитрился... Загружаю файл в SongList, загружается вот такая строка:
<SrcDir>\Song\файл.txt
а в список сохраняется уже другая стркоа:
C:\Program Files\Multimedia Builder497\Song\файл.txt (при запуске по F5).
Добавлено (25 Января 2007, 14:03)
---------------------------------------------
Похоже, я в этой теме один воюю :)