ライブラリ関数マテリアル

  テキストファイルを読むのに必要な関数



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

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

※ stdio.h が必要です



  Win32 Console Application でテキストファイルの内容を表示するプログラムを作成



  
#include "stdafx.h"

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

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

	char szBuffer[1024];

	while( 1 ) {
		fgets( szBuffer, 1024, fp );
		if ( feof( fp ) ) {
			break;
		}
		printf( "%s", szBuffer );
	}

	fclose( fp );
	return 0;
}
  

fgets 関数は、0x0d と 0x0a を見つけると、それまで読み込んだデータに 0x0a を付加してバッファにセットします
1024 - 1 文字を読み込んだ場合、0x00 を付加してバッファにセットします。



  テキストファイルを書くのに必要な関数

1) fopen
2) fputs または fprintf
3) fclose

※ stdio.h が必要です

fputs は、文字列をそのまま書き込む関数ですが、fprintf は printf と同じ書式で編集結果を書き込む事ができるので、通常は fprintf を使用したほうが良いでしょう



  Win32 Console Application でシステム情報をテキストファイルに出力

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

int main(int argc, char* argv[])
{
	FILE *fp;

	fp = fopen( "sysinfo.txt", "wt" );
	if ( fp == NULL ) {
		printf( "%s をOPENできませんでした\n", "sysinfo.txt" );
		return 0;
	}

	char szBuffer[1024];
	DWORD nLen;

	// コンピュータ名
	nLen = sizeof( szBuffer );
	GetComputerName( szBuffer, &nLen );
	fprintf( fp, "コンピュータ名 = %s\n", szBuffer );
	
	// ユーザ名
	nLen = sizeof( szBuffer );
	GetUserName( szBuffer, &nLen );
	fprintf( fp, "ユーザ名 = %s\n", szBuffer );

	// Windows ディレクトリのパス
	nLen = sizeof( szBuffer );
	GetWindowsDirectory( szBuffer, (UINT)nLen );
	fprintf( fp, "Windows ディレクトリのパス = %s\n", szBuffer );

	// システムディレクトリのパス
	nLen = sizeof( szBuffer );
	GetSystemDirectory( szBuffer, (UINT)nLen );
	fprintf( fp, "システムディレクトリのパス = %s\n", szBuffer );

	// バージョン情報
	//typedef struct _OSVERSIONINFO{ 
	//    DWORD dwOSVersionInfoSize; 
	//    DWORD dwMajorVersion; 
	//    DWORD dwMinorVersion; 
	//    DWORD dwBuildNumber; 
	//    DWORD dwPlatformId; 
	//    TCHAR szCSDVersion[ 128 ]; 
	//} OSVERSIONINFO; 

	OSVERSIONINFO osvi;
	ZeroMemory(&osvi, sizeof(OSVERSIONINFO));
	osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
	GetVersionEx((OSVERSIONINFO*)&osvi);
	fprintf( fp, "メジャーバージョン = %d\n", osvi.dwMajorVersion );
	fprintf( fp, "マイナーバージョン = %d\n", osvi.dwMinorVersion );
	fprintf( fp, "ビルド番号 = %d\n", osvi.dwBuildNumber );
	fprintf( fp, "プラットフォームID = %d\n", osvi.dwPlatformId );
	fprintf( fp, "追加情報 = %s\n", osvi.szCSDVersion );
 	
	fclose( fp );
	
	return 0;
}
  

以下、Microsoft の API ページ

1) GetComputerName
2) GetUserName
3) GetWindowsDirectory
4) GetSystemDirectory
5) GetVersionEx

※ 参考
プログラムから Windows のバージョンをチェックする方法










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





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

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