C# 독학하는 초보자인데 질문하신 분이 있어서 올립니다.
Encoding 자동 감지하는 소스를 올리지 않습니다.
그 부분은 Encoding enc = Encoding.Default;
와 같이 코드를 수동으로 처리해서 테스트하시기 바랍니다.
using System.IO;
private void btnHangul_Click(object sender, EventArgs e)
{
// 한글이 포함되어 있는지 검사
using (OpenFileDialog dlg = new OpenFileDialog())
{
dlg.Filter = "csv (*.csv) | *.csv";
if (dlg.ShowDialog() == DialogResult.OK)
{
Read_CSV_firstColumn(dlg.FileName);
}
}
}
public void Read_CSV_firstColumn(string fileName)
{
string delimiter = ";"; // 구분자
Encoding enc = GetFileEncoding(fileName);
if (enc == null)
{
MessageBox.Show("Encoding Detection failed.");
return;
}
using (var sr = new StreamReader(fileName, enc, true))
{
string line = null;
while ((line = sr.ReadLine()) != null)
{
string[] fields = line.Split(new string[] { delimiter }, StringSplitOptions.None);
if (isContainHangul(fields[0])) // 첫번째 칼럼에 한글이 포함되어 있으면
{
MessageBox.Show(fields[0] + " : 한글 포함되어 있네요");
}
else
{
MessageBox.Show(fields[0] + " : 한글 포함 안되어 있어요");
}
}
sr.Close();
}
}
/// <summary>
/// 문자열에 한글이 포함되어 있는지 검사하여 포함되어 있으면 true 반환
/// </summary>
public bool isContainHangul(string s)
{
char[] charArr = s.ToCharArray();
foreach (char c in charArr)
{
if (char.GetUnicodeCategory(c) == System.Globalization.UnicodeCategory.OtherLetter)
{
return true;
}
}
return false;
}
'C# > 기능 활용' 카테고리의 다른 글
C# Folder 만들기 함수 (0) | 2016.11.12 |
---|---|
C# MP3 Player Source using NAudio (1) | 2016.09.10 |
C# 관리자 권한으로 실행중인지 체크 (0) | 2016.01.12 |
C# MP3 Player 트랙바 구현(NAudio 활용) (0) | 2016.01.07 |
C# 자동 업데이터 구현 흐름도 (1) | 2016.01.04 |