728x90
300x250

[C++] ifstream으로 파일 존재 유무 파악


ifstream으로 파일 존재 유무를 파악하는 방법을 소개합니다.

 


1. 소스코드
 

#include <fstream>

 

 

ifstream read;

read.open("읽을 파일");

 

// 파일 존재 파악

if(!read)
{

}


 

반응형
728x90
300x250
[C++] G++로 다수 Header와 Cpp파일 처리하기(Linux)

 

Main.cpp

A.h

A.cpp(또는 inl)

B.h

B.cpp(또는 inl)

C.h

C.cpp(또는 inl)

 

이런 식으로 다수의 파일을 목적프로그램(Object)으로 출력해야합니다.

Header의 경우 컴파일하게 되면, Gch파일로 압축 컴파일됩니다.

크게 걱정하실 필요는 없으며, Main.cpp과 다수의 Cpp의 Object파일을 중점으로 컴파일하면, 이상 없이 처리됩니다.

 

다소 번거롭고 짜증 나지만, 각각의 절차를 MakeFile의 형태로 만들지 않은 이상 수작업으로 진행하셔야 합니다.

 

G++ -c Main.cpp

G++ -c A.h A.cpp

G++ -c B.h B.cpp

G++ -c C.h C.cpp

 

G++ -o Main.o A.o B.o C.o

 

만약 C의 파일이 C.cpp가 아니고 C_inc.h나 inl일 때

Gch로 파일이 생성되면 cpp파일 묶음들만 컴파일하시면 됩니다.

 

G++ -o Main.o A.o B.o
반응형
728x90
300x250
[C++] C++ Template Class 헤더 분리

 

Template Class를 헤더로 분리하는 방법은. inl 파일로 분리해서 하는 방법이 있다.
대형 3D엔진에서는. inl이란 파일 형식으로 CPP 파일 대신해서 사용한다.
사실 템플릿 함수 자체가 함수를 만들어내는 임무를 수행하고 있다.

 

일반 함수 원형의 경우,

int hama(int a, int b)

{

       a + b

}

 

이런 꼴이라고 가정하면

템플릿 자료형(int, char 등..) hama(템플릿 자료형 a, 템플릿 자료형 b)

{

     a + b;

}

 

이런 식으로 함수 원형 틀은 그대로 두되 자료형을 자유롭게 바꿔낼 수 있다.

Header라는 영역에서밖에 못 사용하는 것도 아무래도 이러한 이유가 있기 때문에 그러지 않을까 생각한다.

결론은 분리하는 방법은 편법답게 하는 방법이 있는데,
첫 번째로, header를 header 1, header 2로 분리하는 방법

 

헤더 1이에요

class 헤더1{

 

}

 

#include "헤더1.h"

 


두 번째로, header를 inl으로 맨 하단에 #include를 시키는 방법이 될 수 있다.

 

나 헤더

 

class 멍청한클래스{

 

}

 

#include "aaa.inl"

 

/// aaa.inl

구현 하시죠.ㅋㅋㅋ

 

그냥 실험하는 목적이거나 단순한 거면, 헤더 파일 하나에 몰아넣는 게 정신건강에 이롭지 않나 생각한다.

반응형
728x90
300x250

[C#.NET] 동적 컨트롤 제어에 관한 방법

 

 private bool SetCtrlProperty(string CtrlName, string PropName, object value)
 {
        bool result = false;
        Control[] Ctrls = tabPage1.Controls.Find(CtrlName, true);

        if (Ctrls.Length > 0)
        {

              try
             {
              Ctrls[0].GetType().GetProperty(PropName).SetValue(Ctrls[0], value, null);
              result = true;
             }
                catch { }
        }
        return result;
 }

 

사용법

SetCtrlProperty("컨트롤명", "Text", 변경값);

 

참고)

http://blog.naver.com/PostView.nhn?blogId=exila&logNo=80106962981

 

 

반응형
728x90
300x250

[Javascript] 클립보드 제어(복사)

 

<script>

window.clipboardData.setData("Text", "클립보드로 복사할 글");

</script>

 

이와 같이 간단하게 구현할 수 있습니다.

clipboardData.setData( x , y )를 통해 사용할 수 있습니다.

 

이 명령은 텍스트를 클립보드로 저장시키는 명령입니다.

 

 

참고)

 

사전적 의미의 클립보드 : 컴퓨터에서 임시 저장 공간으로 사용하기 위해 확보된 메모리 영역.
반응형
728x90
300x250

[Javascript / HTML] Modal 창 - 폼 전송처리시 새창 팝업처리 방지

 

