Language (30)

C# / ini 파일 읽기 및 쓰기: kernel32 사용하지 않고

프로그램을 개발하다 보면 사용자 환경을 저장하는 설정 파일을 읽거나 쓰는 경우가 발생한다. 그중 많이 사용되는 방법 중 하나가 .ini 파일을 사용하는 방법이며, .ini 파일은 일정한 문법적인 구조에 따라 작성된다. 물론, 아직도 레지스트리에 프로그램의 설정을 저장하는 경우도 많이 사용되지만, Window 운영체제의 보안 강화로 인해 레지스트리의 접근은 더 이상 자유롭지 못하다. 이러한 이유로 본인은 .ini 파일을 선호한다. 1. kernel32 사용하는 방법 C# 언어로 프로그램을 개발하는데 있어서, WIN API를 사용하는 것은 반갑지 않다. 하지만 무작정 피해 갈 수도 없는 노릇이다. 본인은 가급적 피해 갈 수 있는 방향으로 개발을 하지만 어쩔 수 없는 경우도 존재한다. 먼저 kernel32.D..

Language/C# | 2019.07.25 01:21

WPF / XAML 코드로 현재 시간 얻는 방법

WPF에서는 VB, C#와 같은 비하인드 소스코드와 XAML 파일로 하나의 개발 화면이 구성된다. 이와 같은 특성으로 인해 현재 시간 값을 표시하는 다양한 방법이 존재한다. 본 포스팅에서는 비하인드 소스코드에서 현재시간을 가져오는 방법이 아닌 XAML 코드에서 직접 현재시간을 가져오는 방법을 소개한다. 1. 최상위 속성에 키워드 추가 xmlns:wookoa="clr-namespace:System;assembly=mscorlib" 2. 현재 시간 바인딩 위와 같이 간단한 방법으로 XAML 코드에서도 직접 현재 시간을 표현할 수 있다. 사실 본인은 위와 같은 방법으로 시간을 표현하면 자동으로 실시간 표현이 가능할 줄 알았는데, 화면이 디자인되는 순간의 시간만 표현하고 실시간으로 반영은 안 된다. 그래서 코드..

Language/WPF | 2019.07.23 22:11

