l7g7479
一般會員
發表:2 回覆:4 積分:1 註冊:2005-07-03
發送簡訊給我
|
我利用 TStringList AnsiString和兩個EDIT,EDIT的欄位作用分別為編號
和姓名?現在是編號無法在開檔的時候自動加1並顯現在EDIT裡面??請問我可以用什麼方法解決? 發表人 - l7g7479 於 2005/07/04 12:31:21
|
cashyy
高階會員
發表:117 回覆:322 積分:212 註冊:2004-04-30
發送簡訊給我
|
您好!
可否再把您要的功能描述清楚?
|
taishyang
站務副站長
發表:377 回覆:5490 積分:4563 註冊:2002-10-08
發送簡訊給我
|
您好: PO程式碼的方式請參考版規說明,煩請修改謝謝您的配合
>
|
GeorgeKu
中階會員
發表:1 回覆:120 積分:74 註冊:2004-10-13
發送簡訊給我
|
你看一下這是否是你要的
//--------------------------------------------------------------------------- #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
發送簡訊給我
|
謝謝你的幫忙喔!還有一個問題怎麼都只存最後一個number??而不是1 2 3 4..
這樣存??
|
GeorgeKu
中階會員
發表:1 回覆:120 積分:74 註冊:2004-10-13
發送簡訊給我
|
你可以把檔案寫入的動作放在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
發送簡訊給我
|
您提供的方法我也試過了 還是只會存最後一個數字
而且程式再執行 並不會將先前的數字載入,反而歸零
樣子就像是我從1 2 3 4...輸到15 ,存的數字就是15
而不是1存到15 ,程式裡面是不是有少一些東西??麻煩您在指教囉
|
GeorgeKu
中階會員
發表:1 回覆:120 積分:74 註冊:2004-10-13
發送簡訊給我
|
歸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
發送簡訊給我
|
如果你要的方式是如我後面所提的,以下的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
發送簡訊給我
|
引言:
如果你要的方式是如我後面所提的,以下的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
發送簡訊給我
|
我想無窮迴圈的問題,你可能要把你的code貼出來,畢竟不知道你其他部分是怎麼寫的,我貼的code你有跑過嗎?會有相同的清況嗎?
|