Perl Library For JavaScript - 3

세벌쉭   
   조회 4909   추천 0    

이 라이브러리가 수정없이 작동하기 위한...
myPrint_Euckr
myConvert_String_utf82euckr
myString
함수들이 빠졌네요...

myPrint_XXXX 이런 함수들은
디버깅을 위해 작성한 것들이라,
모두 주석처리하고 사용하셔도 되기는 하는데....
추가로 찾아서 올려야 겠군요...

#++++++++++++++++++++++++++++++++++++++++++++++++
# Java Script Emulation Functions, 코드에 사용되어진 함수들

# Written by SeBulShik(세벌쉭) 


sub myPrint { # myPrint(LIST);

  # 인수는 리스트로 구성된 문자열이다.

  # 리눅스, 윈도우즈을 구분한다.

  # $Windows_Console_Flag 값이 1이면 윈도우즈 콘솔이다.

  # 윈도우즈 콘솔이면, euc-kr 인코딩으로 출력

  # 리눅스이면,       utf8   인코딩으로 출력

  # if($DEBUG==1){ myPrint("Called from $_[$#_] line<==", __LINE__, "==>\n"); }

  if(@_ == 0){

    # 이곳에 자신의 함수자신인 myPrint함수를 사용하면 안된다.

    myPrint_Euckr("\t\tCalled from $_[$#_] line<==", __LINE__, "==>\n");

    my $tem = myConvert_String_utf82euckr("\t\t==:$_[$#_] line:인수 개수 에러\n", __LINE__);

    # 재귀호출을 피하기 위해서 myPrint_Euckr 함수를 사용

    myPrint_Euckr($tem);

    myPrint_Euckr_Array('@_', @_, __LINE__);

    exit();

  }

  my($string);

  for(@_){ $string .= $_; }

  

  if(defined $Windows_Console_Flag && $Windows_Console_Flag == 1){

    from_to($string, 'utf8', 'euc-kr');

    print $string;

  } else {

    print $string;

  }

  return 1;

}



sub myError { # myError('ERROR', __LINE__);

  # if($DEBUG==1){ myPrint("Called from $_[$#_] line<==", __LINE__, "==>\n"); }

  if(@_ != 2){

    myPrint("\t\tCalled from $_[$#_] line<==", __LINE__, "==>\n");

    myPrint("\t\t==:", $_[$#_], " line:인수 개수 에러\n");

    myPrint_Euckr_Array('@_', @_, __LINE__);

    exit();

  }

  my ($error_name, $line) =  @_;

  

  print "\n";

  myPrint("\t\tCalled from $_[$#_] line<==", __LINE__, "==>\n");

  print "\t$line:\t**ERROR**: ", myString(myTime(time(), __LINE__));

  print "\n\t\t";

  myPrint_Variable('**ERROR**:', $error_name, $line);

  exit();

}


sub myPrint_Euckr_Array { # myPrint_Array('@r_h', @r_h, __LINE__);

  #if($DEBUG==1){ myPrint_Array('@r_h', @r_h, __LINE__); }


  # 인자가 배열인 경우 배열의 요소각각을 인자의 개수로 카운트 하므로, 인자의 개수를 체크 할 수 없다.

  # if($DEBUG==1){ myPrint("Called from $_[$#_] line<==", __LINE__, "==>\n"); }

  #   if(@_ != 3){

  #     myPrint("\t\tCalled from $_[$#_] line<==", __LINE__, "==>\n");

  #     myPrint("\t\t==:", $_[$#_], " line:인수 개수 에러\n");

  #     myPrint_Euckr_Array('@_', @_, __LINE__);

  #     exit();

  #   }

  my ($array_name, $string, $line);

  $array_name = shift @_;

  $line = pop @_;

  

  print "<=====Array Start=====>\n";

  $array_name = myString("$array_name");

  print "Array : $array_name\n";

  for(my $i=0; $i<@_; $i++){

    $string = $_[$i];

    if(defined $string && $string eq ''){ $string = '>>NULL<<'; }

    if(!defined $string){ $string = '>>Undefined<<'; }

    from_to($string, 'euc-kr', 'utf8');

    printf "[%03d] => %s\n", $i, myString($string);

  }

  print "<=====Array END=====>";

  

  if($DEBUG==1){

    print "<=>Line: ", $line, "<=>"; getc();

  } else {

    print "<=>Line: ", $line, "<=>\n";

  }

}


sub mySave_String { # mySave_String($string, 'English_file_name', __LINE__);

  # 문자열을 파일에 저장한다.

  # if($DEBUG==1){ myPrint("Called from $_[$#_] line<==", __LINE__, "==>\n"); }

  if(@_ != 3){

    myPrint("\t\tCalled from $_[$#_] line<==", __LINE__, "==>\n");

    myPrint("\t\t==:", $_[$#_], " line:인수 개수 에러\n");

    myPrint_Euckr_Array('@_', @_, __LINE__);

    exit();

  }

  my ($string, $English_file_name, $line) = @_;

  

  if(!defined $string){

    myPrint_Variable('$string', '문자열 미정의됨', $line);

    myError('ERROR', $line);

  }

  

  if(!open(FILE, ">$English_file_name")){

    print "\n";

    myPrint("==$line: [$English_file_name] $!\n");

    myPrint("==$line: [$English_file_name] 파일 읽기 실폐\n");

    exit();

  }

  print FILE $string;

  close(FILE);

  

  printf myString("%-25s => 파일에 저장"), $English_file_name;

  if($DEBUG==1){

    print "<=>Line: ", $line, "<=>"; getc();

  } else {

    #print "<=>Line: ", $line, "<=>\n";

  }

}


sub myPrint_Variable {

  # if($DEBUG==1){ myPrint_Variable('$varibable', $varibable, __LINE__); }

  # if($DEBUG==1){ myPrint("Called from $_[$#_] line<==", __LINE__, "==>\n"); }

  if(@_ != 3){

    myPrint("\t\tCalled from $_[$#_] line<==", __LINE__, "==>\n");

    myPrint("\t\t==:", $_[$#_], " line:인수 개수 에러\n");

    myPrint_Euckr_Array('@_', @_, __LINE__);

    exit();

  }

  my ($string, $string_1, $line) = @_;

  

  if(defined $string && $string eq ''){ $string = '>>NULL<<'; }

  if(!defined $string){ $string = '>>Undefined<<'; }

  if(defined $string_1 && $string_1 eq ''){ $string_1 = '>>NULL<<'; }

  if(!defined $string_1){ $string_1 = '>>Undefined<<'; }

  printf "%-25s => %s", myString($string), myString($string_1);

  

  if($DEBUG==1){

    print "<=>Line: ", $line, "<=>"; getc();

  } else {

    print "<=>Line: ", $line, "<=>\n";

  }

}


# Written by SeBulShik(세벌쉭)

반갑습니다.




제목Page 1/17
07-15   398   스캔l민현기
07-08   1221   조용원
07-04   1637   소망김기사
07-04   1708   소망김기사
07-02   2204   스캔l민현기
07-03   1721   스캔l민현기
07-05   1386   스캔l민현기
07-10   1021   분노의다운힐
06-27   2235   김준연
06-23   2891   제온프로
06-14   3732   김준연
06-14   3767   박문형
06-14   3440   김준연
06-13   3599   김준연
05-29   5249   알파고
05-29   5420   세벌쉭
05-25   5303   세벌쉭
05-25   5108   세벌쉭
05-25   5100   세벌쉭
05-26   4910   세벌쉭