블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2797)
Unity3D (853)
Programming (479)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (185)
협업 (61)
3DS Max (3)
Game (12)
Utility (68)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
Android (14)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday

SQLite에서 데이터베이스에 입력 가능한 자료형은 다음과 같다.

 

 자료형

설명

예제 

 INTEGER

 부호를 갖는 정수형 데이터 

 -1234, -1, 0, 1234

 REAL(FLOAT, DOUBLE)

 부호를 갖는 부동소수점 데이터

 3.14, 123000000.0,

 1.23E8, 0.0032132, 1.2342E-4

 TEXT

 문자열 데이터

 'SQLite'

 'SQLite 자료형'

 BLOB

 바이너리 데이터

 (Binary Large Object)

 x'0101', x'0fac',

 x'0F0FAC', x'01234532'

 NULL

 값이 정의되지 않거나 존재하지 않음

 NULL

 

INTEGER는 부호가 있는 정수형 데이터를, REAL은 부호가 있는 부동소수점 데이터를 저장할 수 있다.

REAL은 다른 데이터베이스와의 SQL 구문 호환을 위해 'FLOAT', 'DOUBLE'로도 선언해서 사용 가능하다.

 

TEXT는 문자열 데이터를 저장하며, 문자열로 표현하려면 문자열을 따옴표('')나 쌍따옴표("")로 묶어야 한다.

 

BLOB은 바이너리 파일을 데이터베이스에 저장할 수 있드며, 일반적으로 이미지, 비디오, MP3와 같은 대형 멀티미디어 파일을 데이터베이스에 직접 저장하는 용도로 사용된다.

 

NULL은 '값이 정의되지 않았거나 존재하지 않음'을 의미하며, 0이나 빈 문자열('')과는 다르다.



출처: https://lovedb.tistory.com/348 [More haste, less speed]

 

참조: https://www.sqlite.org/draft/datatype3.html

반응형
Posted by blueasa
, |
반응형

'Programming > Shader' 카테고리의 다른 글

HLSL 내장함수  (0) 2012.06.25
쉐이더(Shader) 2.0 3.0 차이  (0) 2012.06.25
Posted by blueasa
, |
반응형
Posted by blueasa
, |

(http://link2me.tistory.com 에서 발췌)

기타 : split를 string문자열로 자를때 word_1.Split(new string[] {"\\"}, StringSplitOptions.None) C# Split함수의 경우 직접 문자열을 구분자로 줄수 없다.

Split 은 기본적으로 문자를 입력 받도록 되어 있다. 문자열을 char[]형식으로 변경 후 사용 가능하다.

 

string str = "서울시/서초구/양재동";
string[] result = str.Split(new char[] { '/' });  // /   열 result  라.
for (int i = 0; i < result.Length ; i++)  // 은 0  며,   
{
    MessageBox.Show(i + "번째 배열 ==> " + result[i]);
}

 

string str = "jsk005@naver.com";
char[] sp ="@".ToCharArray();
string[] result = str.Split(sp);
for (int i = 0; i < result.Length; i++)
{
    MessageBox.Show(i + "번째 배열 ==> " + result[i]);
}

 

string str = "홍 길 동";
string[] result = str.Split(new char[] {' '});  // new char[] {}  도 공백으로 나눈다는 의미
for (int i = 0; i < result.Length; i++)
{
    MessageBox.Show(i + "번째 배열 ==> " + result[i]);
}

 

위의 예제와 아래 예제의 차이점을 보면 split  자(char)  열(string)이다. 

string 으로 할 경우에는 반드시 StringSplitOptions.None 또는 StringSplitOptions.RemoveEmptyEntries 까지 추가해줘야만 에러가 발생하지 않는다. 물론 위의 것도 StringSplitOptions 를 추가해줘도 된다.

 

string str = "홍길동~~~이순신~~~강감찬~~~을지문덕";
string[] result = str.Split(new string[] {"~~~"}, StringSplitOptions.None);
for (int i = 0; i < result.Length; i++)
{
    MessageBox.Show(i + "번째 배열 ==> " + result[i]);
}

string[] separator = new string[1] { "\r\n\r\n" };  //분리할 기준 문자열
string[] strResult = s.Split(separator, StringSplitOptions.RemoveEmptyEntries);

  

* StringSplitOptions.None  //     

* StringSplitOptions.RemoveEmptyEntries  // 반환값에 빈 부분 문자열 포함 안됨

 

foreach (string strValue in strResult)
{
    
}

또는 

for (var i =0 ; i < strResult.Length ; i++) 

{

}

 

//구     

string str = "[stop]ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]";
string[] stringSeparators = new string[] { "[stop]" };
string[] result = str.Split(stringSeparators, StringSplitOptions.None);

for (int i = 0; i < result.Length; i++)
{
    if (String.IsNullOrEmpty(result[i]))  //  null  
    {
        MessageBox.Show("null" + result[i]);
    }
    else
    {
        MessageBox.Show(i + "번째 배열 ==> " + result[i]);
    }                
} 

 

아래와 같이StringSplitOptions.RemoveEmptyEntries 으로 수정하면 결과가 어떻게 나올까?

string str = "[stop]ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]";
string[] stringSeparators = new string[] { "[stop]" };
string[] result = str.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries);  

