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: [wlx/wdx] TCMediaInfo 
Author Message
790



PostPosted: Wed Jun 07, 2023 12:54    Post subject: Reply with quote

Duration в контент-варианте плагина, запутался с нулями. Заменил h, mm, sec на ":"
Code:
<column name="Duration">
         <unit name="hh:mm:ss" type="script">Output:=TimingFormat('%h:%mm:%ss', Duration);</unit>
         <unit name="hh:mm:ss.fff" type="script">Output:=TimingFormat('%hh:%mm:%ss.%fff', Duration);</unit>
         <unit name="s" type="script">Output:=Trunc(Duration/1000);</unit>
         <unit name="z">Duration</unit>
         <unit name="Custom" type="script">
         <![CDATA[
            // this is an example of using scripts in columns
            Output:='';
            if Not StrIsNumber(Duration) then Exit;
            nDur := Number(Duration);
            Hour:=Trunc(nDur/3600000);
            Min:=Trunc((nDur-Hour*3600000)/60000);
            Sec:=Trunc((nDur-Hour*3600000-Min*60000)/1000);
            if (Hour <> 0) then Output:=String(Hour)+':';
            if (Min <> 0) then Output:=Output+String(Min)+':';
            if (Sec <> 0) then Output:=Output+String(Sec);
         ]]>
         </unit>
      </column>

Хотелось бы использовать пользовательский режим, чтобы продолжительность трека отображалась в виде 0:00:00 (если есть "часы") или 0:00 (если нет "часов") или 00 (если нет "минут"). Но получается, что если продолжительность 10:08, то будет показано как 10:8, а если 1:00:05, то будет 1:5
Можно ли написать, например:
Code:

if (Hour <> 0) then Output:=String(Hour)+':';
if (Min = 0) or (Min > 9) then Output:=Output+String(Min)+':';
if (Min > 0) and (Min < 10) then Output:=Output+'0'+String(Min)+':';
if (Sec > 9) then Output:=Output+String(Sec) else Output:=Output+'0'+String(Sec);

Вроде, работает. Наверно, есть какие-нибудь решения попроще?
_________________
TC 11.03, Win10x64

Cuda уехал text, он был ещё вчераа...
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group