mfc-ml

1998年04月

30

[mfc 6483] RE: [mfc 6466] Re: ファイルの内容を構造体へ

斎藤です。

>char code[4];
> /* レコード読み込み
> while( fread( buff, 35, 1, fp) != NULL )
> {
>   memcpy( code, &buff[0], 3 );
>  *(code + 3 ) = '\0' ;
>  memcpy( &buf[i].a, &code, 3 ) ;
>  memcpy( &buf[i].b_cd, &buff[3], 2 );
>  memcpy( &buf[i].c, &buff[5], 12 );
>  buf[i].name[] = '\0';
>  i = i + 1;
> }

>デバッグで見てみると
>1:aのmemcpy時にはaには001
>2:bのmemcpy時にはaには001*^A
>                           bには401
>3:cのmemcpy時にはaには001*^A山田太郎
>                           bには401
>                           cには山田太郎
>という具合になりました。
>
>Data.hに
>class Data 
>{
>  public:
>      char a[3];
>      short b;
>      char c[20];
>      char d[10];
>}; 
>
>***Doc.hに
>
>class *** : public CDocument
>{
>    :
>    :
>    DATA buf[200];
>    :
>    :
>}
>
>としています。
>なぜに、aだけに1レコード分がはいるのか?
>通常、バイナリファイルをオープンしてリードして
>そのデータをリストビューに表示されるのって
>どうするのか教えてください。
>


buffのデータ型式がわかりません。
また、nameはどこで定義してあるのか不明ですし、
.b_cd変数もどこで定義してあるのか不明です。
また、buffとbufはちがうものですか?
i変数はどこで定義していますか?
再度、まとめて頂けたらわかると思います。
30

[mfc 6483] RE: [mfc 6466] Re: ファイルの内容を構造体へ

斎藤です。

>char code[4];
> /* レコード読み込み
> while( fread( buff, 35, 1, fp) != NULL )
> {
>   memcpy( code, &buff[0], 3 );
>  *(code + 3 ) = '\0' ;
>  memcpy( &buf[i].a, &code, 3 ) ;
>  memcpy( &buf[i].b_cd, &buff[3], 2 );
>  memcpy( &buf[i].c, &buff[5], 12 );
>  buf[i].name[] = '\0';
>  i = i + 1;
> }

>デバッグで見てみると
>1:aのmemcpy時にはaには001
>2:bのmemcpy時にはaには001*^A
>                           bには401
>3:cのmemcpy時にはaには001*^A山田太郎
>                           bには401
>                           cには山田太郎
>という具合になりました。
>
>Data.hに
>class Data 
>{
>  public:
>      char a[3];
>      short b;
>      char c[20];
>      char d[10];
>}; 
>
>***Doc.hに
>
>class *** : public CDocument
>{
>    :
>    :
>    DATA buf[200];
>    :
>    :
>}
>
>としています。
>なぜに、aだけに1レコード分がはいるのか?
>通常、バイナリファイルをオープンしてリードして
>そのデータをリストビューに表示されるのって
>どうするのか教えてください。
>


buffのデータ型式がわかりません。
また、nameはどこで定義してあるのか不明ですし、
.b_cd変数もどこで定義してあるのか不明です。
また、buffとbufはちがうものですか?
i変数はどこで定義していますか?
再度、まとめて頂けたらわかると思います。
30

[mfc 6483] RE: [mfc 6466] Re: ファイルの内容を構造体へ

斎藤です。

>char code[4];
> /* レコード読み込み
> while( fread( buff, 35, 1, fp) != NULL )
> {
>   memcpy( code, &buff[0], 3 );
>  *(code + 3 ) = '\0' ;
>  memcpy( &buf[i].a, &code, 3 ) ;
>  memcpy( &buf[i].b_cd, &buff[3], 2 );
>  memcpy( &buf[i].c, &buff[5], 12 );
>  buf[i].name[] = '\0';
>  i = i + 1;
> }

>デバッグで見てみると
>1:aのmemcpy時にはaには001
>2:bのmemcpy時にはaには001*^A
>                           bには401
>3:cのmemcpy時にはaには001*^A山田太郎
>                           bには401
>                           cには山田太郎
>という具合になりました。
>
>Data.hに
>class Data 
>{
>  public:
>      char a[3];
>      short b;
>      char c[20];
>      char d[10];
>}; 
>
>***Doc.hに
>
>class *** : public CDocument
>{
>    :
>    :
>    DATA buf[200];
>    :
>    :
>}
>
>としています。
>なぜに、aだけに1レコード分がはいるのか?
>通常、バイナリファイルをオープンしてリードして
>そのデータをリストビューに表示されるのって
>どうするのか教えてください。
>


buffのデータ型式がわかりません。
また、nameはどこで定義してあるのか不明ですし、
.b_cd変数もどこで定義してあるのか不明です。
また、buffとbufはちがうものですか?
i変数はどこで定義していますか?
再度、まとめて頂けたらわかると思います。
30

[mfc 6482] Re: デバイスコンテキストをバッファとして使うには


 花代さんありがとうございました。
 
 御指摘の通りやってみると、拍子抜けするぐらいにあ
っさりとできました。やはり、CreateCompatibleBitmap()
と、SelectObject()がぬけていたためのようです。
 まだまだ、描画が遅いのですが(DCを使ってるせいか?)、おかげさまで一応のところまで行けました。

 ありがとうございました。
30

[mfc 6482] Re: デバイスコンテキストをバッファとして使うには


 花代さんありがとうございました。
 
 御指摘の通りやってみると、拍子抜けするぐらいにあ
っさりとできました。やはり、CreateCompatibleBitmap()
と、SelectObject()がぬけていたためのようです。
 まだまだ、描画が遅いのですが(DCを使ってるせいか?)、おかげさまで一応のところまで行けました。

 ありがとうございました。
記事検索
Amazon.co.jp
  • ライブドアブログ