본문 바로가기
카테고리 없음

gsjava 개발시 맨날 검색하는 내용

by 철권 2022. 6. 20.
728x90

퓨쳐텍정보통신 보안 연구소

1은 참(true)이고, 0은 거짓(false)으로 처리됩니다
Visual Studio Code에서 자동으로 코드 정렬하기

ctrl + k + f 

 - 컨트롤에 있는 값을 변수로 넣어 갱신하고 싶을 때에는 UpdateData(TRUE) 사용

  - 변수에 있는 값을 컨트롤에 넣어 갱신하고 싶을 때에는 UpdateData(FALSE) 사용

 

Active Directory MFC 소스 다운

코드 프로젝트

Simple Active Directory Browsing

*. 타이머 사용

    *.***. javascript

function sayHi() {
  alert('안녕하세요.');
}
*1초에 한번씩 함수 실행
timerId = setTimeout(sayHi, 1000);

* 완료시 타이머 종료

clearTimeout(timerId);

 

*. 문자열 자르기

     *.**. java 

//사용법
String.substring(start) //문자열  start위치부터 끝까지 문자열 자르기
String.substring(start,end) //문자열  start위치 부터 end전까지 문자열 발췌
		

//예제
String str = "ABCDEFG"; //대상 문자열
/*A=0 B=1 C=2 D=3 E=4 F=5 G=6의 index를 가진다.*/
		
str.substring(3); 
/*substring(시작위치) 결과값 = DEFG*/

str.substring(3, 6); 
/*substring(시작위치,끝위치) 결과값 = DEF*/

 

*. 문자열 포함 확인하기

    *.*. MFC

     int nIndex = 0;
     CString strDate( "2013-12-16" );

     nIndex = str.Find( '0' );
     printf( "%d\n", nIndex );

     *.**. java 

// contains를 이용한 방법(true, false 반환)
if(txt1.contains("나다")) {
    System.out.println("문자열 있음!");
} else {
    System.out.println("문자열 없음!");
}

    *.***. javascript

  - indexOf 이용

var stringVal = "javascript",
    substring = "java";
stringVal.indexOf(substring) !== -1;
 

javascript의 기본객체인 string의 indexOf를 이용하는 방법

 

포함하고 있는 문자의 인덱스를 반환한다.

 

만약 문자를 가지고 있지 않으면 -1을 반환한다.

 
*. UI 값 얻기
MFC Edit 박스 아이로 값 가져오기
SetDlgItemText(IDC_ADDR_EDIT,strHost);
GetDlgItemText(IDC_ADDR_EDIT,strHost);
 
 
*. 변수 초기화

    1.1. javascript

- 배열 초기화
let arr = [1, 2, 3];

arr = [];
 

*. 형변환

 -2.1 MFC

* 이렇게 하면 CString 문자열을 알어서 변환해준다.
CStringA strA = CStringA(strChHost);
char *pChar = strA.GetBuffer();

//CString => wstring
std::wstring wstr = L"wstring문자열";
wstr = cstr.operator LPCWSTR();

- wstring to wchart_t 
std::wstring wStr;
const wchar_t *input = wStr.c_str();

- CString -> char *

CString str;
str = "test";
char* st = LPSTR(LPCTSTR(str));

- char * to std::string

char c[256] = "Hi there";

std::string str(c);  // OR std::string str = c;

- unsigned char* to string

unsigned char* dec_outputKey2;

std::string strData( reinterpret_cast< char const* >(dec_outputKey2) ) ;

- std::string  to char *

std::string str = "string";
char* chr = str;

* 제일 중요한 내용 wstring로 저장한 변수는 char로 변경할 경우 
std::wcstombs(buffersessionKey, inputsessionKey, size); 이렇게 한번더 변환이 필요하다 ㅠ.ㅠ

 

3. 암호화

    3.1. java 

- sha-256
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class SHA256 {

    public String encrypt(String text) throws NoSuchAlgorithmException {
        MessageDigest md = MessageDigest.getInstance("SHA-256");
        md.update(text.getBytes());

        return bytesToHex(md.digest());
    }

    private String bytesToHex(byte[] bytes) {
        StringBuilder builder = new StringBuilder();
        for (byte b : bytes) {
            builder.append(String.format("%02x", b));
        }
        return builder.toString();
    }

}
 - 파일을 읽어서 sha-256
