線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:849
推到 Plurk!
推到 Facebook!

我的程式裡編號如何在開檔時自動加一並顯示欄位??

答題得分者是:GeorgeKu
l7g7479
一般會員


發表:2
回覆:4
積分:1
註冊:2005-07-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-04 10:12:56 IP:219.68.xxx.xxx 未訂閱
我利用 TStringList AnsiString和兩個EDIT,EDIT的欄位作用分別為編號 和姓名?現在是編號無法在開檔的時候自動加1並顯現在EDIT裡面??請問我可以用什麼方法解決? 發表人 - l7g7479 於 2005/07/04 12:31:21
cashyy
高階會員


發表:117
回覆:322
積分:212
註冊:2004-04-30

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-04 11:19:04 IP:59.104.xxx.xxx 未訂閱
您好! 可否再把您要的功能描述清楚?
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-04 11:21:28 IP:210.68.xxx.xxx 未訂閱
您好:    PO程式碼的方式請參考版規說明,煩請修改謝謝您的配合 >
GeorgeKu
中階會員


發表:1
回覆:120
積分:74
註冊:2004-10-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-04 12:38:37 IP:61.228.xxx.xxx 未訂閱
你看一下這是否是你要的
//---------------------------------------------------------------------------    #include 
#include 
#pragma hdrstop    #include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int no;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------    void __fastcall TForm1::Button1Click(TObject *Sender)
{
no=no 1;
Edit1->Text=IntToStr(no);
}
//---------------------------------------------------------------------------    void __fastcall TForm1::Button2Click(TObject *Sender)
{
FILE *fp;
if ( (fp=fopen("data.txt", "wt"))==NULL )
return ;
fprintf(fp, "%d", no);
fclose(fp);
Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
FILE *fp;
if ( (fp=fopen("data.txt", "r t"))!=NULL )
{
fscanf(fp, "%d", &no);
fclose(fp);
}
Edit1->Text=IntToStr(no);
}
//---------------------------------------------------------------------------
l7g7479
一般會員


發表:2
回覆:4
積分:1
註冊:2005-07-03

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-07-04 12:57:43 IP:219.68.xxx.xxx 未訂閱
謝謝你的幫忙喔!還有一個問題怎麼都只存最後一個number??而不是1 2 3 4.. 這樣存??
GeorgeKu
中階會員


發表:1
回覆:120
積分:74
註冊:2004-10-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-07-04 13:10:40 IP:61.228.xxx.xxx 未訂閱
你可以把檔案寫入的動作放在Button1Click裡面. 如下:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
no=no 1;
Edit1->Text=IntToStr(no);
FILE *fp;
if ( (fp=fopen("data.txt", "wt"))==NULL )
return ;
fprintf(fp, "%d", no);
fclose(fp);
}
l7g7479
一般會員


發表:2
回覆:4
積分:1
註冊:2005-07-03

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-07-04 19:58:30 IP:211.76.xxx.xxx 未訂閱
您提供的方法我也試過了 還是只會存最後一個數字 而且程式再執行 並不會將先前的數字載入,反而歸零 樣子就像是我從1 2 3 4...輸到15 ,存的數字就是15 而不是1存到15 ,程式裡面是不是有少一些東西??麻煩您在指教囉
GeorgeKu
中階會員


發表:1
回覆:120
積分:74
註冊:2004-10-13

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-07-06 10:01:41 IP:61.228.xxx.xxx 未訂閱
歸0的問題,可能你沒把我先前提供給你的FormCreate部分的CODE加進去. 另外你所提的存成1 2 3 4...15,你是否是要在data.txt檔內看到的內容是: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 而不是單獨: 15
GeorgeKu
中階會員


發表:1
回覆:120
積分:74
註冊:2004-10-13

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-07-06 10:27:23 IP:61.228.xxx.xxx 未訂閱
如果你要的方式是如我後面所提的,以下的CODE你可以參考看看:
//---------------------------------------------------------------------------    #include 
#include 
#pragma hdrstop    #include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int no=0;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------    void __fastcall TForm1::Button1Click(TObject *Sender)
{
no=no 1;
Edit1->Text=IntToStr(no);
FILE *fp;
if ( (fp=fopen("data.txt", "a t"))==NULL )
return ;
fprintf(fp, "%d ", no);
fclose(fp);
}
//---------------------------------------------------------------------------    void __fastcall TForm1::FormCreate(TObject *Sender)
{
FILE *fp;
if ( (fp=fopen("data.txt", "r t"))!=NULL )
{
while(fscanf(fp, "%d", &no)!=EOF){};
fclose(fp);
}
Edit1->Text=IntToStr(no);
}
//---------------------------------------------------------------------------
l7g7479
一般會員


發表:2
回覆:4
積分:1
註冊:2005-07-03

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-07-06 17:09:09 IP:219.68.xxx.xxx 未訂閱
引言: 如果你要的方式是如我後面所提的,以下的CODE你可以參考看看:
//---------------------------------------------------------------------------    #include 
#include 
#pragma hdrstop    #include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int no=0;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------    void __fastcall TForm1::Button1Click(TObject *Sender)
{
no=no 1;
Edit1->Text=IntToStr(no);
FILE *fp;
if ( (fp=fopen("data.txt", "a t"))==NULL )
return ;
fprintf(fp, "%d ", no);
fclose(fp);
}
//---------------------------------------------------------------------------    void __fastcall TForm1::FormCreate(TObject *Sender)
{
FILE *fp;
if ( (fp=fopen("data.txt", "r t"))!=NULL )
{
while(fscanf(fp, "%d", &no)!=EOF){};
fclose(fp);
}
Edit1->Text=IntToStr(no);
}
//---------------------------------------------------------------------------
我的txt是要從1存到15,這問題我用ansistring和tstringlist可以改善,現在程式變的很好笑,下了while(fscanf(fp, "%d", &no)!=EOF){};這指令讓一切變跑無窮迴圈,我之前的寫法跟您也差不多,不過執行幾次後,也會變成無窮回圈,攪不太懂原因
GeorgeKu
中階會員


發表:1
回覆:120
積分:74
註冊:2004-10-13

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-07-07 08:58:01 IP:61.228.xxx.xxx 未訂閱
我想無窮迴圈的問題,你可能要把你的code貼出來,畢竟不知道你其他部分是怎麼寫的,我貼的code你有跑過嗎?會有相同的清況嗎?
系統時間:2024-06-08 13:30:38
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!