form target을 _self로 설정했음에 불구하고, 전송처리(submit)할 때, 새창 뜨는 것에 대해 팝업 처리를 하지 않고 현재 창에서 새로고침(Refresh)가 되는 방법에 대해 소개하고자 합니다.

 

1. Javascript로의 처리

window.name = "dialogPopup";

form.target = "dialogPopup";

form.submit();

 

 

2. Base target(자체 선언)을 이용하는 방법

<base target="_self" />

 

두 작업 다 Head 사이에 선언해야 합니다.

이상입니다.

반응형
728x90
300x250

[ASP.NET] C# 환경에서 URL 호출 - HttpWebResponse, HttpWebRequset

 

System.Net을 이용하여 처리하는 방법도 있겠으며, External URL에 관한 처리 방법은 다양합니다.
Stream으로 외부 URL을 원격으로 호출하는 방법에 관해 소개하겠습니다.

 


1. 구현

 

Namespace 선언

System.Text;

System.IO;

System.Web;

 

대상 URL 선언

string TargetURL = http://외부주소/index.do;

 

HttpWebRequest의 선언

HttpWebRequest gomRequest = (HttpWebRequest)WebRequest.Create(TargetURL);

 

HttpWebResponse의 선언

HttpWebResponse ckResponse = (HttpWebResponse)gomRequest.GetResponse();

 

응용) C# 환경에서 URL을 호출하여 Stream으로 받는 예제

 

Java 환경에서 URLConnection 과 같은 기능을 구현해보게 되었다.

특정 URL로 POST 방식으로 호출을 한 후 응답을 String 받는 기능을 수행한다.

HttpWebResponse 객체를 이용하여 Java의 URLConnection 와 동일하게 이용한다.

 

 

StringBuilder postParams = new StringBuilder();

postParams.Append("id=" + "abcd");

postParams.Append("&pw=" + "1234");

 


Encoding encoding = Encoding.UTF8;

byte[] result = encoding.GetBytes(postParams.ToString());

 


// 타겟이 되는 웹페이지 URL

string Url = "http://localhost:8080/MavenEULI/index.do";    //~~~~/login.php;  //수정해주세요.

HttpWebRequest wReqFirst = (HttpWebRequest)WebRequest.Create(Url);

 // HttpWebRequest 오브젝트 설정

 


wReqFirst.Method = "POST";

wReqFirst.ContentType = "application/x-www-form-urlencoded";

wReqFirst.ContentLength = result.Length;

 

 

 

Stream postDataStream = wReqFirst.GetRequestStream();

postDataStream.Write(result, 0, result.Length);

postDataStream.Close();

HttpWebResponse wRespFirst = (HttpWebResponse)wReqFirst.GetResponse();

 


// Response의 결과를 스트림을 생성합니다.

Stream respPostStream = wRespFirst.GetResponseStream();

StreamReader readerPost = new StreamReader(respPostStream, Encoding.UTF8);

 


// 생성한 스트림으로부터 string으로 변환합니다.

string resultPost = readerPost.ReadToEnd();

 


txt1.Text = resultPost;

 

 


2. 참고자료(Reference)

 

1. MSDN - HttpWebResponse 클래스, http://msdn.microsoft.com/ko-kr/library/system.net.httpwebresponse(v=vs.110).aspx, 접속일자 2013-12-16

2. MSDN - HttpWebRequest - 클래스를 사용하여 데이터 전송, http://msdn.microsoft.com/ko-kr/library/debx8sh9(v=vs.110).aspx, 접속일자 2013-12-16

반응형
728x90
300x250

[C#.NET] DirectoryInfo - 디렉토리 내 파일 무시하고 강제 삭제

 

디렉토리 내 파일을 무시하고 강제로 삭제하는 방법에 대해서 소개합니다.


1. 구현

 

DirectoryInfo di = new DirectoryInfo(가상의 디렉토리);

di.Delete(부울 조건);

 

부울 조건 : true, false로 처리

 


2. 하위 디렉토리 내 폴더 및 파일 존재 여부 찾기

if(di.GetDirectories().Length != 0 || di.GetFiles().Length != 0)

 

이와 같은 조건으로 찾을 수 있습니다.

 

GetDirectories().Length

(폴더의 수를 의미합니다.)

GetFiles().Length

(파일의 수를 의미합니다.)

 


3. 참고자료(Reference)

 

1. http://msdn.microsoft.com/ko-kr/library/system.io.directoryinfo_methods(v=vs.110).aspx

반응형

+ Recent posts