kimkb

게시판 답변이 생성됐습니다

5 글 보임 - 1 에서 5 까지 (총 5 중에서)
  • 글쓴이
  • 답변: idl로 바이너리파일을 읽고 쓸때 #1354
    kimkb
    회원

    포트란 소스코드를 찾는다는 것이 제가 말씀 드린 포트란 실행 파일을 만드는 코드를 말씀하시는 건가요?

    요기에 제가 읽고 쓰는 프로그램을 올리고싶은데 어떻게 올리는지 몰라서 보여드리진 못하네요..

    답변: idl로 바이너리파일을 읽고 쓸때 #1346
    kimkb
    회원

    답변주셔서 감사합니다 ^^ 설연휴 잘 보내셨는지오. 저도 연휴가 끝나고 와서 가르쳐 주신 대로 해보았습니다.
    첫번째로 emdl 이라는 제가 읽을 수 없었던 원본 바이너리 파일입니다. 파일의 용량을 적어드리면.

    emdl = 174368
    1file = 174360 (swap_endian=0 을 주고 만든 바이너리 파일)
    2file = 174360 (swap_endian=1 을 주고 만든 바이너리 파일)
    3file = 174368 (/f77_unformatted 을 주고 마든 바이너리 파일)
    4file = 174360 (아무것도 주지 않고 만든 파일)

    제가 가진 fortran package 안에서는 emdl 파일의 형식을 읽는 실행파일이 존재합니다.

    그래서 이 파일들을 읽어 보았는데 2,3번 파일은 처음부터 읽지를 못합니다.

    1, 4 번 파일은 읽기는 읽는데 상수값이 원본 파일과는 다르게 나옵니다.

    (idl로 읽는 파일이 있습니다.>> 제가 1 2 3 4 번을 만들 수 있게 해주는 코드인데요 거이서 swap, /f77 등을 바꾸고 바이너리 포트란 파일은 읽은 그것 입니다. 거기에서 읽고 바꿀 때 모니터에 상수들을 프린터 해주는데요 1 , 4 번 파일을 읽어 들이면 읽기는 읽고 끝까지 잘 읽지만 못하지만.. 하지만 상수를 잘못 프린터하네요. 즉 잘 못읽는것 같습니다.)

    그래서 제가 idl로 읽어서 프린터 할 때 바이너리가 아닌 asc 파일로 파일을 만들고 그걸 다시 포트란으로 읽어서 바이너리로 바꾸면 적어도 상수까지는 어느정도 잘 읽습니다. 문제는 이것도 끝까지는 잘 읽지 못하지만요..)

    지금 이러한 상황에 있습니다.

    해결할 기미가 보이질 않네요.

    바이너리 읽는 순서는 어차피 package에서 제공해주기 때문에 제가 건드릴 필요는 없을 것 같구요.

    어려움에 처해 있네요.

    어렵게 가르쳐 주셨는데 해결을 못해서 너무 죄송하네요..

    답변: idl로 바이너리파일을 읽고 쓸때 #1335
    kimkb
    회원

    제가 이해하기 어렵게 말씀드린것같습니다.
    최종으로 처리해야 하는 건 포트란이고 바이너리 파일도 포트란에서 읽고 쓰는 용으로 되어있습니다.
    하지만 다른 사람이 제공한 바이너리 파일이 포트란에서는 읽히지 않습니다.( 바이너리 같은 경우에는 컴퓨터(?)마다 다를 수 있어서 다른사람이 쓰고 읽었던 파일을 제가 쓰지 못하는 경우가 있다고합니다. )
    그래서 방법을 찾아보니 idl로는 바이너리 파일을 읽고 쓸 수 있다고 하여서 그렇게 할려고 하는 중에 문제가 생겨서 질문을 하는 거에요.

    openw /f77_unformatted 로 바이너리로 만들 파일을 열고 printeu ? 이건가요 이렇게 바이너리로 저장해서 읽으면 안되다는 의미로 말씀드린거에요~.

    kimkb
    회원

    아 너무 감사합니다!
    모두 해결이 되었습닌다!!
    하나씩 배워가니깐 참 재미있네요 ^^!

    kimkb
    회원

    그리고.. 그리드 옆에 위도 경도 표시하게 N 값 같은것을 넣는 방법과..
    경도가 ( – ) 로 되어 있는데 0~360 으로 바꿀 수 도 있을까요??

5 글 보임 - 1 에서 5 까지 (총 5 중에서)