diary       blog       guest

TXT 파일에 저장된 변수 로드해서 사용하기

http://www.action-scripter.com/blog/trackback/1095

ActionScript 3.0에서 변수 정보가 저장된 TXT 파일을 로드해서 해당 변수를 사용하기 위해서는 다음과 같이 URLLoader의 dataFormat을 VARIABLES로 지정한 후 로드해야 정상적으로 변수를 참조할 수 있습니다. 그렇지 않으면 로드된 TXT 파일의 모든 내용을 하나의 String 데이터로 인식하게됩니다.

  1. System.useCodePage = true;
  2.  
  3. var loader:URLLoader = new URLLoader();
  4. var request:URLRequest = new URLRequest("sample.txt");
  5. loader.dataFormat = URLLoaderDataFormat.VARIABLES;
  6. loader.addEventListener(Event.COMPLETE, completeHandler);
  7. loader.load(request);
  8.  
  9. function completeHandler(event:Event):void {
  10.    var vars:URLVariables = event.target.data;
  11.    trace(vars.path);
  12. }

여기서 sample.txt 파일에는 다음의 내용이 들어있습니다.

path=http://www.naver.com

만약 여러개의 변수를 사용하고 싶을 때는 & 구분자를 이용해서 추가할 수 있습니다.

path=http://www.naver.com&name=네이버

주의할 점은 첫 변수명 앞에는 & 구분자를 사용하지 않는다는 점과 & 구분자를 사용할 경우 & 구분자 뒤에는 반드시 변수명이 있어야 한다는 점입니다. 예전에는 TXT 파일을 로드했을 때 불필요한 공백을 제거하기 위해 & 구분자를 변수 데이터 앞, 뒤에 붙여서 사용했었습니다.

&path=http://www.naver.com&name=네이버&

이렇게 하면 다음과 같은 오류가 발생합니다.

Error: Error #2101: URLVariables.decode()에 전달된 String은 이름/값 쌍을 포함하는 URL 인코딩된 쿼리 문자열입니다.
 at Error$/throwError()
 at flash.net::URLVariables/decode()
 at flash.net::URLVariables()
 at flash.net::URLLoader/onComplete()

2008/08/13 14:38 2008/08/13 14:38

Comments List

  1. Mr.Unknown 2008/08/19 14:50 # M/D Reply Permalink

    xp에서부터는 txt를 저장할 때 utf-8로 인코딩해서 저장할 수 있는데 그럼 System.useCodePage = true를 하지 않아도 되지 않을까요? useCodePage를 하면 리눅스나 MacOS에서는 제대로 표시가 않아서 불편할 것 같아요.

    1. Mr.Unknown 2008/08/19 15:01 # M/D Permalink

      리플 달고 나서 스스로 답을 찾았네요.
      System.useCodePage = true
      를 해놓고 불러오는 파일을 utf-8로 하면 되겠군요.
      아아 유니코드... 유니코드...

    2. 땡굴이 2008/08/20 10:11 # M/D Permalink

      유니코드때문에 저도 많이 고생을 했었습니다. 특히나 한글 데이터 연동할 때 아무 생각없이 우리 나라에서만 잘 보이면 되는 줄 알고 만들었다가 뒷통수 때린적이 한번이 아니었네요. ㅎㅎ;

  2. 마카오슈 2008/08/22 18:05 # M/D Reply Permalink

    심한수교수님이 물어봐서 계속 찾았는데 답이 여기있었네요 ㅋㅋ
    젤앞에 & 이놈 때문이었구나 ㅠㅠ

    1. 땡굴이 2008/08/23 01:50 # M/D Permalink

      나도 몰랐다가 라자로스가 물어봐서 살펴 봤더니 이렇게 사용해야 하는 것 같아. 정말 공부할게 너무 많아.

  3. 라자로스 2008/08/27 17:30 # M/D Reply Permalink

    모야썅.내가 알려준거자나!
    여튼.시스템코드페이지는 만약 한글이나 일본어 등으로 페이지코딩 정의해줬으면 false 로 해야해.
    asp 든 txt 든 유니코드로 저장하는게 좋겠지?

    1. 땡굴이 2008/08/28 10:06 # M/D Permalink

      그래 잘했다. 후후.

   1    
ABOUT  |  WORKS  |  @seonggyu
COPYRIGHT ⓒ 2000 - 2010. ACTION-SCRIPTER.COM. ALL RIGHTS RESEVED.