⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.cpp

📁 传统加密解算法,用置换来对文件进行处理,实用方便
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include <stdio.h>

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
FILE *fp1,*fp2;
char ch,c[1000];
int i=0,j=0,k,m,n,p;
char temp[100][10];
if(Edit1->Text==""||Edit1->Text=="")
{
 MessageBox(NULL,"输入信息错误","错误信息",MB_OK);
 return;
 }
 if((fp1=fopen(Edit1->Text.c_str(),"r"))==NULL)
 {
 MessageBox(NULL,"输入文件错误","错误信息",MB_OK);
 return;
 }
 if((fp2=fopen(Edit2->Text.c_str(),"w"))==NULL)
 {
 MessageBox(NULL,"输出错误","错误信息",MB_OK);
 return;
 }
k=strlen(Edit3->Text.c_str());
char* cp1 = new char[k+1];
char *cp2=new char[k+1];
strcpy( cp1, Edit3->Text.c_str() );
strcpy( cp2, cp1 );
for(n=0;n<k;n++)
for(m=0;m<k-n-1;m++)
if(cp2[m]>cp2[m+1])
{
   ch=cp2[m];
    cp2[m]=cp2[m+1];
    cp2[m+1]=ch;
   }

  while(1)
 {
    for(j=0;j<k;j++)
     {
      ch=getc(fp1);
      if(ch==EOF)
       break;
      temp[i][j]=ch;
       }
     i++;
    if(ch==EOF)
     break;
 }
 fclose(fp1);
 for(m=j;m<k;m++)
  temp[i-1][m]='x';
 for(n=0;n<k;n++)
 for(m=0;m<k;m++)
   if(cp2[n]==cp1[m])
   for(p=0;p<i;p++)
 fprintf(fp2,"%c",temp[p][m]);

 fclose(fp2);
 MessageBox(NULL,"加密操作成功!!","成功信息",MB_OK);


}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
Edit1->Text="";
Edit2->Text="";
Edit3->Text="";
}
//---------------------------------------------------------------------------


void __fastcall TForm1::Button3Click(TObject *Sender)
{
   OpenDialog1->Execute();
                Edit1->Text=OpenDialog1->FileName;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button4Click(TObject *Sender)
{
SaveDialog1->Execute();
          Edit2->Text=SaveDialog1->FileName;

}
//---------------------------------------------------------------------------


void __fastcall TForm1::Button5Click(TObject *Sender)
{
FILE *fp1,*fp2;
char i=0,ch,c[1000];
int j=0,k,m,n,p,q=0;
char temp[100][10];
if(Edit1->Text==""||Edit2->Text==""||Edit3->Text=="")
{
 MessageBox(NULL,"输入信息错误","错误信息",MB_OK);
 return;
 }
 if((fp1=fopen(Edit1->Text.c_str(),"r"))==NULL)
 {
 MessageBox(NULL,"输入文件错误","错误信息",MB_OK);
 return;
 }
 if((fp2=fopen(Edit2->Text.c_str(),"w"))==NULL)
 {
 MessageBox(NULL,"输出错误","错误信息",MB_OK);
 return;
 }
k=strlen(Edit3->Text.c_str());
char* cp1 = new char[k+1];
char *cp2=new char[k+1];
strcpy( cp1, Edit3->Text.c_str() );
strcpy( cp2, cp1 );
for(n=0;n<k;n++)
for(m=0;m<k-n-1;m++)
if(cp2[m]>cp2[m+1])
{
   ch=cp2[m];
    cp2[m]=cp2[m+1];
    cp2[m+1]=ch;
   }

while(1)
 {
    ch=getc(fp1);
     c[i]=ch;
       i++;
    if(ch==EOF)
     break;
 }
fclose(fp1);
for(n=0;n<k;n++)
      for(m=0;m<k;m++)
      if(cp2[n]==cp1[m])
         for(p=0;p<i/k;p++)
          {
           temp[p][m]=c[q];
           q++;
          }
for(n=0;n<i/k;n++)
for(m=0;m<k;m++)
fprintf(fp2,"%c",temp[n][m]);
 fclose(fp2);
 MessageBox(NULL,"解密操作成功!!","成功信息",MB_OK);

}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -