안녕하세요? GetText로 텍스트로 문서 읽은 후 조건에 따라 텍스트 수정 후 다음 텍스트 계속 읽으면서 체크할려고 하는데요 잘 안되네요
c#으로 한글 오토메이션 하고 있습니다
문서에서 "1. " 형식으로 시작하는 단락의 문자열을 찾은 후 "1. " 형식의 "숫자+점+빈칸"을 전체 문서에서 제거할려고 하는데요
처음 1개는 삭제가 되는데 그 다음 GetText로 읽을려고 하면 리턴코드가 0으로 그 다음 진행이 안되고 while 문에서 계속 무한 반복 하고 있습니다
특정 형식(1. 내용…)의 텍스트를 찾은 후 수정한 다음 계속해서 다음 텍스트를 검색하고 싶은데 어떻게 해야 할까요?
수정을 하지 않고 1. 형식의 텍스트를 검색하면 하면
"1. 내용~~ "
“2. 내용~~”
“3. 내용~~”
과 같이 검색은 다 되는데요… 수정 후에는 그 다음 검색이 안되네요
아래는 현재 c# 코드 입니다.
미리 감사드립니다 ^^;
string pattern = @"^\d+\.\s*"; // "1. 형식을 찾습니다"
hwp.InitScan(0x00, 0x0007, 0, 0, -1, -1);
//0 = 텍스트 정보 없음.
//1 = 리스트의 끝.
//2 = 일반 텍스트.
//3 = 다음 문단.
//4 = 제어문자 내부로 들어감.
//5 = 제어 문자를 빠져 나옴.
//101 = 초기화 안됨. (InitScan() 실패 또는 InitScan()를 실행하지 않음)
//102 = 텍스트 변환 실패
while (true)
{
int ret = hwp.GetText(out string text);
Debug.WriteLine($"리턴코드 : {ret}");
if (ret == 1)
{
Debug.WriteLine("문서의 끝입니다");
break;
}
if (ret == 0)
{
//hwp.Run("MoveNextPara"); // 다음 문단으로 이동
continue; // 텍스트 정보 없음 }
}
text = text.Trim(); // 앞뒤 공백 제거
if (text.Length < 2) continue; // 2글자 미만이면 건너뛰기
Debug.WriteLine(text); // 읽은 텍스트 출력
bool match = Regex.IsMatch(text, pattern); // text가 패턴과 일치하는지 (1. 내용 형식인지)
// 형식 일치하면
if (match)
{
hwp.MovePos(201, 0, 0); // 해당 위치로 이동 (여기에서 이미 문단 시작으로 이동함)
hwp.Run("MoveParaBegin"); // 문단 시작으로 이동
hwp.Run("DeleteWord"); // 시작 단어 삭제
}
}
hwp.ReleaseScan();