• Daum
  • |
  • 카페
  • |
  • 테이블
  • |
  • 메일
  • |
  • 카페앱 설치
 
카페정보
카페 프로필 이미지
VFUN
 
 
 
 

친구 카페

 
 
카페 게시글
포트란 Q&A 한글파일 입력
joylee1130 추천 0 조회 54 24.07.04 03:25 댓글 6
게시글 본문내용
 
다음검색
댓글
  • 24.07.05 18:17

    첫댓글 변수 선언 : chracter*n name
    여기서 n은 읽어들일 이름의 크기와 같거나 커야 합니다.

    character*10 name
    open(5, file = 'name.dat')
    read(5, *) name
    write(*, *) ' name = ', name

    이것은 설명을 위한 psudo-code 입니다. 읽어들일 데이터가 많은 경우 dimension을 사용하시면 됩니다.

  • 24.07.05 22:19

    1. 파일이름이 한글인건가요?
    2. 파일내용이 한글인건가요?

    여기서 일단 조금 갈릴 수 있는 문제이고. 2라 가정하고 한글을 정확히 처리하는 것은 바이트단위 영역처리를 해야할 수 있습니다.
    포트란은 아직 귀찮고, C언어라면 인코딩 변환 알고리즘들 적당히 찾아보면 있긴 할겁니다.


    ASCII, CP949 과 EUC-KR 그리고 UTF-8(ISO 10646)에 따라 파일이 인코딩되었는가?
    출력되는 환경(터미널이라던지 작업의 환경)이 이와 일치하는가?
    에 따라 출력이 결정됩니다.

    데이터에 내용이 한글이 있고 이를 처리한다고 가정할 시,
    포트란이 이런 부분에 아직 충분한 처리를 할 쉬운 도구를 마련하지 않고 있습니다. 포트란 커뮤니티 적으로도 그런 쪽은 젬병이죠.

    권장은 포트란 2003에서 추가된 selected_char_kind를 통해서(이를 지원하는 컴파일러라면) 인코딩 지정(ASCII와 Unicode)을 하도록 하고 있지만 모든 상황에 적용되는 방법은 아닐 겁니다.

    한글은 위에 서술한 인코딩에 따라서 2바이트일수도, 3바이트일수도 있습니다.
    정확히 읽어내려면, 바이트단위의 데이터(1문자)를 비트로 읽어서 alphabet 위치에 해당하는지 아닌지

  • 24.07.05 23:24

    데이터의 인코딩을 찾아서 2바이트로 묶어(EUCKR, CP949) or 3바이트로 묶어(UTF-8) 한 문자로 출력/입력 할 지 디텍팅 알고리즘을 구현해야 할 수 있습니다.
    EUCKR이라면 0x80으로 이하로 시작하면 1바이트 아니면 2바이트처리, UTF-8이면 컨트롤 비트가 있을거에요... (정확하지 않음)


    C언어 하는 사람들에 비해 이런 분야는 포트란하는 사람들은 어렵기 때문에 (비트연산도 거의 안하잖아요?)
    대충 하려면 적당히 특수문자 구분자를 이용해서 한글인 부분을 전후 따로 마킹하여 처리하든지,
    고정 길이 단위의 입출력을 통해서 처리하는 방법을 생각할 수 있을 것 같습니다.

  • 24.07.05 22:10

    FTN 95는 깔아보니까, 코드에 문자열 리터럴 조차도 한글이 지원되지 않네요.
    저장 시 Unicode로 저장할 지 물어보는 popup이 뜨는데도 아예 컴파일이 안되니 거의 해보는게 불가능한 수준같습니다.

  • 24.07.05 22:26

    사실 완전한 한글변환에 집착할 건 아니니

    읽어들이려는 파일이 UTF-8일지, CP949같은 확장완성형일지 정하고 or 본인이 만든게 아니면 그렇게 정해진 것인지 확인하고,
    보통은 바이트단위로 쭉 입출력을 하면 별로 문제가 없는데 마지막 문자가 짤릴 경우가 많이 생길 겁니다.

    해결해야 하는 데이터에 따라서는 문자열의 크기를 좀 늘리고 trim 하는 걸로 문제가 해결될 수도 있습니다.

  • 24.07.08 15:58

    대단하십니다. 한 수 배우고 갑니다.
    고맙습니다.

최신목록