// 반환값에 빈 부분 문자열 포함 안됨
for (int i = 0; i < result.Length; i++)
{
    if (String.IsNullOrEmpty(result[i]))
    {
        MessageBox.Show("null" + result[i]);
    }
    else
    {
        MessageBox.Show(i + "번째 배열 ==> " + result[i]);
    }                
} 

결과는 null 이나 공백은 무시되므로 배열은 0, 1, 2 만 추출된다.



   

System.Text.RegularExpressions.Regex.Split(자를 문자열, 정규식 문자열)

using System;
using System.Text.RegularExpressions;

 

string str = "cat\r\ndog\r\nanimal\r\nperson";
string[] result = Regex.Split(str, "\r\n");
for (int i = 0; i < result.Length; i++)
{
    MessageBox.Show(i + "번째 배열 ==> " + result[i]);
} 



포함된 문자열의 개수 구하기
int
 count = source.Split('/').Length - 1;

 

[출처] http://hunq.blogspot.com/2016/09/c-split.html

반응형
Posted by blueasa
, |

[Link] https://github.com/Yortw/Yort.Ntp

반응형
Posted by blueasa
, |


[링크] https://xtasy.tistory.com/665

반응형
Posted by blueasa
, |

C# WinForm "인증서 저장소에서 매니페스트 서명 인증서를 찾을 수 없습니다."

예전에 작업 했던 소스를 불러오면 에러 한두개 쯤은 당연하게 뜬다.
이번에는 "인증서 저장소에서 매니페스트 서명 인증서를 찾을 수 없습니다." ... 가 뜬다.


이건 찾아보니 그냥 ClickOnce 설정만 지워주면 된다고 한다.

"프로젝트" > "속성" 에서....


"서명" 탭의 "ClickOnce 매니페스트 서명" 의 체크를 해제 한다.


나의 경우는 이것만 해도 해결이 되었지만...
"보안" 탭에도 "ClickOnce 보안 설정 사용" 이라는 항목이 있는데, 이것도 해제해 주자.


이렇게 하면 일단 잘 실행이 된다.



[출처] http://son10001.blogspot.com/2015/03/c-winform_26.html

반응형

'Programming > WinForm' 카테고리의 다른 글

Load a Cursor from a Resources in C#  (0) 2014.11.07
BackGroundWorker 예제 ( Thread 대용품 )  (0) 2014.11.04
BackgroundWorker 클래스  (0) 2014.11.04
쓰레드 선호도 (Thread Affinity)  (0) 2014.11.03
Cursors in C#  (0) 2014.11.03
Posted by blueasa
, |
반응형
Posted by blueasa
, |

[출처] https://code.i-harness.com/ko-kr/q/5184a7

 

 

 

나는 @"^([\w\.\-]+)@([\w\-]+)((\.(\w))+)$" 가 효과가 있다고 생각합니다. 
당신은 그것을 쓸 필요가 있습니다.

string email = txtemail.Text;
Regex regex = new Regex(@"^([\w\.\-]+)@([\w\-]+)((\.(\w))+)$");
Match match = regex.Match(email);
if (match.Success)
    Response.Write(email + " is correct");
else
    Response.Write(email + " is incorrect");

다음 경우에 실패 할 것이라고 경고하십시오.

  1. @ 기호 다음에 하위 도메인이 있습니다.
  2. .info 와 같이 길이가 3보다 큰 TLD를 사용합니다.
 Question

나는 이것을 사용한다.

@"^([\w\.\-]+)@([\w\-]+)((\.(\w))+)$"

