장비관리를 별도의 프로젝트로 분리 -

개별 프로젝트 참조를 위한 뼈대 생성 - 공용은 fcommon 으로 이 관
This commit is contained in:
chikyun.kim
2018-09-17 15:42:20 +09:00
parent 98ae9c7ad2
commit a873717126
205 changed files with 25207 additions and 7538 deletions

View File

@@ -1,4 +1,9 @@
//180624 chi isLocalApplication 추가
//190806 chi getWorkWeek 추가
//190805 chi MakeCSVString 추가
//180903 chi makefilepath/ ftppath 추가
//180807 chi rad2deg, deg2rad 추가
//180625 chi ToCharHexString,ToStringFromHexString 추가
//180624 chi isLocalApplication 추가
//180618 chi GetCSVBuffer 추가
//180614 chi map 명령어 추가
using System;
@@ -15,6 +20,96 @@ namespace Project
{
public static class Util
{
public static int GetWorkWeek()
{
return GetWorkWeek(DateTime.Now);
}
public static int GetWorkWeek(DateTime date)
{
var dfi = System.Globalization.DateTimeFormatInfo.CurrentInfo;
var date1 = date;
var cal = dfi.Calendar;
var week = cal.GetWeekOfYear(date1, dfi.CalendarWeekRule, dfi.FirstDayOfWeek);
return week;
}
public static string MakeFilePath(params string[] param)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
foreach (var item in param)
{
if (sb.Length > 0 && sb.ToString().EndsWith("\\") == false) sb.Append("\\");
sb.Append(item.Replace("/", "\\"));
}
var retval = sb.ToString().Replace("/", "\\").Replace("\\\\", "\\");
return retval.ToString();
}
public static string MakeFTPPath(params string[] param)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
foreach (var item in param)
{
if (sb.Length > 0 && sb.ToString().EndsWith("/") == false) sb.Append("/");
sb.Append(item.Replace("\\", "/"));
}
var retval = sb.ToString().Replace("//", "/");
return retval.ToString();
}
public static double rad2Deg(double source)
{
return (source * 1.0) * 180.0 / Math.PI;
}
public static double deg2rad(double source)
{
return (source * 1.0) * Math.PI / 180.0;
}
/// <summary>
/// 문자를 HEX 문자로 변경합니다. 각 HEX문자 사이에는 공백이 없습니다.
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static string ToCharHexString(string input)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
foreach (char b in input.ToCharArray())
sb.Append(((byte)b).ToString("X2"));
return sb.ToString();
}
/// <summary>
/// 16진수형태의 문자를 일반 문자열로 반환한니다.
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static string ToStringFromHexString(string input)
{
int wordCount = (int)(input.Length / 2);
int n = (int)(input.Length % 2);
if (n != 0) return "X:Length Error";
System.Text.StringBuilder sb = new StringBuilder();
for (int i = 0; i < wordCount; i++)
{
string hexstr = input.Substring(i * 2, 2);
try
{
byte ascvalue = Convert.ToByte(hexstr, 16);
sb.Append((char)ascvalue);
}
catch (Exception ex)
{
return ex.Message;
}
}
//두자리씩 끊어서 16진수로 변환하고 ASC값을 누적한다.
return sb.ToString();
}
/// <summary>
/// 현재 프로그램이 개인용위치에서 실행중인가(클릭원스의경우)
/// </summary>
@@ -25,6 +120,23 @@ namespace Project
return Util.CurrentPath.StartsWith(localpath);
}
/// <summary>
/// 문자열 배열을 CSV라인으로 변환
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
public static string MakeCSVString(params string[] param)
{
System.Text.StringBuilder sb = new StringBuilder();
foreach (var data in param)
{
if (sb.Length > 0) sb.Append(',');
sb.Append(ToCSVString(data));
}
return sb.ToString();
}
/// <summary>
/// CSV데이터포맷으로 버퍼를 반환합니다. 문자열내에 , 가 있는 데이터는 쌍따옴표로 구분합니다.
/// </summary>
@@ -39,18 +151,20 @@ namespace Project
bool findsig = false;
var charbuf = line.ToCharArray();
char pchar = '\0';
bool findCommaString = false;
foreach (var c in charbuf)
{
if (c == ',')
{
if (findsig) sb.Append(c); //대상에 콤마가 잇으므로 게소 누적한다.
else
else if (findCommaString == false)
{
//데이터를 분리해줘야함
buffer.Add(sb.ToString());
sb.Clear();
findsig = false;
}
else findCommaString = false;
}
else if (c == '\"')
{
@@ -59,7 +173,17 @@ namespace Project
if (!findsig) findsig = true;
else findsig = false; //완료된 경우이다.
}
else if (!findsig) sb.Append(c);
else if (!findsig)
{
sb.Append(c);
}
else
{
buffer.Add(sb.ToString());
sb.Clear();
findsig = false;
findCommaString = true;
}
//if (!findsig) findsig = true;
//else sb.Append(c);
}
@@ -146,13 +270,12 @@ namespace Project
/// <returns></returns>
public static string ToCSVString(string src)
{
string strdata = src.Replace("\r", "").Replace("\n", "");
if (src == null) return string.Empty;
string strdata = strdata = src.Replace("\r", "").Replace("\n", "");
if (strdata.IndexOf(',') != -1)
{
strdata = "\"" + strdata + "\""; //180618 콤마가들어가는 csv 처리
}
return strdata;
}