예 요번에는 싱크가 있는 줄만 지우는 매크로입니다.

최대한 간단하게 만든거라서 좀 부족하긴 합니다만.. 대부분의 자막에서는 잘 동작할것 같습니다.


핵심은 CC_IsSyncLine(줄번호) 함수를 써서 해당 줄에 싱크 태그가 있는지 확인하고 있으면

CC_DeleteLine(줄번호) 함수로 해당 줄을 걍 지우는 겁니다.


그럼 바로 매크로 코드 나갑니다.


var
  LineObj: TStringList;
  LineLoop: Integer;
  DelSyncCount: integer;
begin
//가로로 이어 쓰인 싱크에 대사까지 삭제되는 거 방지를 위한 변환 작업
{
CCP_SCRIPT := CC_STRINGREPLACE(CCP_SCRIPT, CC_PTAG+CRLF, CC_PTAG);
CCP_SCRIPT := CC_STRINGREPLACE(CCP_SCRIPT, CC_PTAG, CC_PTAG+CRLF);
}


  LineObj := TStringList.Create;
  Try
    LineObj.Text := CCP_SCRIPT;
    For LineLoop := LineObj.Count -1 downto 0 do
    Begin
       If CC_ISSYNCLINE(LineLoop) Then
       Begin

          CC_DeleteLine(LineLoop);

          DelSyncCount := DelSyncCount+1;
{
end
else
begin
          CC_INSERTLINE(LineLoop, CRLF);
}
       End;
{
       If Trim(LineObj[LineLoop]) = ' ' Then
       Begin
          CC_DELETELINE(LineLoop);
          CC_INSERTLINE(LineLoop, CRLF);
       end;
}
   

End;

  Finally
    LineObj.Free;
  End;

if DelSyncCount > 0 then ShowMessage('총 '+IntToStr(DelSyncCount) + ' 개의 싱크를 제거했습니다.');
CCP_CaretX := 0;

end;


Posted by 투명인간취급
,

이번엔 공백줄을 지우는 거지요, 역시나 유사합니다. 전체에서 지우는 거라서 약간 달라지긴 합니다만.

일단 매크로 코드는 아래와 같습니다.


var
  LineObj: TStringList;
  LineLoop: Integer;
  DelBlankCount: integer;
  CurrentLine: WideString;
begin
  LineObj := TStringList.Create;
  Try
    LineObj.Text := CCP_SCRIPT;

    For LineLoop := LineObj.Count -1 downto 0 do
    Begin
      // 공백이 아닌 줄은 처리하지 않고 다음 줄로 넘어갑니다..
      If Trim(LineObj[LineLoop]) <> '' Then Continue;

      CC_DELETELINE(LineLoop);
      DelBlankCount := DelBlankCount+1;

    End;

  Finally
    LineObj.Free;
  End;
if DelBlankCount > 0 then ShowMessage('총 '+IntToStr(DelBlankCount) + ' 개의 공백 줄을 제거했습니다.');
CCP_CaretX := 0;
end;


IRC에 비해서 해야할게 적기때문에 줄이 확 줄어듭니다.


Posted by 투명인간취급
,

싱크값 뒷자리 수를 00으로 바꾸기 방법 2가지

<Sync Start=12300><P Class=KRCC> 등으로 뒷자리 수 00으로 끝나게 만들기

1. 방법 : 편집->빠른 싱크 편집->싱크 비율 수정->비율로 수정 



------------------------------------------------------------------------------------------------
<Sync Start=12345><P Class=KRCC>

<Sync Start=12445><P Class=KRCC>
&nbsp;
<Sync Start=12545><P Class=KRCC>

<Sync Start=12645><P Class=KRCC>
&nbsp;
<Sync Start=12745><P Class=KRCC>

<Sync Start=12845><P Class=KRCC>
&nbsp;
<Sync Start=12945><P Class=KRCC>

<Sync Start=13045><P Class=KRCC>
&nbsp;
------------------------------------------------------------------------------------------------
기존 방식으로 찍은 자막에 뒷자리 수 00으로 채우시려면

편집->빠른 싱크 편집->싱크 비율 수정->비율로 수정
------------------------------------------------------------------------------------------------



0.01000 이값을 입력해서 확인 뒤에 2자리를 날려주고
------------------------------------------------------------------------------------------------
<Sync Start=123><P Class=KRCC>

<Sync Start=124><P Class=KRCC>
&nbsp;
<Sync Start=125><P Class=KRCC>

<Sync Start=126><P Class=KRCC>
&nbsp;
<Sync Start=127><P Class=KRCC>

<Sync Start=128><P Class=KRCC>
&nbsp;
<Sync Start=129><P Class=KRCC>

<Sync Start=130><P Class=KRCC>
&nbsp;
------------------------------------------------------------------------------------------------



100.00000 다시 이값을 입력해서 확인 뒤에 00을 채워주시면 됩니다.
------------------------------------------------------------------------------------------------
<Sync Start=12300><P Class=KRCC>

<Sync Start=12400><P Class=KRCC>
&nbsp;
<Sync Start=12500><P Class=KRCC>

<Sync Start=12600><P Class=KRCC>
&nbsp;
<Sync Start=12700><P Class=KRCC>

<Sync Start=12800><P Class=KRCC>
&nbsp;
<Sync Start=12900><P Class=KRCC>

<Sync Start=13000><P Class=KRCC>
&nbsp;

------------------------------------------------------------------------------------------------
또는 싱크 찍으면서 00으로 찍기

2. 방법 : 도구->프로그램 설정->기본 태그 설정->시간 태그 & 공백 태그 추가


------------------------------------------------------------------------------------------------
시간 태그
------------------------------------------------------------------------------------------------

var
ZeroSYNC: Integer; //변수 선언
begin

If CC_ISSYNCLINE(CCP_CaretY) Then
Begin

ZeroSYNC := CC_MEDIACURRENTSYNCTIME*0.01000;

   CCP_CURRENTTIME := ZeroSYNC*100.00000;
   CCP_CaretY := CCP_CaretY + 1;
End
Else
Begin

ZeroSYNC := CC_MEDIACURRENTSYNCTIME*0.01000;

   CC_InsertLine(CCP_CaretY, '<Sync Start='+IntToStr(ZeroSYNC*100.00000)+'>'+CC_PTAG);
   CCP_CaretY := CCP_CaretY + 2;
   CC_MOVETOEDITORCARETBOTTOM;
End;

end;

------------------------------------------------------------------------------------------------
공백 태그
------------------------------------------------------------------------------------------------

var
ZeroSYNC: Integer; //변수 선언
begin

If CC_ISSYNCLINE(CCP_CaretY) Then
Begin

ZeroSYNC := CC_MEDIACURRENTSYNCTIME*0.01000;

   CCP_CURRENTTIME := ZeroSYNC*100.00000;
   CCP_CaretY := CCP_CaretY + 1;
End
Else
Begin

ZeroSYNC := CC_MEDIACURRENTSYNCTIME*0.01000;

CC_InsertLine(CCP_CaretY, '<Sync Start='+IntToStr(ZeroSYNC*100.00000)+'>'+CC_PTAG+CRLF+'&nbsp;');
   CCP_CaretY := CCP_CaretY + 2;
   CC_MOVETOEDITORCARETBOTTOM;
End;

end;

------------------------------------------------------------------------------------------------

Posted by 투명인간취급
,