📄 unit1.cpp
字号:
//---------------------------------------------------------------------------
#define begin_part AnsiString("{")
#define end_part AnsiString("}")
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
bool IsStepIn(AnsiString aStr);
bool IsStepOut(AnsiString bStr);
//bool IsAddEnter(AnsiString cStr);
AnsiString Step(AnsiString c,int d);
TStringList *Sign_Information=new TStringList;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
bool IsStepIn(AnsiString aStr)
{
if(aStr==begin_part)
return true;
else
return false;
}
bool IsStepOut(AnsiString bStr)
{
if(bStr==end_part)
return true;
else
return false;
}
/*bool IsAddEnter(AnsiString cStr)
{
if(cStr!="")
return true;
else
return false;
} */
AnsiString Step(AnsiString c,int d)
{
for(int i=0;i<d;i++)
c= " "+c ;
return c;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
OpenDialog1->Filter="*.txt";
OpenDialog1->Execute() ;
TStringList *Information=new TStringList;
Information->LoadFromFile(OpenDialog1->FileName ) ;
//---------去空格-------------------
for(int k=0;k<Information->Count ;k++)
{
AnsiString card1;
int shu=0;
for(int m1=0;m1<Information->Strings[k].Length() ;m1++)
{
card1=Information->Strings[k].SubString(m1,1);
if(card1==" ")
shu=shu+1;
else
break;
}
Sign_Information->Add(Information->Strings[k].SubString(shu,Information->Strings[k].Length()-shu+1));
}
//----- 使{ }单独成行----------
TStringList *str=new TStringList;
for(int j=0;j<Sign_Information->Count;j++)
{
int apos,bpos,cpos,dpos,epos,fpos;
apos=Sign_Information->Strings[j].Pos(begin_part);
bpos=Sign_Information->Strings[j].Pos(end_part);
cpos=Sign_Information->Strings[j].Pos("//");
dpos=Sign_Information->Strings[j].Pos("/*");
epos=Sign_Information->Strings[j].Pos("*/");
if(apos!=0&&bpos!=0)
str->Add(Sign_Information->Strings[j]);
else if(cpos==1)
str->Add(Sign_Information->Strings[j]);
else if(dpos!=0||epos!=0)
str->Add(Sign_Information->Strings[j]);
else
{
if(apos!=0&&apos!=1&&cpos==0) //遇到{的处理
{
str->Add(Sign_Information->Strings[j].SubString(0,apos-1) );
str->Add(Sign_Information->Strings[j].SubString(apos,1) ) ;
str->Add(Sign_Information->Strings[j].SubString(apos+1,Sign_Information->Strings[j].Length()-apos+1));
}
else if(bpos!=0&&bpos!=1&&cpos==0) //遇到}的处理
{
str->Add(Sign_Information->Strings[j].SubString(0,bpos-1) );
str->Add(Sign_Information->Strings[j].SubString(bpos,1) ) ;
str->Add(Sign_Information->Strings[j].SubString(bpos+1,Sign_Information->Strings[j].Length()-bpos+1));
}
else
str->Add(Sign_Information->Strings[j]);
}
}
Sign_Information->Clear() ;
Sign_Information->Text=str->Text ;
//------------去除空字符行----------------
TStringList *str1=new TStringList;
for(int n=0;n<Sign_Information->Count;n++)
{
AnsiString STR;
STR=Sign_Information->Strings[n];
if(STR!="")
str1->Add(Sign_Information->Strings[n]);
else
n=n;
}
Sign_Information->Clear() ;
Sign_Information->Text=str1->Text ;
//Memo1->Lines = Sign_Information;
//-----------缩进---------------------------
Memo1->Clear() ;
int aCurCol=5;
int aStepSize=5;
for(int i=0;i<Sign_Information->Count ;i++)
{
AnsiString a,b,c;
a=Sign_Information->Strings[i].SubString(0,1) ;
if(IsStepIn(a))
{
Memo1->Lines->Add(Step(Sign_Information->Strings[i],aCurCol)) ;
aCurCol=aCurCol+aStepSize;
}
else if(IsStepOut(a))
{
aCurCol=aCurCol-aStepSize;
if(aCurCol<=5)
aCurCol=5;
else
aCurCol=aCurCol;
Memo1->Lines->Add(Step(Sign_Information->Strings[i],aCurCol)) ;
}
else
Memo1->Lines->Add(Step(Sign_Information->Strings[i],aCurCol)) ;
}
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -