ファイルを読む

  バイナリファイルを読むのに必要な関数



このページのアンダーラインのあるリンクは、全て Microsoft へのリンクです

1) fopen
2) fread
3) feof
4) fclose

※ stdio.h が必要です



  ビットマップファイルを読み込んで情報を得る



  
#include "stdafx.h"
#include <windows.h>

int main(int argc, char* argv[])
{
	if ( argc < 2 ) {
		printf( "%s\n", "引数にファイルのパスを指定して下さい" );
		return 0;
	}

	FILE *fp;
	
	fp = fopen( argv[1], "rb" );
	if ( fp == NULL ) {
		printf( "%s がOPENできませんでした\n", argv[1] );
		return 0;
	}

	BITMAPFILEHEADER bfh;
	//typedef struct tagBITMAPFILEHEADER {
	//    WORD    bfType; 
	//    DWORD   bfSize; 
	//    WORD    bfReserved1; 
	//    WORD    bfReserved2; 
	//    DWORD   bfOffBits; 
	//} BITMAPFILEHEADER; 

	fread( (void *)&bfh, sizeof(bfh), 1, fp );

	printf( "%c%c\n", bfh.bfType % 256, bfh.bfType / 256 );
	printf( "ファイルのサイズ = %d\n", bfh.bfSize );

	BITMAPINFOHEADER bih;
	//typedef struct tagBITMAPINFOHEADER{
	//    DWORD  biSize; 
	//    LONG   biWidth; 
	//    LONG   biHeight; 
	//    WORD   biPlanes; 
	//    WORD   biBitCount 
	//    DWORD  biCompression; 
	//    DWORD  biSizeImage; 
	//    LONG   biXPelsPerMeter; 
	//    LONG   biYPelsPerMeter; 
	//    DWORD  biClrUsed; 
	//    DWORD  biClrImportant; 
	//} BITMAPINFOHEADER; 

	fread( (void *)&bih, sizeof(bih), 1, fp );
	printf( "画像幅 = %d\n", bih.biWidth );
	printf( "画像高さ = %d\n", bih.biHeight );
	printf( "ピクセルデータのサイズ = %d\n", bih.biSizeImage );
	
	fclose( fp );
	return 0;
}
  



  ファイルをダンプする

  
#include "stdafx.h"
#include <windows.h>

int main(int argc, char* argv[])
{
	if ( argc < 2 ) {
		printf( "%s\n", "引数にファイルのパスを指定して下さい" );
		return 0;
	}

	FILE *fp;
	
	fp = fopen( argv[1], "rb" );
	if ( fp == NULL ) {
		printf( "%s がOPENできませんでした\n", argv[1] );
		return 0;
	}

	char szBuffer[16];
	size_t ret;
	int i;

	while( 1 ) {
		ret = fread( (void *)szBuffer, 1, sizeof(szBuffer), fp );
		if ( feof( fp ) ) {
			if ( ret == 0 ) {
				break;
			}
		}
		for( i = 0; i < (int)ret; i++ ) {
			printf( "%02X", 0x000000ff & szBuffer[i] );
		}
		printf( "\n" );
	}
	
	fclose( fp );
	return 0;
}
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