|
안녕하세요. 먼저 답글 감사합니다.
다른게 아니고 소스를 코딩 후 돌려 보았습니다. 그런데 동일 디렉토리가
있을 경우가 많더군요..
button을 클릭했을 경우 디렉토리를 하나씩 생성하고 자 했을 경우에는
이벤트의 반복이 2번에서 3번정도 일어나면 같은 디렉토리가 생성되는 경우
가 파다하다군요.. 아무래도 볼랜드의 random 함수가 작동을 잘 못하는것
같습니다. 계속해서 random을 요청하였을 경우에는 문제가 없는데..
random을 끝내고 다시 요청할 경우 똑같은 format을 가진 문자 형식을
리턴하는 경우가 많은 것 같습니다.
만약 1 2 3 이란 랜덤한 숫자를 리턴하였을 경우 다시 초기화 하고 값을
받았을때 1 2 3 이란 형식을 가진 숫자를 리턴할 경우가 있다 그거죠..
님이 만드신 소스에서도 보면 디렉토리를 여러번 만들경우(dir_count = 1로
한 상태에서 여러번 호출을 한다면) 같은 디렉토리가 2번에서 3번째 이벤트
발생시 생성됩니다.
디렉토리를 만들때 현재 디렉토리가 존재하는 디렉토리인지 검사하는
방법 밖에 없을까요?
ㅠ_ㅠ 도와주셈..
아래는 버튼을 클릭하였을 시 생성되는 소스입니다.
Variant temp;
char aaa;
int x, i, j; // 카운터
int dir_len, dir_count;
int rtn;
dir_len = 8;
dir_count = 1;
randomize();
//랜덤한 개수를 만들려면 여기서 dir_count를 바꾸면 되죠
for( i=0; i < dir_count; ++i ) {
temp = "";
// 랜덤한 길이로 만들려면 dir_len값을 바꾸면 되죠
for( j=0; j < dir_len; ++j ) {
x = random(25); // 랜덤한 0~25까지의 숫자
// 랜덤한 디렉토리 이름 만들기.
temp += AnsiString(x * 0.1) + 'A';
}
// 대렉토리 생성
rtn = _wmkdir(Variant(AnsiString("c:\\tmp\\rand\\") + temp));
if(!rtn) {
Label1->Caption = "Create Directory";
Label2->Caption = AnsiString("c:\\tmp\\rand\\") + temp;
Label1->Refresh();
Label2->Refresh();
} else {
Label1->Caption = "None Create Directory";
ShowMessage("디렉토리 만들어지지 않음");
}
}
|