사전지식 및 계기
전각, 반각에 따라서 아래의 링크의 내용처럼 콘솔에 맞게 포맷팅을 변경해줘야 하는 경우가 있다.
2021.12.30 - [C#/예제 코드] - c# DataTable 컬럼정보 이쁘게 출력하기 (콘솔)
c# DataTable 컬럼정보 이쁘게 출력하기 (콘솔)
사전지식 DataTable의 칼럼 정보를 전체적으로 망라할 수 있는 소스를 뒤져봤지만, 전각 문자에 대한 지원이 미흡하다던가.. 대충 텍스트만 출력한다든가.. 맘에 드는 것이 없어서 직접 소스를 작
self-edu.tistory.com
반각 문자는 체계가 있을까 싶어 아스키코드나 일본어 가타카나 몇 개 정도로 상정하여 🔍검색하면, 영어로 하든지 한글로 하든지 제대로 된 정보를 찾기 힘들다.
그리고
중요한 점은 폰트에 따라서 반각과 전각의 구분이 다른 문자도 있다.
그래서 0부터 전부 찾아버리는 로직을 생각해버렸다.
준비물
.net6.0 이상의 버전
에디터는 vs2022을 추천.
실습
※ .net6.0 ( C#10.0 에서는 Main()을 생략한다 )
using System.Text;
StringBuilder halfChars = new StringBuilder();
StringBuilder fullChars = new StringBuilder();
for (int i = 0x1b; i <= 0xFFFF; i++)
{
char c = (char)i;
if (Char.IsControl(c) || Char.IsSurrogate(c)) continue;
Console.WriteLine();
Console.Write(c);
if (Console.CursorLeft == 1) halfChars.Append(c);
else if (Console.CursorLeft == 2) fullChars.Append(c);
}
Console.Clear();
Console.WriteLine("----half----");
Console.WriteLine(halfChars.ToString());
Console.WriteLine("----END----");
Console.WriteLine("TOTAL : " + halfChars.Length + "chars");
System.Console.WriteLine();
Console.WriteLine("----full----");
Console.WriteLine(fullChars.ToString());
Console.WriteLine("----END----");
Console.WriteLine("TOTAL : " + fullChars.Length + "chars");
File.WriteAllText("halfwidth.txt", halfChars.ToString()); //저장.
주의사항
윈도우에 내장된 콘솔에 대해서만 동작을 보장한다..
vscode 처럼 자체 콘솔창이 있다면 높은 확률로 오류가 난다.
0부터 0xffff 까지 10초 이상 걸린다. (win 10 기준)
글꼴을 변경 하고싶을 때:
2022.01.01 - [C#/예제 코드] - c# 콘솔 폰트 확인 및 폰트(글꼴,크기) 변경
출처:
https://self-edu.tistory.com/ (myself)
'C# > 예제 코드' 카테고리의 다른 글
c# DataTable 데이터 이쁘게 출력하기 (콘솔) (0) | 2022.01.02 |
---|---|
c# 콘솔 폰트 확인 및 폰트(글꼴,크기) 변경 (0) | 2022.01.01 |
c# DataTable 컬럼정보 이쁘게 출력하기 (콘솔) (0) | 2021.12.30 |
c# 에서 자바스크립트 사용 (V8엔진) (0) | 2021.12.17 |
c# 의 Eval (동적 컴파일) (0) | 2021.12.15 |