Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Создание txt файла в каталоге с текстом из названия папки 
Author Message
Flasher



PostPosted: Sat Jan 12, 2019 09:25    Post subject: Reply with quote

А можно поинтересоваться зачем? Просто с UTF-16 ваша задача (я так понимаю, одноразовая) вполне осуществима в несколько действий силами ТС.
В любом случае пересохранить в редакторе в другой кодировке не должно явиться проблемой.
Рассказываю как.
1) По маске <^[^-]*, (Num+) выделить нужные папки и сохранить выделение в файл из гл. меню или из комстроки по cm_SaveSelectionToFileW.
После открыть список в редакторе с поддержкой регулярных выражений, в инструменте поиска и замены в поле поиска прописать ' - .*' (без апострофов), отметить опцию Рег. выраж. и выполнить. Список пересохранить в UTF-8.
doommyyy wrote:
создание txt файла (actors.txt) в каждой папке
Хотя стоп. Для каждой нужно поделить список построчно. Чуть позже на это отвечу.

2) Восстановить выделение в панели клавишей [/], вызвать ИГП (Ctrl+M):
Найти: '[^,],.*-'
Заменить на: ' -'
☑ Рег. Выраж. (только)
Посмотреть на предварительные результаты в диалоге и подтвердить по Enter.

В общем, вот код:
Code:
'============================= VBS =============================
' Убрать в именах папок активного каталога не первые антропонимы
' до знака - и создать в них строчные списки всех исходных имён

' Условие:  Путь запуска — пустой
'===============================================================
Set Stm = CreateObject("ADODB.Stream")
Set FSO = CreateObject("Scripting.FileSystemObject")
For Each Fd In FSO.GetFolder(FSO.GetAbsolutePathName("")).SubFolders
  If InStr(Fd.Name, " -") Then
    Arr = Split(Fd.Name, " -") : LName = Arr(0)
    If InStr(LName, ",") Then
      Fd.Name = Left(LName, InStr(LName, ",") - 1) & " -" & Arr(1)
      With Stm
        .Open : .Type = 2 : .CharSet = "UTF-8" : .WriteText Arr(0)
        .SaveToFile Fd.Path & "\actors.txt", 2 : .Close
      End With
    End If
  Else Errs = Errs & vbCr & Fd.Name
  End If
Next
Set Stm = Nothing : Set FSO = Nothing
MsgBox Space(16) & "Выполнено!" & Errs, 4160,_
" Переименовать папки и создать в них списки       "
См. памятку раздела.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.


Last edited by Flasher on Sat Jan 12, 2019 11:52; edited 3 times in total
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group