조판부호의 내용을 확인하는 방법


위의 그림과 같이, 강제 줄나눔 사이에
그림 또는 글상자 또는 표 또는 수식
만 있는 경우, 즉 한글이 없는 경우

강제 줄나눔을 지우지 앟고, 그냥 지나가려 합니다.

와 같이 한글이 있는 경우, 강제 줄나눔을 지우려 하고요

HAction.GetDefault(“RepeatFind”, HParameterSet.HFindReplace.HSet);
with (HParameterSet.HFindReplace)
{
FindString = “^l”;
Direction = FindDir(“Forward”);
ReplaceMode = 0;
IgnoreMessage = 1;
FindType = 1;
}
HAction.Run(“MoveTopLevelBegin”);

while(HAction.Execute(“RepeatFind”, HParameterSet.HFindReplace.HSet))
{
HAction.Run(“Cancel”);
HAction.Run(“MoveSelLineEnd”);
text = GetTextFile(“TEXT”, “saveblock”);
HAction.Run(“Cancel”);

if (text != null)
{		
	if(text.search(/\[가-힣\]/g) > -1)
	{
		HAction.Run("MoveLineBegin");
		HAction.Run("DeleteBack");
		HAction.Run("MoveSelLeft");
	}
	HAction.Run("MoveRight");
}

}
와 같이 구성하여 코드를 진행시켜 보았는데,
표와 글상자의 경우, 한글을 인식하여 강제줄나눔을 지워 버립니다.

어떻게 방법이 없을까요?

강제 줄나눔.hwp (56.5 KB)

완벽하진 않지만, 문서가 통일성 있게 편집되어 있다는 전제 조건으로 다음과 같이 마무리 지었습니다.

function OnScriptMacro_줄나눔정리()

{
// SetMessageBoxMode(0x00020000);

HAction.GetDefault("Goto", HParameterSet.HGotoE.HSet);
with (HParameterSet.HGotoE)
{
	HSet.SetItem("DialogResult", 5);
	SetSelectionIndex = 5;
}
HAction.Execute("Goto", HParameterSet.HGotoE.HSet);

HAction.Run("MoveRight");

FindCtrl();
var ctrl = CurSelectedCtrl;
HAction.Run("MoveLineEnd");

if (ctrl.CtrlID == "tbl" || ctrl.CtrlID == "gso")
{
	HAction.Run("MoveRight");
	var emp =ctrl.CtrlID;
	} else {
	HAction.Run("MoveRight");
	HAction.Run("MoveSelLineEnd");
	var text = GetTextFile("TEXT", "saveblock");
	HAction.Run("Cancel");

	if ( text == null)
	{
		HAction.GetDefault("Goto", HParameterSet.HGotoE.HSet);
		with (HParameterSet.HGotoE)
		{
			HSet.SetItem("DialogResult", 5);
			SetSelectionIndex = 5;
		}
		HAction.Execute("Goto", HParameterSet.HGotoE.HSet);
		HAction.Run("Delete");
		emp ="끝";
		} else {
		if (text.search(/[가-힣]/g) > -1)
		{
			HAction.Run("MoveLineBegin");
			HAction.Run("DeleteBack");
			HAction.Run("MoveRight");
			emp ="한글";
			}else{
			HAction.Run("MoveRight");
			emp = ctrl.CtrlID;
		}
	}
}		
XHwpMessageBox.String = emp;
XHwpMessageBox.Flag = 0;
XHwpMessageBox.DoModal();

SetMessageBoxMode(0x00000000);

}

1개의 좋아요