hjlin
一般會員

 發表:63 回覆:48 積分:22 註冊:2003-02-11
發送簡訊給我
|
又來請教一個問題,我的檔案為 Merge1 Merge2 Merge3...Merge10
如果我想插入或刪除任一個檔案時,此檔之後的全部檔案序號能自動做加1或減1的動作。要如何寫?
|
RaynorPao
版主
    
 發表:139 回覆:3622 積分:7025 註冊:2002-08-12
發送簡訊給我
|
引言:
又來請教一個問題,我的檔案為 Merge1 Merge2 Merge3...Merge10
如果我想插入或刪除任一個檔案時,此檔之後的全部檔案序號能自動做加1或減1的動作。要如何寫?
hjlin 你好:
試試看這樣寫可不可以呢??
< class="code">
void __fastcall TForm1::Button2Click(TObject *Sender)
{
TMemoryStream *ms=new TMemoryStream;
ms->LoadFromFile("merge1.bmp");
MyInsertFile(ms, 5);
delete ms;
}
void __fastcall TForm1::Button3Click(TObject *Sender)
{
MyDeleteFile(5);
}
void __fastcall TForm1::MyInsertFile(TMemoryStream *ms, int index)
{
int i=index;
int j=0;
while(FileExists("merge" IntToStr(i) ".bmp"))
{
i ;
}
j=i;
while(j>index)
{
RenameFile("merge" IntToStr(j-1) ".bmp", "merge" IntToStr(j) ".bmp");
j--;
}
ms->SaveToFile("merge" IntToStr(index) ".bmp");
}
void __fastcall TForm1::MyDeleteFile(int index)
{
int i=index;
if(FileExists("merge" IntToStr(index) ".bmp"))
{
DeleteFile("merge" IntToStr(index) ".bmp");
while(FileExists("merge" IntToStr(i 1) ".bmp"))
{
RenameFile("merge" IntToStr(i 1) ".bmp", "merge" IntToStr(i) ".bmp");
i ;
}
}
}
備註:
以上程式碼標示為藍色的部分,是用來做測試用的 (可以不用理會),最主要能
夠達成目的,是標示成紅色部分的程式碼 -- Enjoy Researching & Developing -- 發表人 - RaynorPao 於 2003/07/25 15:54:52
------ -- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
|
hjlin
一般會員

 發表:63 回覆:48 積分:22 註冊:2003-02-11
發送簡訊給我
|
引言:
引言:
又來請教一個問題,我的檔案為 Merge1 Merge2 Merge3...Merge10
如果我想插入或刪除任一個檔案時,此檔之後的全部檔案序號能自動做加1或減1的動作。要如何寫?
hjlin 你好:
試試看這樣寫可不可以呢??
< class="code">
void __fastcall TForm1::Button2Click(TObject *Sender)
{
TMemoryStream *ms=new TMemoryStream;
ms->LoadFromFile("merge1.bmp");
MyInsertFile(ms, 5);
delete ms;
}
void __fastcall TForm1::Button3Click(TObject *Sender)
{
MyDeleteFile(5);
}
void __fastcall TForm1::MyInsertFile(TMemoryStream *ms, int index)
{
int i=index;
int j=0;
while(FileExists("merge" IntToStr(i) ".bmp"))
{
i ;
}
j=i;
while(j>index)
{
RenameFile("merge" IntToStr(j-1) ".bmp", "merge" IntToStr(j) ".bmp");
j--;
}
ms->SaveToFile("merge" IntToStr(index) ".bmp");
}
void __fastcall TForm1::MyDeleteFile(int index)
{
int i=index;
if(FileExists("merge" IntToStr(index) ".bmp"))
{
DeleteFile("merge" IntToStr(index) ".bmp");
while(FileExists("merge" IntToStr(i 1) ".bmp"))
{
RenameFile("merge" IntToStr(i 1) ".bmp", "merge" IntToStr(i) ".bmp");
i ;
}
}
}
備註:
以上程式碼標示為藍色的部分,是用來做測試用的 (可以不用理會),最主要能
夠達成目的,是標示成紅色部分的程式碼 -- Enjoy Researching & Developing -- 發表人 - RaynorPao 於 2003/07/25 15:54:52
包子: 謝謝你的指導...
|