컴퓨터 엑셀 워드 포토숍 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Previous Post Perl 펄] 바이트 배열을, 이진 문자열로 변환 방법; Bytes to Binary Ar...Perl 펄] Image::ExifTool::Exif 모듈 다운로드 설치법Perl 펄] EXIF 정보 읽기, 디카 촬영 정보 출력 소스; Exif Info Dump...매스매티카 Mathematica, 평균 값, 합계 구하기 함수; Mean Average S...니콘 D40X 애기번들 접사 화질 샘플; 클로즈업 Nikon Close-Up Lighter...Java 자바] 1에서 10까지 더하기, 1에서 100까지 합계 구하기 소스; Sum, A...Java 자바] 1에서 100까지 곱하기 소스; Multiply BigInteger매스매티카 버전 6의 새로운 기능; Wolfram Mathematica 6 What's N...Perl 펄 비트연산] 특정 비트 개수 세기, 1인 비트, 0인 비트 수; Count Bi...매스매티카 Mathematica, 특정 숫자 범위 지정 함수; Number Range

Perl 펄] unpack pack 함수, 문자열을 1글자씩 처리, 배열로 변환

Friday, May 11, 2007

펄은 바이트 단위가 아닌, 문자열 단위로 데이터 입출력이 이루어지기에, 문자열을 "한 글자씩" 처리하는 것이 좀 까다롭습니다.

unpack 함수로, 문자열을 배열로 변환하여 처리합니다. 배열을 다시 문자열로 합칠 때에는 pack 함수를 사용합니다.

"C*" 이런 옵션을 붙여야 하는데, 대문자 C 는 unsigned char (부호없는 1바이트 문자) 즉 바이트 단위로 처리하라는 뜻이고, 별표(*) 는 문자열의 끝까지 모두 처리하라는 뜻입니다. "C3" 이라고 하면 3글자까지만 처리합니다.

문자열을 배열로 변환 처리 예제


파일명: example.pl
#!/usr/bin/perl
use strict; use warnings;

  ####################################################
  ## 문자열을 배열로 변환
  #
  my $s = "MP3 Player"; # 문자열 정의

  # 문자열을 1글자씩 분해하여 배열로 만들기
  my @array = unpack "C*", $s;

  # 배열 내용 출력 (1글자씩 나옴)
  print chr($_), "-" foreach (@array);
  # 화면 출력 결과: M-P-3- -P-l-a-y-e-r-


  print "\n\n"; # 편의상 줄바꿈


  ####################################################
  ## 배열을 문자열로 변환
  #
  my $result = pack "C*", @array;

  # 문자열 출력
  print $result, "\n";
  # 화면 출력 결과: MP3 Player
  # 다시 복원되었습니다.




위의 소스로는 한글 문자열을 처리할 수 없습니다. 다음 소스에서는 유니코드로 변환하여 한글 문자열을 처리합니다: ▶▶ Perl 펄] 한글 문자열 1글자씩 처리, 유니코드(UTF-8) 배열로 변환; Unicode String to Array


▶▶ Perl 펄] 바이트 배열을, 이진 문자열로 변환 방법; Bytes to Binary Array, Bin-String

0 Comments:

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Categories
Previous Posts
Monthly Archives
Top