[C#] 파일경로 추출하기(파일명/확장자/파일경로)

파일의 전체 경로에서 파일명만 필요한 경우가 있다. 또한 파일의 경로만 필요한 경우도 있다. C#에서는 파일명을 둘러싼 여러가지 경우를 고려해서 유용한 함수를 제공한다. 본 포스팅에서는 파일명과 확장자, 파일 경로를 간단한 함수 호출만으로 구할 수 있는 방법을 소개한다. # 전체 경로 추출 1 2 3 4 5 6 7 8 9 10 11 12 13 using System; namespace ConsoleApp1 { class Program { static void Main(string[] args) { string filePath = @"C:\Users\wookoa\Pictures\signature.png"; Console.WriteLine(System.IO.Path.GetFullPath(filePath));..

Language/C# | 2019.02.25 02:53

C# as 연산자, is 연산자 사용법

C#에서는 AS, IS 연산자가 존재한다. 형변환을 위해서 탄생한 예약어인데 알아두면 유용한 연산자이며, 타인이 작성한 코드를 무리없이 읽기 위해서도 필히 숙지해야할 연산자 중 하나이다. 본포스팅에서는 AS 연산자와 IS 연산자에 대해서 알아보도록 한다. # AS, IS 연산자의 개념 기본적으로 제공되는 int, bool, string과 같은 타입 외에도, 클래스간 캐스팅 작업이 필요한 경우가 있다. 예를들어 상속관계에 있는 두 클래스에서 자식 클래스는 부모 클래스에 대입될 수 있지만, 부모 클래스는 자식 클래스에 대입될 경우 아래와 같이 오류가 발생한다. "암시적으로 'ConsoleApp1.Program.Wookoa' 형식을 'ConsoleApp1.Program.WookoaTistory' 형식으로 변환..

Language/C# | 2019.01.21 00:24

출력형식이 클래스 라이브러리인 프로젝트는 직접 시작할 수 없습니다.

사용자 클래스 라이브러리를 추가한 뒤, 컴파일하면 아래와같은 오류 메시지가 팝업되는 경우가 있다. 이럴때 시작 프로젝트를 변경하고 참조 프로젝트를 지정함으로써 해결할 수 있다. 01. 참조하려는 프로젝트를 우클릭 후 [추가] - [참조] 버튼을 클릭 02. 팝업된 참조 관리자 화면의 [프로젝트] - [솔루션] 매뉴에서 참조할 프로젝트 선택 03. [프로젝트] - [시작 프로젝트로 설정(A)] 클릭 위와같이 두가지 설정만 해주면 사용자 클래스 라이브러리를 참조할 수 있다.

Language/WPF | 2018.10.29 23:04

'System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 어셈블리에 참조를 추가해야 합니다.

Visual Basic 프로그래밍을 하다 Rectangle 객체를 사용하려고하니 아래와 같은 오류가 발생했다. Visual Studio 툴에서 프로젝트에 참조(reference)를 추가해주면 디버깅 오류를 해결할 수 있다. 'Rectangle' 형식이 참조되지 않은 어셈블리에 정의되었습니다. 'System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 어셈블리에 참조를 추가해야 합니다. 01. 해당 프로젝트에서 [참조] - [참조추가] 버튼 클릭 02. [어셈블리] - [프레임워크]에서 'System.Drawing' 추가 위와같이 어셈플리의 프레임워크에서 System.Drawing을 추가함으로써 해당 디버깅 오류는 ..

Language/Visual Basic | 2018.10.24 11:31

자바(Java) Enum 클래스: 열거체 사용방법

모든 언어를 막론하고 프로그래밍을 하다보면 상수값을 정의해서 사용할 경우가 많다. 상수 값을 필요에 따라서 모두 선언해서 사용하면 시간이 지남에따라 관리가 힘들어지고, 소스의 가독성 또한 떨어지게 된다. 따라서, Java 프로그래밍에서는 Enum 클래스를 지원한다. Enum 클래스를 이용하면 특정한 그룹으로 상수 값을 관리할 수 있다. # Enum 클래스의 특징 -. JDK 1.5 이상부터 지원 가능 -. 열거형 클래스이며 연관된 상수들의 집합 -. 생성자의 접근제어자는 Private, Default 형이 가능하며, Private 형을 권장 -. 생성자를 통해서 객체를 생성할 수 없음 # Enum 사용 예시 1 2 3 4 5 6 7 8 public class Woo{ public static void m..

Language/Java | 2018.09.20 00:30

자바 Calendar 클래스: 현재 날짜와 시간 구하기

아주 오래된 자바 버전(JDK1.0)에서는 날짜와 관련된 클래스는 Date 클래스가 유일 했으며, 그마저 매우 간단한 기능만 처리 가능하도록 제공되었다. 현재의 자바 버전(JDK1.8)에서는 Date 클래스가 사용을 권장하지 않는 deprecated 처리되었으며, JDK 1.1부터 새롭게 제공되는 Calendar 클래스에서 날짜와 관련된 보다 강력한 기능을 수행할 수 있다. Calendar 클래스는 날짜와 관련된 기능을 제공하는 추상 클래스다. 추상 클래스로 선언된 이유는 국가마다 사용하는 날짜 체계가 다르기 때문이다. Calendar 클래스는 날짜와 시간을 처리하기 위한 다양한 필드와 메서드를 제공한다. Calendar 클래스의 모든 필드는 정적 변수(static)이므로, 객체를 생성하지 않아도 접근이..

Language/Java | 2018.09.19 00:30

Visual Basic(VB) .NET에서 디렉터리 만들기

비주얼베이직 닷넷을 기반으로한 개발 프레임웍에서 코딩할 기회가 생겼다. 개발 내용은 화면이 오픈되자마자 클라이언트의 지정된 경로에 디렉터리를 생성하는 것이다. 구글 서치를 통해서 MS의 가이드를 찾았지만, 본인이 현재 개발하고 있는 프레임웍에서는 지원되지 않았다. 결정적으로 FileSystem 객체가 존재하지 않았다. MS Guide: https://docs.microsoft.com/ko-kr/dotnet/visual-basic/developing-apps/programming/drives-directories-files/how-to-create-a-directory 그래서, 여러모로 검색을 해보니 FileSystem 객체를 생성하지 않고도 바로 접근이 가능한 함수를 찾았다. 바로 MkDir, Dir 등..

Language/Visual Basic | 2018.01.23 00:30

Android Page Sliding Example

페이지 슬라이딩 기법은 매뉴를 구성할때 주로 많이 사용된다. FrameLayout과 Animation을 사용해서 페이지 슬라이드 효과를 낼 수 있다. 버튼을 클릭하면 오른쪽에 숨어있는 Frame Layout이 나타난다. 아래의 사진은 소스를 구동했을때 보여지는 화면이다. app/res/anim 디렉터리의 translate_left.xml, translate_right.xml 파일은 각각 페이지가 왼쪽, 오른쪽으로 이동하는 애니메이션 정보를 담고있다. 애니메이션에 관련한 기초 정보는 아래의 링크에 있다. URL: http://wookoa.tistory.com/211 # MainActivity.javapackage com.example.wookoa.wookoa_17; import android.os.Bund..

Language/Android Studio | 2017.10.11 22:44