Будем считать что 10 часовой трек мы делать не будем, а разобьём его по 5 часов
Дело не в том, кто как работает и поступает, а в том что если человек введет больше 9, то произойдет абра-кадабра.)))Все так поступают кто с большими проектами работает.
Вот держи:
Первая цифра - это часы
вторая,третья - это минуты
четвертая,пятая - это секунды
и остальные - это миллисекунды
Но как по мне, то это только запутает и не удобнее.
		PHP:
	
	    local
    Previous_input = true;
    
    -------------------------------------------------------
    local function no_undo()reaper.defer(function()end)end;
    -------------------------------------------------------
    
    
    local title = 'Go To Time (time)';
    
    local _,filename,buf;
    
    if Previous_input == true then;
        _,filename,_,_,_,_,_ = reaper.get_action_context();
        filename = filename:match('(.+)[/\\](.+)');
        buf = reaper.GetExtState(filename,title);
    end;
    
    if not buf or buf == '' then;
        --local CurPos = reaper.GetCursorPosition();
       -- buf = reaper.format_timestr_pos(CurPos,'',0);
    end;
    
    --local
    retval,retvals_csv = reaper.GetUserInputs(title,1,'Sec:,extrawidth=25',buf);
    if not retval then no_undo()return end;
    
    
    --[[
    local MSec = retvals_csv:match(                  '(%d+)$')or 0;
    local Sec  = retvals_csv:match(            '(%d+)%D+%d*$')or 0;
    local Min  = retvals_csv:match(      '(%d+)%D+%d*%D+%d*$')or 0;
    local Hour = retvals_csv:match('(%d+)%D+%d*%D+%d*%D+%d*$')or 0;
    --]]
    
    retvals_csv = retvals_csv:gsub('%D','');
    
    Hour = retvals_csv:match('^(%d)')or 0
    retvals_csv = retvals_csv:gsub('^(%d)','');
    
    Min = retvals_csv:match('^(%d%d)')or 0
    retvals_csv = retvals_csv:gsub('^(%d%d)','');
    
    Sec = retvals_csv:match('^(%d%d)')or 0
    retvals_csv = retvals_csv:gsub('^(%d%d)','');
    
    MSec = retvals_csv:match('^(%d*)')or 0
    retvals_csv = retvals_csv:gsub('^(%d*)','');
    
    
   -- Hour,Min,Sec,MSec = retvals_csv:match('(%d)(%d%d)(%d%d)(%d*)');--(%d%d)(%d%d)(%d*)
    
    
    --[
    local time = reaper.parse_timestr_pos(Hour..':'..Min..':'..Sec..'.'..MSec,0);
    reaper.SetEditCurPos(time,true,false);
    
    
    if Previous_input == true then;
      --  reaper.SetExtState(filename,title,retvals_csv,false);
    end;
    
    no_undo();
	
	
	





