투케이2K

217. (kotlin/코틀린) [유틸 파일] stringToBcdFormat : 문자열 >> BCD 포맷 바이트 반환 실시 본문

Kotlin

217. (kotlin/코틀린) [유틸 파일] stringToBcdFormat : 문자열 >> BCD 포맷 바이트 반환 실시

투케이2K 2023. 3. 1. 10:57

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

        // -----------------------------------------------------------------------------------------
        // TODO [SEARCH FAST] : [stringToBcdFormat] : 문자열 >> BCD 포맷 바이트 반환
        // -----------------------------------------------------------------------------------------
        fun stringToBcdFormat(data: String): ArrayList<Byte>? {

            /**
             * // -----------------------------------------
             * [stringToBcdFormat 메소드 설명]
             * // -----------------------------------------
             * 1. 문자열 >> BCD 포맷 바이트 반환
             * // -----------------------------------------
             * 2. 호출 방법 : C_Encryption.stringToBcdFormat("2000")
             * // -----------------------------------------
             * 3. 리턴 데이터 :
             * 헥사 : 0x20 0x00
             * 바이트 : [32, 0]
             * // -----------------------------------------
             */


            // [리턴 데이터 변수 선언 실시]
            var returnData: ArrayList<Byte>? = null
            var strData = data
            var hex = ""


            // [로직 처리 실시]
            try {

                // [널 판단 및 정수 구성 여부 판단 실시]
                if (C_Util.stringNotNull(strData) === true && C_Util.stringIsNumber(strData) === true) { // [널이 아닌 경우]

                    // [문자열 추가 설정]
                    if (strData.length % 2 == 0) { // [짝수로 나누어 떨어지는 경우]
                    }
                    else { // [홀수 인 경우]
                        strData = "0$strData" // [짝수로 만듦]
                    }


                    // [for 문을 수행하면서 2글자씩 잘라서 hex 문자열 값으로 변경]
                    var i = 0
                    while (i < strData.length) {
                        val sub = i + 2
                        hex = hex + " " + "0x" + strData.substring(i, sub)
                        i += 2
                    }


                    // [hex string to byte 변환]
                    returnData = hexStringToByteArray(hex)
                }
            } catch (e: Exception) {
                e.printStackTrace()
            }


            // [로그 출력 실시]
            ///*
            S_Log.ltd("================================================")
            S_Log.cnt("[" + ACTIVITY_NAME + " >> " + C_Util.getNowMethod(1) + " :: 문자열 >> BCD 포맷 바이트 반환 실시]")
            S_Log.cnt("-----------------------------------------")
            S_Log.cnt("[INPUT :: $data]")
            S_Log.cnt("-----------------------------------------")
            S_Log.cnt("[HEX :: $hex]")
            S_Log.cnt("-----------------------------------------")
            S_Log.cnt("[RETURN :: " + returnData.toString() + "]")
            S_Log.lbd("================================================")
            // */


            // [리턴 데이터 반환 실시]
            return returnData
        }
 

[결과 출력]

 

D///===========//: ================================================
I/: [C_Encryption >> stringToBcdFormat :: 문자열 >> BCD 포맷 바이트 반환 실시]
I/: -----------------------------------------
I/: [INPUT :: 2000]
I/: -----------------------------------------
I/: [HEX ::  0x20 0x00]
I/: -----------------------------------------
I/: [RETURN :: [32, 0]]
D///===========//: ================================================

 
반응형
Comments