전자 우편의 유효성을 검사하는 regexp

([\w\.\-]+) - 첫 번째 수준 도메인 (많은 문자와 숫자, 점과 하이픈) 

([\w\-]+) - 두 번째 수준 도메인 용입니다. 

((\.(\w))+) 와)과 2 또는 3 리터럴을 포함하는 다른 레벨 도메인 (3에서 무한대까지)에 대한 것 ((\.(\w))+) 

이 정규식에 무슨 문제가 있습니까?

편집 : 그것은 "something@someth.ing"이메일과 일치하지 않습니다




 

Regex.IsMatch ()를 사용하고 있습니다.

우선 다음 문을 추가해야합니다.

using System.Text.RegularExpressions;

그런 다음 메서드는 다음과 같습니다.

private bool EmailValidation(string pEmail)
{
                 return Regex.IsMatch(pEmail,
                 @"^(?("")("".+?(?<!\\)""@)|(([0-9a-z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-z])@))" +
                 @"(?(\[)(\[(\d\.)\d\])|(([0-9a-z][-\w]*[0-9a-z]*\.)+[a-z0-9][\-a-z0-9][a-z0-9]))$",
                 RegexOptions.IgnoreCase, TimeSpan.FromMilliseconds(250));
}

그것은 내 논리 때문에 개인적인 방법이지만 "유틸리티"와 같은 다른 레이어에 정적으로 메서드를 넣고 필요한 곳에서 메서드를 호출 할 수 있습니다.




 

MSDN에 좋은 문서가 있습니다.

방법 : 문자열이 유효한 전자 메일 형식인지 확인 here (이 코드는 인터넷 도메인 이름에 비 ASCII 문자를 사용할 수도 있습니다. )

.NET 2.0 / 3.0 및 .Net 3.5 이상에서는 2 가지 구현이 있습니다. 
2.0 / 3.0 버전은 다음과 같습니다.

bool IsValidEmail(string strIn)
{
    // Return true if strIn is in valid e-mail format.
    return Regex.IsMatch(strIn, @"^([\w-\.]+)@((\[[0-9]\.[0-9]\.[0-9]\.)|(([\w-]+\.)+))([a-zA-Z]|[0-9])(\]?)$"); 
}

이 방법에 대한 내 테스트는 다음을 제공합니다.

Invalid: @majjf.com
Invalid: A@b@c@example.com
Invalid: Abc.example.com
Valid: j..s@proseware.com
Valid: j.@server1.proseware.com
Invalid: js*@proseware.com
Invalid: js@proseware..com
Valid: ma...ma@jjf.co
Valid: ma.@jjf.com
Invalid: ma@@jjf.com
Invalid: ma@jjf.
Invalid: ma@jjf..com
Invalid: ma@jjf.c
Invalid: ma_@jjf
Invalid: ma_@jjf.
Valid: ma_@jjf.com
Invalid: -------
Valid: 12@hostname.com
Valid: d.j@server1.proseware.com
Valid: david.jones@proseware.com
Valid: j.s@server1.proseware.com
Invalid: j@proseware.com9
Valid: j_9@[129.126.118.1]
Valid: jones@ms1.proseware.com
Invalid: js#internal@proseware.com
Invalid: js@proseware.com9
Invalid: js@proseware.com9
Valid: m.a@hostname.co
Valid: m_a1a@hostname.com
Valid: ma.h.saraf.onemore@hostname.com.edu
Valid: ma@hostname.com
Invalid: ma@hostname.comcom
Invalid: MA@hostname.coMCom
Valid: ma12@hostname.com
Valid: ma-a.aa@hostname.com.edu
Valid: ma-a@hostname.com
Valid: ma-a@hostname.com.edu
Valid: ma-a@1hostname.com
Valid: ma.a@1hostname.com
Valid: ma@1hostname.com



 

다음 코드는 github 에 대한 Microsoft의 데이터 주석 구현을 기반으로하며 전자 메일에 대한 가장 완전한 유효성 검사라고 생각합니다.

public static Regex EmailValidation()
{
    const string pattern = @"^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$";
    const RegexOptions options = RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture;

    // Set explicit regex match timeout, sufficient enough for email parsing
    // Unless the global REGEX_DEFAULT_MATCH_TIMEOUT is already set
    TimeSpan matchTimeout = TimeSpan.FromSeconds(2);

    try
    {
        if (AppDomain.CurrentDomain.GetData("REGEX_DEFAULT_MATCH_TIMEOUT") == null)
        {
            return new Regex(pattern, options, matchTimeout);
        }
    }
    catch
    {
        // Fallback on error
    }

    // Legacy fallback (without explicit match timeout)
    return new Regex(pattern, options);
}



 

