프로젝트 간에 함수 호출
Visual Studio에서 두 개의 프로젝트를 추가하고 프로젝트 간에 함수 호출을 가능하게 하려면, 다음 단계를 따라야 합니다: ProjectA에서 함수 호출: 이 단계를 따르면 Visual Studio에서 두 개의 프로젝트 간에 함수 호출이 가능해집니다.
Visual studio 2022 에서 MFC 개발환경 설정
Overview : 옵션이 빠져 있으면 클래스는 제공 되지 않고 Win 32 API 만 제공 된다. 1.추가 도구 및 기능 설치 2.새 프로젝트 만들기 3. 새 프로젝트 구성 4. MFC 애플리케이션 5. 마침 6. 실행
Parallel.ForEach 속도
Overview : 2000만개 자연수중 소수 찾기 속도 사용법 : Sample :
Scintilla
Remark : Scintilla 오픈 소스 Net에서 사용하기 1.Nuget에서 패키지 다운로드 2.Net Demo 다운로드 3.Net Demo 실행화면
placeholder 기능 쓰기
input textbox 제목을 textbox 안에 간단히 표시해보자 적용소스
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
<!doctype html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Placeholdem // Placeholder Caret Animation</title> <link href="assets/css/style.min.css" rel="stylesheet"> <link href="assets/images/favicon.ico" rel="shortcut icon" type="image/x-icon"> </head> <body> <div class="container"> <h3 class="fade">placeholder</h3> <form> <label class="fade"> <input name="field1" placeholder="제목을 입력하세요." /> <div class="arrow"></div> </label> <label class="fade"> <textarea name="field2" placeholder="내용을 입력하세요."></textarea> <div class="arrow"></div> </label> </form> <script src="placeholdem.min.js"></script> <script> Placeholdem( document.querySelectorAll( '[placeholder]' ) ); var fadeElems = document.body.querySelectorAll( '.fade' ), fadeElemsLength = fadeElems.length, i = 0, interval = 50; function incFade() { if( i < fadeElemsLength ) { fadeElems[ i ].className += ' fade-load'; i++; setTimeout( incFade, interval ); } } setTimeout( incFade, interval ); </script> </body> </html> |
git hub : https://github.com/jackrugile/placeholdem
정규식 이용하여 문자열 패턴 가져오기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
' 정규식 이용하여 문자열 패턴 가져오기 pattern0 = "[^가-?]" '한글만 pattern1 = "[^-0-9 ]" '숫자만 pattern2 = "[^-a-zA-Z]" '영어만 pattern3 = "[^-가-?a-zA-Z0-9/ ]" '숫자와 영어 한글만 pattern4 = "<[^>]*>" '태그만 pattern5 = "[^-a-zA-Z0-9_/ ]" '영어 숫자만 (-_ 포함) Function Word_check(str,patrn) Dim regEx, match, matches SET regEx = New RegExp regEx.Pattern = patrn ' 패턴을 설정합니다. regEx.IgnoreCase = True ' 대/소문자를 구분하지 않도록 합니다. regEx.Global = True ' 전체 문자열을 검색하도록 설정합니다. SET Matches = regEx.Execute(str) If 0 < Matches.count Then Word_check = false Else Word_check = true End if End Function Dim pattern1_True '숫자만 pattern1_True = Word_check(ID, pattern1) if pattern1_True="True" then '로직 end if |
asp 디비 접속하여 Rs 레코드 가져오기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<!--#include file="../dbconn.asp"--> <% call dbconn_sub '디비연결' strSQL = "Select top 1 id, mail from board where idx = '"&id&"' and mail ='" & email & "'" SET Rs=db.Execute(strSQL) if (Rs.BOF or Rs.EOF) then response.write "데이타가 없습니다." else response.write Rs("id") response.write Rs("mail") Rs.close : set Rs = nothing end if '/// DB접속끊기 db.close : set db=nothing %> |
E-메일 형식 javascript
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
function EmailCheck(){ var check2 = /^[a-zA-Z0-9\-\.\_]+\@[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,6})$/; if (document.Input.txtemail.value ==""){ alert("글 작성시 Email을 입력해 주십시오."); document.Input.email.focus; return 0; } if ( check2.test(document.Input.txtemail.value)) { } else { alert("E-메일이 형식에 맞지 않습니다.\n\n 확인바랍니다."); document.Input.email.focus; return 0; } } |
IP 국가 리스트 편하기 검색하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
USE [ipv] GO /****** Object: Table [dbo].[ipv4_KR] Script Date: 2020-05-18 오후 5:12:30 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[ipv4_KR]( [IDX] [int] NOT NULL, [Standard_Date] [varchar](20) NOT NULL CONSTRAINT [DF_ipv4_KR_Standard_Date] DEFAULT (''), [Cuntry_Code] [varchar](10) NOT NULL CONSTRAINT [DF_ipv4_KR_Cuntry_Code] DEFAULT (''), [Start_IP_Number] [float] NOT NULL CONSTRAINT [DF_ipv4_KR_Start_IP_Number] DEFAULT ((0)), [End_IP_Number] [float] NOT NULL CONSTRAINT [DF_ipv4_KR_End_IP_Number] DEFAULT ((0)), [Start_IP] [varchar](20) NOT NULL CONSTRAINT [DF_ipv4_KR_Start_IP] DEFAULT (''), [End_IP] [varchar](20) NOT NULL CONSTRAINT [DF_ipv4_KR_End_IP] DEFAULT (''), [PREFIX] [varchar](20) NOT NULL CONSTRAINT [DF_ipv4_KR_PREFIX] DEFAULT (''), [Regi_Date] [varchar](20) NOT NULL CONSTRAINT [DF_ipv4_KR_Regi_Date] DEFAULT (''), CONSTRAINT [PK_ipv4_KR] PRIMARY KEY CLUSTERED ( [IDX] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
----------------------------------------------------------------------------------------------------------- -- Split 유형의 함수 -- 문자열에서 구분자(@iSeparator)로 몇번째 단어 가져오기 -- 예: SELECT 데이터베이스명.소유자명.fn_GetIdxDataLikeSplit('가-나-다',2,'-') --> '나' ----------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------- -- 프로시저 생성 ----------------------------------------------------------------------------------------------------------- Alter FUNCTION [dbo].[fn_GetIdxDataLikeSplit] ( @iText VARCHAR(200), @idx INT, @iSeparator VARCHAR(10) = '.' ) RETURNS VARCHAR(200) AS BEGIN DECLARE @wData VARCHAR(200) DECLARE @wText VARCHAR(200) DECLARE @wSeparator VARCHAR(10) DECLARE @wNum INT SET @wData = '' SET @wNum = 1; SET @wSeparator = LTRIM(RTRIM(@iSeparator)); SET @wText = LTRIM(RTRIM(@iText)) + @wSeparator; IF CHARINDEX(@wSeparator, @iText) > 0 BEGIN WHILE @idx >= @wNum BEGIN IF CHARINDEX(@wSeparator, @wText) > 0 BEGIN -- 문자열의 인덱스 위치의 요소를 반환 SET @wData = SUBSTRING(@wText, 1, CHARINDEX(@wSeparator, @wText) - 1); SET @wData = LTRIM(RTRIM(@wData)); -- 반환된 문자는 버린후 좌우공백 제거 SET @wText = LTRIM(RTRIM(RIGHT(@wText, LEN(@wText) - (LEN(@wData) + LEN(@iSeparator))))) END ELSE BEGIN SET @wData = '' END SET @wNum = @wNum + 1 END END ELSE BEGIN SET @wData = @iText END -- HEO ADd if Len(@wData) =1 begin Set @wData = '00' + @wData end else if(Len(@wData) =2) begin Set @wData = '0' + @wData end RETURN(@wData) END |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
Declare @IDX int Declare @Start_IP varchar(20), @End_IP varchar(20) Declare @Start_IP_01 varchar(3),@Start_IP_02 varchar(3),@Start_IP_03 varchar(3),@Start_IP_04 varchar(3) Declare @End_IP_01 varchar(3),@End_IP_02 varchar(3),@End_IP_03 varchar(3),@End_IP_04 varchar(3) Declare con_cursor cursor for SELECT IDX, Start_IP, End_IP FROM [IBE_Basic_Code].[dbo].[ipv4_KR] open con_cursor --커스를 연다. fetch next from con_cursor into @IDX, @Start_IP, @End_IP while (@@fetch_status <>-1) begin if (@@fetch_status = -2) continue begin Set @Start_IP_01 = [dbo].[fn_GetIdxDataLikeSplit](@Start_IP,1,'.') Set @Start_IP_02 = [dbo].[fn_GetIdxDataLikeSplit](@Start_IP,2,'.') Set @Start_IP_03 = [dbo].[fn_GetIdxDataLikeSplit](@Start_IP,3,'.') Set @Start_IP_04 = [dbo].[fn_GetIdxDataLikeSplit](@Start_IP,4,'.') Set @End_IP_01 = [dbo].[fn_GetIdxDataLikeSplit](@End_IP,1,'.') Set @End_IP_02 = [dbo].[fn_GetIdxDataLikeSplit](@End_IP,2,'.') Set @End_IP_03 = [dbo].[fn_GetIdxDataLikeSplit](@End_IP,3,'.') Set @End_IP_04 = [dbo].[fn_GetIdxDataLikeSplit](@End_IP,4,'.') update [IBE_Basic_Code].[dbo].[ipv4_KR] set Start_IP_Number = CONVERT(numeric, @Start_IP_01 + @Start_IP_02 + @Start_IP_03 + @Start_IP_04) ,End_IP_Number = CONVERT(numeric, @End_IP_01 + @End_IP_02 + @End_IP_03 + @End_IP_04) where IDX = @IDX end fetch next from con_cursor into @IDX, @Start_IP, @End_IP end close con_cursor Deallocate con_cursor |