Страницы: 1
RSS
Генерация текстового файла по спискам адресов в ячейках + последующая смена расширения *.txt (.m3u) на другое
 
Добрый день господа.
Помогите с решением вопроса.
-Можно ли заставить макрос - сгенерировать файл m3u (список аудио файлов) ?
(m3u - это по сути текстовый файл с измененным расширением)
-Этот макрос, объединяет mp3 файлы - по адресам указанным в ячейках - в файл m3u (список mp3).
-То есть макрос берет адреса файлов из столбца - генерирует из них текстовый файл, затем меняет расширение этого текстового файла с txt на m3u и размещает в той же папке, где находится xls.
 
Здравствуйте.
Цитата
ttt480 написал: Помогите с решением вопроса.
Это не вопрос, а комплексная задача.
Цитата
ttt480 написал: Можно ли заставить макрос - сгенерировать файл m3u (список аудио файлов) ?
Можно. Что именно Вы не нашли поиском? Как создать текстовый файл? Как в него записать данные? Как переименовать файл?

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
ttt480, а откуда берется #EXTINF:306,Amet1 ?
 
Цитата
Казанский написал: #EXTINF:306,Amet1
#EXTINF: [длительность в секундах] , [название трека]

Длительнось - можно любую поставить, как и название трека  - это несущественно.
А текст -   #EXTINF - как бы должен быть обязательно. Этот текст - можно в ячейку Экселя вписать или просто вставить это - как кусок текста.
Изменено: ttt480 - 19.12.2016 15:49:02
 
Был когда-то давно уже готовый такой инструмент - поищите по "XLTAG", например вот:
http://softsearch.ru/programs/42-976-xltag-download.shtml
 
Hugo, все ссылки - мертвые.
И не только ваша - а вообще во всем интернете (на тему XLTAG)
Даже на собственном сайте разработчика программы....
 
У меня дома файл должен быть, вечером поищу.
 
Цитата
ttt480 написал:
А текст -   #EXTINF - как бы должен быть обязательно
Да как бы нет :) Счас попробовал m3u со списком файлов, полученных консольной командой
Код
dir /b/s > 1.m3u
Виндовский проигрыватель и IrfanView воспроизводят нормально. Может это то, что Вам нужно?
 
Казанский,  Наверное это подойдет, если m3u может создать.
Только макрос должен адреса - именно из столбца выбирать.
 
Насколько помню - если в файле не прописано время, то и список песен изначально виден без времени, оно появляется при проигрывании трека. Не смертельно, но как-то "некузяво" :)
 
Цитата
ttt480 написал: А текст -   #EXTINF - как бы должен быть обязательно
Это нужно, как собаке боковой карман. Достаточно просто сгенерировать файл с именами файлов.
Цикл по ячейкам с сохранением результата в формате txt и расширением M3U.

PS или, как у меня сделано, перебрать все файлы в папке, далее по тексту.
Изменено: RAN - 19.12.2016 15:49:32
 
RAN, тогда - не подскажите - какой командой сгенерировать в txt элемент "перехода на новую строку" ?
Я сейчас для переноса содержимого ячеек применяю команды :
Код
ts.Write Trim(arr(i, 10))    
ts.Write Trim(arr(i, 11))
Но они так - идут в  текстовом файле - в одну строку....
То есть между ними нужно поставить элемент перехода на новую строку.
 
ttt480, запишет первый столбец выделенного диапазона
Код
Sub m3u()
  CreateObject("scripting.filesystemobject"). _
    CreateTextFile(ThisWorkbook.Path & "\1.m3u", True).Write _
    Join(WorksheetFunction.Transpose(Selection.Columns(1).Value), vbCrLf)
End Sub
 
Казанский, все работает
Огромное спасибо.
 
Создать m3u из файлов в выбранной папке.
К файлу Excel можно кнопочку красивую прислюнявить (у меня есть :D ).
Код
Sub CreatePlayList()
    Dim sf$, fname$, m3u$
    Dim sStr$, ExtensionName$, FoldName$
    Dim Folder As Object, File As Object

    With Application.FileDialog(msoFileDialogFolderPicker)
        If .Show = 0 Then
            Exit Sub
        Else
            sf = .SelectedItems(1)
        End If
    End With

    With CreateObject("Scripting.FileSystemObject")
        Set Folder = .GetFolder(sf)
        FoldName = Folder.Name
        For Each File In Folder.Files
            fname = File.Name
            ExtensionName = .GetExtensionName(fname)
            Select Case ExtensionName
            Case "m1a", "m4a", "m4b", "mp1", "mp2", "mp3", "mpa", "wav", "wave", "wma"
                sStr = sStr & vbCrLf & .GetBaseName(fname) & "." & ExtensionName
            End Select
        Next
        sStr = Mid$(sStr, 3)
        m3u = InputBox("Введите имя файла", "Create PlayList", "! " & FoldName)
        If Len(m3u) Then
            Set File = Folder.CreateTextFile(m3u & ".m3u", True)
            File.Write (sStr)
            File.Close
        End If
    End With
End Sub
 
Нашёл тот файл.
Авторы как я понял не возражают.
Цитата
Лицензия:
Программа распространяется свободно, с открытыми текстами макросов.
Просто мы потратили на нее некоторое время, и хотим Вам его сберечь.
Взамен просим одного - кто чего будет доделывать или переделывать - дайте нам знать, и если нам это пригодится, вышлите версию для личного пользования
Удачи!

Домашняя страница программы http://mmast.narod.ru/mysoft/xltag.htm
Внимание! Не рекомендуется использование копий программы, полученных иначе, чем с домашней страницы!
Перед использованием обязательно проверьте антивирусной программой!

Михаил Мастепанов Никита Золотарев, Санкт Петербург
контактные данные удалены [МОДЕРАТОР]

Т.к. объём почти 300кб, положил к себе (вернее он там уже давно и лежал...)
http://ibay.narod.ru/audio/Xltag24-2.xls
 
Hugo, интересная программа.
 
Можно на C# такую программу сделать.
There is no knowledge that is not power
Страницы: 1
Читают тему
Наверх