프로그램내에서 여권스캐너를 연동해서 여권데이터를 추출하고 있습니다
여권마다 데이터 길이나 자리수가 다르기 때문에 원하는 데이터를 뽑을때 어려움이있는데요
저는 이런식으로 코드를 작성했는데
//OcrArray = PMKORPARK<<A<B<<<<<<<<<<<<<<<<<<<<<<<<<M123456781KOR4503010M12345678912345V12345678
//OcrArray = PMKORPARK<<AB<<<<<<<<<<<<<<<<<<<<<<<<<<<<<M123456789KOR4503015M12345678912345V12345678
var OcrArray = ocr.Substring(0).Split(new[] { "<" }, StringSplitOptions.RemoveEmptyEntries);
if (OcrArray.Length == 4)
{
scanData.FullName = OcrArray[0] + OcrArray[1] + OcrArray[2];
scanData.LastName = OcrArray[0];
scanData.FirstName1 = OcrArray[1];
scanData.FirstName2 = OcrArray[2];
scanData.PassportNum = OcrArray[3].Replace("\n", "").Substring(0, 9);
scanData.Nation= OcrArray[3].Replace("\n", "").Substring(10, 3);
scanData.Birth = OcrArray[3].Replace("\n", "").Substring(13, 6);
scanData.Sex = OcrArray[3].Replace("\n", "").Substring(20, 1);
}
else
{
scanData.FullName = OcrArray[0] + OcrArray[1];
scanData.LastName = OcrArray[0];
scanData.FirstName1 = OcrArray[1];
scanData.PassportNum = OcrArray[2].Replace("\n", "").Substring(0, 9);
scanData.Nation = OcrArray[2].Replace("\n", "").Substring(10, 3);
scanData.Birth = OcrArray[2].Replace("\n", "").Substring(13, 6);
scanData.Sex = OcrArray[2].Replace("\n", "").Substring(20, 1);
}
제가 작성한 코드말고 더 좋은 방법으로 데이터를 추출할수 있는 방법이 있을까요?
이름의 띄어쓰기가 있는지 없는지와 같이 여러 조건이 있어서 데이터 추출을 쉽게 하지 못하고 있습니다