Unit1.cpp
上传用户:lhxd_sz
上传日期:2014-10-02
资源大小:38814k
文件大小:2k
源码类别:

VC书籍

开发平台:

C++ Builder

  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #include <stdio.h>
  4. #pragma hdrstop
  5. #include "Unit1.h"
  6. //---------------------------------------------------------------------------
  7. #pragma package(smart_init)
  8. #pragma resource "*.dfm"
  9. TForm1 *Form1;
  10. //---------------------------------------------------------------------------
  11. __fastcall TForm1::TForm1(TComponent* Owner)
  12.         : TForm(Owner)
  13. {
  14. }
  15. //---------------------------------------------------------------------------
  16. void __fastcall TForm1::Button1Click(TObject *Sender)
  17. {
  18.   unsigned char c;
  19.   char ss[10];
  20.   int ct=0,ii,nn;
  21.   TFileStream * fm;
  22.   TMemoryStream * Msm;
  23.   fm=new TFileStream("bmp.txt",fmCreate);
  24.   Msm = new TMemoryStream();
  25.   Image1->Picture->Bitmap->SaveToStream(Msm);
  26.   Msm->Position=0;
  27.   nn=Msm->Size;
  28.   for(ii=0;ii<nn;ii++)
  29.   {
  30.     Msm->Read(&c,1);
  31.     sprintf(ss,"%.2x",c);
  32.     fm->Write(ss,2);
  33.     ct++;
  34.     if(ct>40)
  35.     {
  36.       ct=0;
  37.       ss[0]=0x0d;ss[1]=0x0a;
  38.       fm->Write(ss,2);
  39.     }
  40.   }
  41.   ss[0]=0x0d;ss[1]=0x0a;
  42.   fm->Write(ss,2);
  43.   delete Msm;
  44.   delete fm;
  45. }
  46. //---------------------------------------------------------------------------
  47. AnsiString TForm1::Read2Byte(TStream *sm)
  48. {
  49.   char ss[4];
  50.   int ii,ll;
  51.   unsigned char c;
  52.   ii=0;ss[0]=0;
  53.   for(;;)
  54.   {
  55.     ll=sm->Read(&c,1);
  56.     if(ll<1)return "END";
  57.     if((c!=0x0d)&&(c!=0x0a))
  58.     {
  59.       ss[ii]=c;ii++;
  60.       if(ii>1){ss[ii]=0;break;}
  61.     }
  62.   }
  63.   return (AnsiString)ss;
  64. }
  65. //---------------------------------------------------------------------------
  66. void __fastcall TForm1::Button2Click(TObject *Sender)
  67. {
  68.   unsigned char c;
  69.   AnsiString ass;
  70.   char ss[2];
  71.   ss[1]=0;
  72.   TFileStream * fm;
  73.   TMemoryStream * Msm;
  74.   fm=new TFileStream("bmp.txt",fmOpenRead);
  75.   Msm = new TMemoryStream();
  76.   for(;;)
  77.   {
  78.     ass=Read2Byte(fm);
  79.     if(ass=="END")break;
  80.     sscanf(ass.c_str(),"%x",&c);
  81.     ss[0]=c;
  82.     Msm->Write(ss,1);
  83. //    buff.c_str()[ii]=c;
  84. //    ii++;
  85.   }
  86.   Msm->Position=0;
  87.   Image2->Picture->Bitmap->LoadFromStream(Msm);
  88.   delete Msm;
  89.   delete fm;
  90. }
  91. //---------------------------------------------------------------------------