C #에서 REGEX 메서드를 사용하여 STRING 검색

정규 표현식으로 전자 메일의 유효성을 검사하는 방법

string EmailPattern = @"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*";
if (Regex.IsMatch(Email, EmailPattern, RegexOptions.IgnoreCase))
{
    Console.WriteLine("Email:  is valid.", Email);
}
else
{
    Console.WriteLine("Email:  is not valid.", Email);
}

Reference String.Regex () 메서드 사용




 
string patternEmail = @"(?<email>\w+@\w+\.[a-z])";
Regex regexEmail = new Regex(patternEmail);



 

이 코드는 C #에서 정규식을 사용하여 전자 메일 ID의 유효성을 검사하는 데 도움이됩니다. 닷넷 .. 사용하기 쉽습니다.

if (!System.Text.RegularExpressions.Regex.IsMatch("<Email String Here>", @"^([\w\.\-]+)@([\w\-]+)((\.(\w))+)$"))
        {
            MessageBox.show("Incorrect Email Id.");
        }



 

위 응답의 조합. MailAddress를 사용하는 Microsoft의 선호하는 방법을 사용하지만 문자열의 확장으로 구현합니다.

public static bool IsValidEmailAddress(this string emailaddress)
    {
        try
        {
            MailAddress m = new MailAddress(emailaddress);
            return true;
        }
        catch (FormatException)
        {
            return false;
        }
    }

그런 다음 모든 문자열을 이메일 주소로 확인하십시오.

string customerEmailAddress = "bert@potato.com";
customerEmailAddress.IsValidEmailAddress()

깨끗하고 간편한 휴대용. 누군가가 도움이되기를 바랍니다. 전자 메일의 정규식은 지저분합니다.

MattSwanson은이 주제에 대한 블로그를 갖고 있으며 정규식을 사용하지 말고 대신 '@'abd를 입력하는 것이 좋습니다. 여기에서 그의 설명을 읽으십시오 : https://mdswanson.com/blog/2013/10/14/how-not-to-validate-email-addresses.html




 

나는 당신의 캐럿과 달러 기호가 문제의 일부라고 생각한다. 정규 표현식을 약간 수정해야한다. 나는 다음 @ "[:] + ([\ w .-] +) @ ([\ w -.]) + ((. (\ w) ) +) "




 

크기에 대해 사용해보십시오.

public static bool IsValidEmailAddress(this string s)
{
    var regex = new Regex(@"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?");
    return regex.IsMatch(s);
}



 
public static bool ValidateEmail(string str)
{                       
     return Regex.IsMatch(str, @"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*");
}

위 코드를 사용하여 전자 메일 주소의 유효성을 검사합니다.




 

이것은 지금까지 내가 좋아하는 접근 방식입니다.

public static class CommonExtensions
{
    public static bool IsValidEmail(this string thisEmail)
        => !string.IsNullOrWhiteSpace(thisEmail) &&
           new Regex(@"^([\w\.\-]+)@([\w\-]+)((\.(\w))+)$").IsMatch(thisEmail);
}

그런 다음 생성 된 문자열 확장자를 다음과 같이 사용하십시오.

if (!emailAsString.IsValidEmail()) throw new Exception("Invalid Email");



 

이 기능을 사용해보십시오.

public bool IsValidEmailAddress(string s)
{
    if (string.IsNullOrEmpty(s))
        return false;
    else
    {
        var regex = new Regex(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*");
        return regex.IsMatch(s) && !s.EndsWith(".");
    }
}



 

최고의 이메일 검증 정규식

[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?

그리고 그것의 사용법 : -

bool isEmail = Regex.IsMatch(emailString, @"\A(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\Z", RegexOptions.IgnoreCase);
 

 

반응형
Posted by blueasa
, |

[링크]

https://github.com/HyegeunCho/hgcho-phaser/wiki/1.-HTML5-%EB%AA%A8%EB%B0%94%EC%9D%BC-%EC%9B%B9-%EA%B2%8C%EC%9E%84%3F

반응형
Posted by blueasa
, |