public static void sha(String a) throws Exception{
        MessageDigest md = MessageDigest.getInstance("SHA-256");
        FileInputStream fis = new FileInputStream(a);
        
        byte[] dataBytes = new byte[1024];
     
        int nread = 0; 
        while ((nread = fis.read(dataBytes)) != -1) {
          md.update(dataBytes, 0, nread);
        };
        byte[] mdbytes = md.digest();
     
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < mdbytes.length; i++) {
          sb.append(Integer.toString((mdbytes[i] & 0xff) + 0x100, 16).substring(1));
        }
 
        System.out.println("SHA-256 : " + sb.toString());
        
    }

3. 시간차 구하기

  3.1. java 

SimpleDateFormat f = new SimpleDateFormat("HH:mm:ss", Locale.KOREA); Date d1 = f.parse("01:05:10"); Date d2 = f.parse("01:05:07"); long diff = d1.getTime() - d2.getTime(); long sec = diff / 1000; System.out.println(sec);
1000밀리초는 1초니까, getTime()으로 구한 값을 1000으로 나누면 초를 얻습니다.

4. For 문

 

6. 문자열 저장하기

  6.1. MFC

std::vector<std::string> v;
v.push_back( "Some string" );

      or

v.insert( v.end(), "Some string" );

7. 문자열 공백제거

    6.1. javascript

    let str1 = " 문자열의 앞 뒤 공백 제거하기    ";

    document.write(str1.trim());

7. 문자열 길이

    7.1. javascript

  - let str1 = 'abc';
- document.write(str1.length);
-결과 : 3

8. 문자열 비교

    8.1. java

    str1.equals(str3) : true 

    8.2. javascript

'=='와 '==='의 차이 

  • '=='는 비교하는 두 개의 값(피연산자)을 강제로 같은 형으로 변환한 후, 비교를 수행합니다.
    즉, 두 값의 타입이 다르더라도, 형 변환된 값이 같다면 true를 리턴합니다.
  • '==='는 비교하는 두 개의 값(피연산자)의 타입과 값이 모두 같을 경우에만, true를 리턴합니다.

9.배열 선언

9.1. javascript

let arr1 = [];
let arr2 = new Array();

 

10.변수 선언

10.1. javascript

 - var, let, const 차이

var name = 'bathingape'
    console.log(name) // bathingape

    var name = 'javascript'
    console.log(name) // javascript

var는 선언이 중복되도 오류가 없이 실행이 된다. 이래서 중간에 중복 선언이 되면 값이 왜 바뀌는지 알수가 없다. 테스트 용으로만 사용할것

let는 중복 선언이 되지 않지만 값을 바꾸어서 저장 가능하다.

const는 중복 선언이 되지 않고 값도 바꿀 수 없다.  

코딩시 적절한 선택이 필요한다.

8. 문자열 형변환

 8.1 C++ 형변환

CString cstring(_T("CString::CStringT")); 

std::string str("std::string"); 

std::wstring wstr(_T("std::wstring")); 

// std::string <-- CString

str = std::string(CT2CA(cstring.operator LPCWSTR())); 

// std::wstring <-- CString

wstr = std::wstring(cstring.operator LPCWSTR()); 

// CString <-- std::string

cstring = CString::CStringT(CA2CT(str.c_str())); 

// CString <-- std::wstring

cstring = CString::CStringT(wstr.c_str()); 

// std::string <-- std::wstring

str = std::string(CT2CA(wstr.c_str())); 

// std::wstring <-- std::string

wstr = std::wstring(CA2CT(str.c_str())); 

 

 

11. mysql 접속하기

 

12. log 출력 on/off

12.1. javascript

var orgConsole = console;
var orgLog = console.log;    
console.off = function() {      
    this.log = function() {}
}
console.on = function() {      
    this.log = orgLog    
}
전역으로 선역하고 
console.off()
하면 더이상 로그 출력이 되지 않는다. 다시 출력 하고 싶으면
console.on()
728x90
반응형