全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:749
推到 Plurk!
推到 Facebook!

程式碼排序

尚未結案
shing.net
中階會員


發表:207
回覆:124
積分:66
註冊:2002-03-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-07 09:08:26 IP:61.218.xxx.xxx 未訂閱
請問delphi有人寫程式碼排序工具 不知BCB有沒有? 謝謝
Albertz
初階會員


發表:2
回覆:57
積分:31
註冊:2002-09-05

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-09-07 09:19:39 IP:211.20.xxx.xxx 未訂閱
程式碼排序工具? 你是指縮排還是其他的東西? 可否說明一下
shing.net
中階會員


發表:207
回覆:124
積分:66
註冊:2002-03-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-09-08 09:48:56 IP:61.218.xxx.xxx 未訂閱
引言: 程式碼排序工具? 你是指縮排還是其他的東西? 可否說明一下
對,類似縮排相關工具
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-09-09 22:25:20 IP:221.169.xxx.xxx 未訂閱
shing.net:程式碼縮排在C中是比較好處理的,注意的是
/*、*/、//、{、}這幾個符號而已我列出我初寫的程式供參考,
於Form上放一個Edit1作為你Tab Stop的數據我預設值為2,放一個
OpenDialog1開啟一個.Cpp檔,一個Button作為執行,先聲明本程式並未
考慮到字串裡上述的那些符號及if、else等其他判斷,
我想留給你作功課!輸出檔案為你開啟的
Cpp檔名前加_(底線)。
#include "stdio.h"
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  FILE *file1; // 讀入
  FILE *file2; // 輸出
  if (OpenDialog1->Execute()) {
    file1=fopen(OpenDialog1->FileName.c_str(),"r");
    AnsiString S=OpenDialog1->FileName;
    int j=S.LastDelimiter("\\");
    S="_" S.SubString(j 1,S.Length()-1);
    S= OpenDialog1->FileName.SubString(1,j) S;
    if (FileExists(S))
            DeleteFile(S.c_str());
    file2=fopen(S.c_str(),"w");
    char msg[254];
    AnsiString Msg;
    fseek(file1, 0, SEEK_SET);
    int Tab_Stop=StrToIntDef(Edit1->Text,2);
    int Point_s=0;
    bool TF=true;
    while (!feof(file1))
    {
      S="";
      StrPCopy(msg,'\0');
      fgets(msg, 254, file1);
      Msg=msg;
      Msg=Msg.Trim();
      if (Msg.SubString(1,2) != "/*" && TF) {
        if (Msg.SubString(1,2) != "//") {
          if (Msg.Pos("}") != 0)
            Point_s--;
          Msg=Append_Str(Msg," ",(Point_s*Tab_Stop),0);
          if (Msg.Pos("{") != 0)
            Point_s  ;
        }
      }
      else {
        if (Msg.Pos("*/") !=0 )
          TF=true;
        else
          TF=false;
      }
      fprintf(file2,"%s\n",Msg.c_str());
    }
    if (fclose(file1) != 0)
      fclose(file1);
    if (fclose(file2) != 0)
      fclose(file2);
  }
  delete file1;
  delete file2;
}
//---------------------------------------------------------------------------
// 字串,補入字元,位數,0:補左 1:補右
AnsiString  __fastcall TForm1::
    Append_Str(AnsiString DataString,AnsiString WordString,int DLen,int L_R)
{
  AnsiString Ret=DataString,S="";
  for (int i=0; i < DLen;i  ) {
    S =WordString;
  }
  if (L_R==0) // Left
    Ret=S Ret;
  else
    Ret =WordString;
  return Ret;
}    請參考!    
Andy Chang
------
Andy Chang
系統時間:2024-09-30 15:09:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!