2012-11-09 5 views
1

바이너리에서 변환 된 데이터 파일의 읽기 속도를 향상시키고 싶습니다. "바이너리"는 여러 가지를 의미 할 수 있습니다. 어떤 유형의 바이너리인지 알지 못합니다. 그냥 바이너리 파일입니다.)를 plaintext에 저장합니다. 나는 잠시 전에 파일을 빨리보고 들여다 보았고 바이너리 파일을 읽거나 파싱하는 것이 텍스트보다 빠르다는 것을 알게되었다. 그래서, 나는 프로그램을 가속화하기 위해 (평문으로 변환 된) 이진 파일을 구문 분석/읽으려고합니다.Matlab Parse Binary File

저는이 프로젝트에 Matlab을 사용하고 있습니다 (파일에 데이터가 필요한 "프로그램"이 있습니다). 내가 바이너리의 다른 "유형"에 대한 정보가 필요하다고 생각하지만 실제로 바이너리 파일을 읽거나 구문 분석하는 방법에 대한 정보가 필요하다. (나는 일반 텍스트에서 찾고있는 것을 알고 있으므로 변환 할 필요가 있다고 상상한다. 그 바이너리로, 파일을 검색 한 다음 결과를 일반 텍스트로 가져옵니다). 파일이 어떤 식 으로든 도움이된다면 로그 파일입니다.

감사합니다.

+0

정말이 질문은 입력 및 출력 파일의 성격을 알지 못하고 이미 수행 된 것을 평가하는 코드를 보지 않고는 대답 할 수 없습니다. –

+0

바이너리 파일의 "유형"으로 돌아 가게됩니까? 바이너리 파일에 익숙하지 않아 "바이너리"(1과 0)가 다른 "유형"을 가질 수있는 방식을 이해하지 못합니다. 내가 말했듯이, 나는 내 로그 파일의 형식에 대한 모든 세부 사항을 알지 못한다. 그러나 나는 주말에 내 로그 파일의 특성과 일치시키기 위해 월요일에 수정 될 수있는 것을 함께 모으기를 희망했다. – user1187621

+0

아니요 아니요. 결국 모든 것이 '1'과 '0'으로 표시되므로이 문이 너무 일반적입니다. "2 진"파일은 데이터가 텍스트 ASCII 형식 대신 원시 형식으로 작성됨을 의미합니다. 예를 들어, '28'이라는 숫자는 문자 '2'와 '2'의 ASCII 값을 포함하는 2 바이트 대신 '0x1C'(28과 동일)의 값으로 1 바이트로 파일에 기록됩니다. 8 ', 즉'0x32 0x38'이다. 이 사실이 당신에게 명확한가요? –

답변

0

당신이 묻는 내용에는 몇 가지 문제가 있습니다. 그러나 읽고있는 파일의 형식을 알아야합니다. "위치 xx에서 나는 yy 데이터를 찾을 것으로 기대합니다."라고 말할 수 있다면 알아야 할 것입니다. 질문/댓글에서 문자열 검색에 대해 이야기합니다. 파일에서 xxxx를 찾으면 다음 데이터를 n 번째 문자까지 또는 다음 yyyy까지 줄 수 있습니다. "(텍스트 파일과 비슷 함)"할 수 있습니다.

fread에 대한 설명서를보고 싶습니다. 이 문서에는 시작을위한 코드 스 니펫이 있지만 필자와 다른 사람들은 바이너리 파일의 형식을 알아야한다고 말했습니다. 필사적 인 경우 16 진수 편집기를 사용하여 일부 정보를 확인할 수 있지만이 파일을 출력하는 프로그램의 설명서가 더 빨리 있어야합니다.

다른 "바이너리 파일"에 대해서는 우선 가장 중요한 바이트가 먼저 있거나 LSB가 마지막입니다. 당신은이 일에 대해 정말로 알 필요가 없습니다. 또한 플랫폼에 독립적 인 다른 문제가 있습니다. Mac에서 PC로 바이너리 파일을 유닉스 시스템으로 이동하지 않는 한 거의 알 필요가 없습니다. fread 설명서의 맨 아래 부분을 읽으면 "다른 시스템에서 작성된 파일 읽기"라는 제목의 섹션에서 문제와 문제를 다루는 방법을 설명합니다.

내가 작성해야하는 또 다른 의견은 "바이너리 파일 읽기/파싱이 텍스트보다 빠릅니다"라고 말합니다. 이것은 사실이 아닙니다 (또는 그것이 맞다하더라도 확률은 성과 이득을 느끼지 못할 것입니다). 그러나 개발 시간면에서 보면 텍스트 파일을 읽거나 구문 분석하면 엄청난 시간을 절약 할 수 있습니다.

+0

감사합니다! 내가 뭘 찾고 있었는지는 아니지만 (더 빠르지는 않지만) 여전히 많이 감사합니다. – user1187621

0

바이너리 파일에 데이터를 저장하는 간단한 방법은 '저장'명령을 사용하는 것입니다. 저장된 변수에서로드하는 경우 텍스트 파일에서로드하는 것보다 훨씬 빠릅니다.

+0

이미 바이너리 파일이 있습니다 (잘 작동하고 있습니다). 월요일에 바이너리 파일 생성 방법에 대해 누군가와 이야기해야한다면, 이번 주말에 몇 가지 코드를 개발하여 월요일에 출발점을 갖기를 희망했습니다. – user1187621