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

📄 analysis.cpp

📁 一个用C++写的电力系统故障录波数据管理系统
💻 CPP
📖 第 1 页 / 共 5 页
字号:
 *(ca+12)=c[7]+48;
 *(ca+13)=c[8]+48;
 *(ca+15)=c[9]+48;
 *(ca+16)=c[10]+48;
 *(ca+18)=c[11]+48;
 *(ca+19)=c[12]+48;
 *(ca+14)=*(ca+17)=':';
 *(ca+20)='.';
 a=c[13]*256+c[14];
 *(ca+21)=a/100+48;
 *(ca+22)=(a%100)/10+48;
 *(ca+23)=(a%10)+48;
 *(ca+24)=0x30;
 *(ca+25)=0x30;
 *(ca+26)=0x30;
 *(ca+27)=0x00;
 for(i=0;i<27;i++)
    if(*(ca+i)<0) *(ca+i) = 48;
 return (1);
}


int CAnalysis::zb(long int uni,long int *xljl)
{
 double *xa,*ra,*xb,*rb,*xc,*rc,*xbc,*rbc,*xca,*rca,*xab,*rab;
 double yx;
 int nqd,nqd1,nqc,nqc1,s=1,ja,jb,jc,jd,js,nch,nch1,ncq,ncq1;
 char ci[80],xlc[80];
 BYTE *ca;
 int xl8[9];
 int i,j,k,m,ds,rk,dsqc,xbqc,tzxb,ctxb,lin1=1,jj,jjj,dsgu,aa;
 double sx1,sx2,sq1,sq2,sr1,sr2,srx,srr,rf1,rf2,fz,jl,vv;

 xa=(double *)malloc(1500*sizeof(double));
 xb=(double *)malloc(1500*sizeof(double));
 xc=(double *)malloc(1500*sizeof(double));
 
 ra=(double *)malloc(1500*sizeof(double));
 rb=(double *)malloc(1500*sizeof(double));
 rc=(double *)malloc(1500*sizeof(double));
 
 xbc=(double *)malloc(1500*sizeof(double));
 xca=(double *)malloc(1500*sizeof(double));
 xab=(double *)malloc(1500*sizeof(double));
 
 rbc=(double *)malloc(1500*sizeof(double));
 rca=(double *)malloc(1500*sizeof(double));
 rab=(double *)malloc(1500*sizeof(double));

 if( xa == NULL || xb == NULL || xc == NULL ||
     ra == NULL || rb == NULL || rc == NULL ||
	 xbc== NULL || xca== NULL || xab== NULL ||
     rbc== NULL || rca== NULL || rab== NULL )
  { AfxMessageBox("内存不够", MB_OK); return (-1); }
 
 np=0;  jlzd=300;

 for(j=1;j<9;j++)
    dingzhi(uni+j,xl8+j-1,&vv,ci);
 *ci=0;
 dingzhi(uni+21,&m,&vv,ci);
 xl8[8]=10000;     rm=xm=0.;
 for(j=0;j<*xljl;j++)
    {
	  dingzhi(*(xljl+1+j),&m,&vv,xlc);m=0;
      while(*(xlc+m))
	    { if(*(xlc+m)!=*(ci+m))break; m++; }
       if(!(*(xlc+m)||(*(ci+m))))
          {
		    dingzhi(uni+22,&i,&rm,ci);
		    dingzhi(uni+23,&i,&xm,ci);
		    dingzhi(*(xljl+j+1)+8,xl8+8,&xm,ci);
            break;
          }
    }
 dingzhi(uni+11,&i,&r1,ci);  
 dingzhi(uni+12,&i,&x1,ci);
 dingzhi(uni+13,&i,&r0,ci); 
 dingzhi(uni+14,&i,&x0,ci);
 dingzhi(uni+15,&i,&b1,ci);  
 dingzhi(uni+16,&i,&b0,ci);
 dingzhi(uni+17,&i,&vv,ci);  
 ny=i*10;
 dingzhi(uni+18,&i,&nl,ci);
 zzd=10;
 i=dingzhi(uni+24,&j,&zzd,ci);
 if(i&&(zzd>.01))zzd=50/zzd;
 else zzd=10;
 nz=ny/nl;
 xm=xm/nz;        rm=rm/nz;
 r0=r0/nz;        r1=r1/nz;        x1=x1/nz;    x0=x0/nz;
 kr=(r0-r1)/r1/3; kl=(x0-x1)/x1/3; kml=xm/x1;   kmr=rm/r1;
 c1=sqrt(x1*b1/1000000.0*nz);      c0 =sqrt(x0*b0/1000000.0*nz);
 readdat(va,xl8[0],0,1,1);
 readdat(vb,xl8[1],0,1,1);
 readdat(vc,xl8[2],0,1,1);
 for(vv=0.,i=0;i<20;i++)if(*(va+i)>vv)vv=*(va+i);
 for(ds=0; ds<(int)seg1; ds++)
    {
     if((seguik+ds)->c!=1)continue;
     if(ds)
	   {
	     readdat(va,xl8[0],ds,1,1);
         readdat(vb,xl8[1],ds,1,1);
         readdat(vc,xl8[2],ds,1,1);
       }
	 lon=(seguik+ds)->l-s;
	readdat(ia,xl8[4],ds,1,2);
	readdat(ib,xl8[5],ds,1,2);
	readdat(ic,xl8[6],ds,1,2);
	for(aa=0;aa!=lon;aa++)
       *(i0+aa)=*(ia+aa)+*(ib+aa)+*(ic+aa);
	if(!ds) 
		{
			for(k=jj=jjj=j=0;k<10;k++)
				{
					yx = youxz1(ia+k);
					if(yx<.25)j++;
					else if(j>0)j--;
					yx = youxz1(ib+k);
					if(yx<.25)jj++;
					else if(jj>0)jj--;
					yx = youxz1(ic+k);
					if(yx<.25)jjj++;
					else if(jjj>0)jjj--;
				}
			if((j>3)||(jj>3)||(jjj>3))guzq[0]=1;
			else guzq[0]=0;
		}
	if((xl8[8]>0)&&(xl8[8]<1000))
		readdat(im,xl8[8],ds,1,2);
	else 
		for(i=0;i<lon;i++)*(im+i)=.0;

	for(i=0;i!=lon;i++)*(vd+i)=(*(va+i)-(*(vb+i)+*(vc+i))*.5)/3;
	if(np==0)
		{
			nqd1=j=js=0;
			for(i=1;i<lon-7;i++)
				{
					m=i;
					while(m-20>=20)m-=20;
					pqd1(va,ia,&ja,i,m);
					pqd1(vb,ib,&jb,i,m);
					pqd1(vc,ic,&jc,i,m);
					pqd1(vd,i0,&jd,i,m);
					if((ja+jb+jc+jd>0)&&(js==ja+10*jb+100*jc))
						{
							if(!nqd1){nqd=nqd1=i+3;}
							j++;
							if(j>=3){np++;break;}
						}
					else if(j>0)j--;
					js=ja+10*jb+100*jc;
				}
			if(np==0)continue;
			trait++;
			(se+se_se)->order=tab[0];(se+se_se)->trait=trait;
			(se+se_se)->line=128;(se+se_se)->arrange=16;
			dingzhi(uni,&i,va1,(char *)((se+se_se)->caps));
			m_FaultLineNo = uni/2000;
			BYTE *pTemp = (se+se_se)->caps;
			if(pTemp[0]== 163 && pTemp[1] == 176)
				m_strFaultLineName =  (char *)(pTemp + 8);//(se+se_se)->caps);
			else 
				m_strFaultLineName =  (char *)((se+se_se)->caps);
			se_se++;//故障线路
			if(nqd1>35)
				{
					(se+se_se)->order=tab[19];(se+se_se)->trait=trait;
					(se+se_se)->line=128;(se+se_se)->arrange=16;
					jl2(ia,ia1,nqd1-35,va1,1);
					jl2(ib,ib1,nqd1-35,vb1,1);
					jl2(ic,ic1,nqd1-35,vc1,1);
					sprintf((char *)(se+se_se)->caps,"A:%-.3gKA   B:%-.3gKA   C:%-.3gKA",*va1*nl/1000.,*vb1*nl/1000.,*vc1*nl/1000.);
					se_se++; //故障前一周波的故障电流有效值
					(se+se_se)->order=tab[20];
					(se+se_se)->trait=trait;
					(se+se_se)->line=128;
					(se+se_se)->arrange=16;
					jl2(va,va1,nqd1-35,ia1,1);
					jl2(vb,vb1,nqd1-35,ib1,1);
					jl2(vc,vc1,nqd1-35,ic1,1);
					sprintf((char *)(se+se_se)->caps,"A:%-.3gKV   B:%-.3gKV   C:%-.3gKV", *ia1*ny/1000.,*ib1*ny/1000.,*ic1*ny/1000.);
					se_se++; //故障前一周波的母线电压有效值
				}
			jl1(tab[7],(seguik+ds)->t,nqd1);
			sprintf(m_StrStartDateTime.GetBuffer(80), "%c%c/%c%c/%c%c,", 
					*((se+se_se-1)->caps+3), *((se+se_se-1)->caps+4), 
					*((se+se_se-1)->caps+6), *((se+se_se-1)->caps+7), 
					*((se+se_se-1)->caps), *((se+se_se-1)->caps+1));
			m_StrStartDateTime.ReleaseBuffer();
			lstrcat(m_StrStartDateTime.GetBuffer(80), (char *)((se+se_se-1)->caps+12));
			m_StrStartDateTime.ReleaseBuffer();
			m_DateTime = m_StrStartDateTime;
			jlpqc(&nqd,&nqc1,&tzxb,0);
			if(nqc1>1000)
				{
					nqc=lon-3;dsqc=ds;
					goto fz1;
				}
			nqc=nqc1;
			(se+se_se)->order=tab[1];(se+se_se)->trait=trait;
			(se+se_se)->line=128;(se+se_se)->arrange=16;
			sprintf((char *)(se+se_se)->caps,"%-.3fS",(nqc1-nqd1)*.001);
			FaultDelayTime = (char *)(se+se_se)->caps;
			se_se++;//故障持续时间
			dsqc=ds;
			if(nqc1<lon-35)
				{
					(se+se_se)->order=tab[26];(se+se_se)->trait=trait;
					(se+se_se)->line=128;(se+se_se)->arrange=16;
					for(*ia1=*ib1=*ic1=0,i=nqc1;i<nqc1+20;i++)
						{
							if(*ia1<fabs(*(va+i)))*ia1=fabs(*(va+i));
							if(*ib1<fabs(*(vb+i)))*ib1=fabs(*(vb+i));
							if(*ic1<fabs(*(vc+i)))*ic1=fabs(*(vc+i));
						}
					sprintf((char *)(se+se_se)->caps,"A:%-.3gKV   B:%-.3gKV   C:%-.3gKV", *ia1*ny/1000.,*ib1*ny/1000.,*ic1*ny/1000.);
					se_se++; //故障切除后第一周波的母线电压峰值
					(se+se_se)->order=tab[24];
					(se+se_se)->trait=trait;
					(se+se_se)->line=128;
					(se+se_se)->arrange=16;
					if(lon-nqc1>=30)i=2;
					else i=1;
					jl2(ia,ia1,nqc1+3,va1,i);
					jl2(ib,ib1,nqc1+3,vb1,i);
					jl2(ic,ic1,nqc1+3,vc1,i);
					sprintf((char *)(se+se_se)->caps,"A:%-.3gKA   B:%-.3gKA   C:%-.3gKA", *va1*nl/1000.,*vb1*nl/1000.,*vc1*nl/1000.);
					se_se++; //故障切除后第一周波的故障电流有效值
					(se+se_se)->order=tab[25];
					(se+se_se)->trait=trait;
					(se+se_se)->line=128;
					(se+se_se)->arrange=16;
					if(lon-nqc1>=30)i=2;
					else i=1;
					jl2(va,va1,nqc1+3,ia1,i);
					jl2(vb,vb1,nqc1+3,ib1,i);
					jl2(vc,vc1,nqc1+3,ic1,i);
					sprintf((char *)(se+se_se)->caps,"A:%-.3gKV   B:%-.3gKV   C:%-.3gKV", *ia1*ny/1000.,*ib1*ny/1000.,*ic1*ny/1000.);
					se_se++; //故障切除后第一周波的母线电压有效值
				}
			(se+se_se)->order=tab[15];
			(se+se_se)->trait=trait;
			(se+se_se)->line=128;
			(se+se_se)->arrange=16;
			ca=(se+se_se)->caps;
			j=0;
			if(!tzxb)goto fz1;
			if(tzxb&8) { *(ca+j) = uiabcn[2];  j++; *(ca+j) = uiabcn[3];  j++; }
			if(tzxb&4) { *(ca+j) = uiabcn[6];  j++; *(ca+j) = uiabcn[7];  j++; }
			if(tzxb&2) { *(ca+j) = uiabcn[10]; j++; *(ca+j) = uiabcn[11]; j++; }
			if(tzxb&1) { *(ca+j) = uiabcn[14]; j++; *(ca+j) = uiabcn[15]; j++; }
			*(ca+j)=0;
			se_se++;  //跳闸相别
fz1:
			(se+se_se)->order=tab[2];
			(se+se_se)->trait=trait;
			(se+se_se)->line=128;
			(se+se_se)->arrange=16;
			ca=(se+se_se)->caps;
			j=0;
			dsgu=0;
			for(i=5;i<nqc-7;i++)
				{
					k=(*(j2+i))&0xf;
					if((k==1)||(k==2)||(k==4)||(k==8))
						continue;
					if(!k)continue;
					for(jj=0;jj<4;jj++)
						{
							m=*(j2+i-jj);
							if(k!=m)break;
						}
					if(jj!=4)continue;
					if(k<=dsgu)continue;
					dsgu=k;
					if(k&8){*(ca+j)=uiabcn[2];j++;*(ca+j)=uiabcn[3];j++; Wyyph = 1;}
					if(k&4){*(ca+j)=uiabcn[6];j++;*(ca+j)=uiabcn[7];j++; Wyyph = 2;}
					if(k&2){*(ca+j)=uiabcn[10];j++;*(ca+j)=uiabcn[11];j++;Wyyph = 3;}
					if(k&1){*(ca+j)=uiabcn[14];j++;*(ca+j)=uiabcn[15];j++;Wyyph = 4;}
					jj = (int)(((seguik+ds)->t+(seguik+0)->t-(seguik+dsqc)->t)*1000.);
 					sprintf((char *)(ca+j),"(%.3gS)     ",(jj+i-4)*.001);
					j += strlen((char *)(ca+j));
					*(ca+j)=0xd7;
					j++;
					*(ca+j)=0xaa;
					j++;
				}
			xbqc=se_se;
			m_strFaultPhase = _T((se+se_se)->caps);

			if(j) { *(ca+j-2)=0; se_se++; }
			else   { *ca=0;/*lin1=0; */} // wyy do modify //故障相别
			(se+se_se)->order=tab[4];(se+se_se)->trait=trait;
			(se+se_se)->line=128;(se+se_se)->arrange=16;
			for(*ia1=*ib1=*ic1=0,i=nqd1;i<nqd1+20;i++)
				{
					if(*ia1<fabs(*(ia+i)))*ia1=fabs(*(ia+i));
					if(*ib1<fabs(*(ib+i)))*ib1=fabs(*(ib+i));
					if(*ic1<fabs(*(ic+i)))*ic1=fabs(*(ic+i));
				}
			sprintf((char *)(se+se_se)->caps,"A:%-.3gKA   B:%-.3gKA   C:%-.3gKA", *ia1*nl/1000.,*ib1*nl/1000.,*ic1*nl/1000.);
			se_se++; //故障后第一周波的故障电流峰值
			(se+se_se)->order=tab[5];(se+se_se)->trait=trait;
			(se+se_se)->line=128;(se+se_se)->arrange=16;
			if(nqc1-nqd1>=25)i=2;else i=1;
			jl2(ia,ia1,nqd1+3,va1,i);
			jl2(ib,ib1,nqd1+3,vb1,i);
			jl2(ic,ic1,nqd1+3,vc1,i);
			sprintf((char *)(se+se_se)->caps,"A:%-.3gKA   B:%-.3gKA   C:%-.3gKA", *va1*nl/1000.,*vb1*nl/1000.,*vc1*nl/1000.);
			se_se++; //故障后第一周波的故障电流有效值
			(se+se_se)->order=tab[6];(se+se_se)->trait=trait;
			(se+se_se)->line=128;(se+se_se)->arrange=16;
			if(nqc1-nqd1>=25)i=2;
			else i=1;
			jl2(va,va1,nqd1+3,ia1,i);
			jl2(vb,vb1,nqd1+3,ib1,i);
			jl2(vc,vc1,nqd1+3,ic1,i);
			sprintf((char *)(se+se_se)->caps,"A:%-.3gKV   B:%-.3gKV   C:%-.3gKV", *ia1*ny/1000.,*ib1*ny/1000.,*ic1*ny/1000.);
			se_se++; //故障后第一周波的母线电压有效值
			j=jl3(ia,nqd1+3,va1);
			jj=jl3(ib,nqd1+3,vb1);
			jjj=jl3(ic,nqd1+3,vc1);
			if(j||jj||jjj)
				{
					(se+se_se)->order=tab[22];
					(se+se_se)->trait=trait;
					(se+se_se)->line=128;
					(se+se_se)->arrange=16;
					k=0;
					*((se+se_se)->caps)=0;
					if(j) 
						{ 
							sprintf((char *)(se+se_se)->caps,"A:%-.3gKA ",*(va1+1)*nl/1000.);
							k = strlen((char *)(se+se_se)->caps);
						}
					if(jj)	
						{
							sprintf((char *)(se+se_se)->caps+k,"B:%-.3gKA ",*(vb1+1)*nl/1000.);
							k=strlen((char *)(se+se_se)->caps);
						}
					if(jjj)
						{
							sprintf((char *)(se+se_se)->caps+k,"C:%-.3gKA",*(vc1+1)*nl/1000.);
						}
					se_se++; //故障电流直流分量参数
					(se+se_se)->order=tab[23];
					(se+se_se)->trait=trait;
					(se+se_se)->line=128;
					(se+se_se)->arrange=16;
					k=0;
					*((se+se_se)->caps)=0;
					if(j)
						{
							sprintf((char *)(se+se_se)->caps,"A:%-.3gMS ",*va1*1000);
							k=strlen((char *)(se+se_se)->caps);
						}
					if(jj)
						{
							sprintf((char *)(se+se_se)->caps+k,"B:%-.3gMS ",*vb1*1000);
							k=strlen((char *)(se+se_se)->caps);
						}
					if(jjj)
						{
							sprintf((char *)(se+se_se)->caps+k,"C:%-.3gMS",*vc1*1000);
						}
					se_se++; //故障电流直流分量衰减时间常数
				}
			nqd=(nqd1>10)?nqd1:10;
			nqc=(nqc>lon-11)?lon-16:nqc;
			if(nqc-nqd<12)goto end;
			if(!lin1)
				{
					(se+se_se)->order=tab[17];
					(se+se_se)->trait=trait;
					(se+se_se)->line=128;
					(se+se_se)->arrange=16;
					ca=(se+se_se)->caps;
					*(ca+0)=0xa2; 
					*(ca+1)=0xa1;
					*(ca+2)=0;
					se_se++; //区内无故障
					goto end;
				}
			for(i=5;i<=nqc+5;i++)
				{
					if(jlzd<150)
						{
							lb4(va,va1+i,i);
							lb4(vb,vb1+i,i);
							lb4(vc,vc1+i,i);
							lb4(ia,ia1+i,i);
							lb4(ib,ib1+i,i);
							lb4(ic,ic1+i,i);
							lb4(i0,i01+i,i);
							lb4(im,im1+i,i);
						}
					if((jlzd<250)&&(jlzd>=150))
						{
							lb3(va,va1+i,i);
							lb3(vb,vb1+i,i);
							lb3(vc,vc1+i,i);
							lb3(ia,ia1+i,i);
							lb3(ib,ib1+i,i);
							lb3(ic,ic1+i,i);
							lb3(i0,i01+i,i);
							lb3(im,im1+i,i);
						}
					if((jlzd<350)&&(jlzd>=250))
						{
							lb2(va,va1+i,i);
							lb2(vb,vb1+i,i);
							lb2(vc,vc1+i,i);
							lb2(ia,ia1+i,i);
							lb2(ib,ib1+i,i);
							lb2(ic,ic1+i,i);
							lb2(i0,i01+i,i);
							lb2(im,im1+i,i);
						}
					else
						{
							lb1(va,va1+i,i);
							lb1(vb,vb1+i,i);
							lb1(vc,vc1+i,i);
							lb1(ia,ia1+i,i);
							lb1(ib,ib1+i,i);
							lb1(ic,ic1+i,i);
							lb1(i0,i01+i,i);
							lb1(im,im1+i,i);
						}
				}
			for(i=2;i<4;i++)
				*(xa+nqd+i)=*(ra+nqd+i)=*(xb+nqd+i)=*(rb+nqd+i)=*(xc+nqd+i)=*(ra+nqd+i)=
				*(xab+nqd+i)=*(rab+nqd+i)=*(xca+nqd+i)=*(rca+nqd+i)=*(xbc+nqd+i)=*(rbc+nqd+i)=0;
			for(i=nqd-3;i<=nqc+3;i++)
				{
					jdjl(va1,ia1,i01,im1,i,xa+i,ra+i);
					jdjl(vb1,ib1,i01,im1,i,xb+i,rb+i);
					jdjl(vc1,ic1,i01,im1,i,xc+i,rc+i);
					xjjl(va1,vb1,ia1,ib1,i,xab+i,rab+i);
					xjjl(vb1,vc1,ib1,ic1,i,xbc+i,rbc+i);
					xjjl(vc1,va1,ic1,ia1,i,xca+i,rca+i);
				}
			rk=0;
			goto jl_150;
jl_130:
			for(i=2;i<4;i++)
				*(xa+nqd+i)=*(ra+nqd+i)=*(xb+nqd+i)=*(rb+nqd+i)=*(xc+nqd+i)=*(ra+nqd+i)=
				*(xab+nqd+i)=*(rab+nqd+i)=*(xca+nqd+i)=*(rca+nqd+i)=*(xbc+nqd+i)=*(rbc+nqd+i)=0;
			for(i=nqd+3;i<nqc-3;i++)
				{
					k=(i+13)%20+7;
					jdgz(va1,ia1,i01,im1,i,xa+i,ra+i);
					jdgz(vb1,ib1,i01,im1,i,xb+i,rb+i);
					jdgz(vc1,ic1,i01,im1,i,xc+i,rc+i);
					xjgz(va1,ia1,vb1,ib1,i,k,xab+i,rab+i);
					xjgz(vb1,ib1,vc1,ic1,i,k,xbc+i,rbc+i);
					xjgz(vc1,ic1,va1,ia1,i,k,xca+i,rca+i);
				}
			rk=111;
jl_150:
			sx1=sx2=sq1=sq2=sr1=sr2=srx=srr=0.0;
			for(i=nqd;i<nqc-10;i++)
				{	
					if((*(j2+i)&9)==9)tj(xa,ra,&sq1,&sx1,&sr1,&srx,&srr,i);
					if((*(j2+i)&5)==5)tj(xb,rb,&sq1,&sx1,&sr1,&srx,&srr,i);
					if((*(j2+i)&3)==3)tj(xc,rc,&sq1,&sx1,&sr1,&srx,&srr,i);
					if((*(j2+i)& 6)== 6)tj(xbc,rbc,&sq2,&sx2,&sr2,&srx,&srr,i);
					if((*(j2+i)&12)==12)tj(xab,rab,&sq2,&sx2,&sr2,&srx,&srr,i);
					if((*(j2+i)&10)==10)tj(xca,rca,&sq2,&sx2,&sr2,&srx,&srr,i);
				}
			if(sq1+sq2<.0001)continue;
			rf1=50000000.;
			rf2=50000000.;
			fz=(2*jlzd-(sx1+sx2)/(sq1+sq2))/2/jlzd;
			if(sq2>.0001)rf2=fabs(sr2/sq2)*fz;
			if(sq1>.0001)rf1=fabs(sr1/sq1)*fz;
			if((sq1>.0001)&&(sq2<.0001))jl=sx1/sq1;
			if((sq1<.0001)&&(sq2>.0001))jl=sx2/sq2;
			if((sq1>.0001)&&(sq2>.0001))jl=(sx1/sq1/rf1+sx2/sq2/rf2)/(1.0/rf1+1.0/rf2);
			if(rk!=111)
				{  if((rf1>5.)&&(rf2>5.))goto jl_130; }
			if((*(j2+nqc-10)==9)||(*(j2+nqc-10)==5)||(*(j2+nqc-10)==3))
				{

⌨️ 快捷键说明

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