>  기사  >  백엔드 개발  >  파일에서 바이트를 읽고 구조에 저장하고 값을 수정합니다.

파일에서 바이트를 읽고 구조에 저장하고 값을 수정합니다.

WBOY
WBOY앞으로
2024-02-14 15:51:08483검색

파일에서 바이트를 읽고 구조에 저장하고 값을 수정합니다.

PHP 편집기 Youzi는 파일에서 바이트를 읽고 이를 구조에 저장하는 일반적인 작업을 소개하고 구조의 값을 수정할 수도 있습니다. 이런 종류의 작업은 프로그래밍에서 매우 일반적이며, 특히 바이너리 파일이나 네트워크 데이터를 다룰 때 더욱 그렇습니다. 바이트를 읽고 이를 구조에 저장함으로써 파일의 데이터에 쉽게 액세스하고 수정할 수 있으므로 파일을 유연하게 처리할 수 있습니다. 다음으로, 모든 사람에게 도움이 되기를 바라면서 이 프로세스를 구현하는 방법을 자세히 설명하겠습니다.

질문 내용

저는 바둑을 처음 접합니다. Go 언어에 대한 Coursera 소개를 보았는데 일부 주제가 깊이 다루어지지 않았습니다.

바둑 연습을 위해 CS50에서 최대한 많은 연습문제를 풀고 있어요. 저는 지금 bmp 파일을 읽고, 헤더 내용을 해당 데이터 구조에 복사하고, 해당 구조의 일부 매개변수를 변경한 다음 결과를 새 파일에 복사해야 하는 예제를 작업 중입니다.

가장 먼저 알아차린 것은 내가 만든 구조의 크기에 해당하는 바이트 수를 이진수로 읽을 수 없다는 것입니다. 이는 구조물을 건축할 때 발생할 수 있는 패딩 때문입니다. 필드별로 구조 필드를 읽고 채울 수 있습니다.

이를 개선하기 위해 구조를 반복하고, 각 필드의 크기를 가져오고, 파일에서 해당 바이트 수를 읽은 다음, 구조를 반복한 후 다시 파일에 쓰려고 했습니다. p>

마지막 단계에서 멈췄습니다(이전 단계가 올바르게 수행된 경우): 필드 유형에 따라 값을 올바르게 설정하는 방법은 무엇입니까?

으아악

PS: 이 전에는 구조체의 필드를 직접 읽으려고 했지만 읽을 수 없었습니다.

해결 방법

binary.Read 함수의 기능을 복제하고 있는 것 같습니다. 이 함수는 지정된 바이트 순서의 데이터를 구조의 연속 필드로 디코딩합니다. 구조체 디코딩 코드를 여기에서 볼 수 있습니다.

읽기를 사용하여 파일 헤더를 디코딩하는 방법은 다음과 같습니다.

으아악

위 내용은 파일에서 바이트를 읽고 구조에 저장하고 값을 수정합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제