yahuu
 
 
 
  | 
		
			
				 Posted: Sat Dec 21, 2024 17:56    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				Можете ли вы предоставить функцию LoopListSel()? Обрабатывайте текущие выбранные элементы по одному в цикле. В настоящее время я реализую это следующим образом. Или есть лучший способ?
 
 
 	  | Code: | 	 		  
 
Func separateCompress()
 
   Local Count = RequestInfo(11005)
 
   If Count=0 Then SendCommand(2936,-1)
 
   Local Count = RequestInfo(11005), ListSel = GetSelectedItems(3, 0)
 
   
 
   For var = 1 To Count
 
      Local Name = StrPart(ListSel, auCRLF, var)
 
      Local FullName = RequestCopyDataInfo("SP") & Name
 
      Local FullNoExtNewName = getFullNoExtName(RequestCopyDataInfo("SP"), Name) & ".7z"   
 
      Local sParam = 'a -t7z -mx=5 "' & FullNoExtNewName & '" "' & FullName & '"'
 
      
 
      ShellExec %"s7zip" %"sParam"
 
   Next
 
EndFunc
 
 
Func getFullNoExtName(sPath, fileName)
 
   #Если имя папки содержит символ ., TotalCMD будет рассматривать содержимое после . как расширение, поэтому необходимо обрабатывать папки отдельно.
 
   If StrPos(FileGetAttr(sPath & fileName), "D") Then
 
      Return sPath & fileName
 
   Else
 
      If StrPos(fileName, '.') > 0 Then
 
         Return sPath & StrLeft(fileName, StrPos(fileName, '.', -1)-1)
 
      Else
 
         Return sPath & fileName
 
      EndIf
 
   EndIf
 
EndFunc
 
  | 	 
  | 
			 
		  |