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

很難看的寫法? 有關AnsiString宣告和for迴圈

尚未結案
e_snare
一般會員


發表:26
回覆:35
積分:12
註冊:2004-03-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-18 23:48:15 IP:203.67.xxx.xxx 未訂閱
就如會員註冊的輸入欄位有二十個的話,不只是下面的兩個, 照我這樣寫,那for迴圈就要寫二十次,除了另存新檔,和存檔, 再加一些判断重覆檔再寫入的不同function,就要多好幾個二十次! 請問如何來宣告AnsiString,並改寫迴圈讓它更簡潔???? 還是問題不出在這??????????    void __fastcall TSDIAppForm::FileSaveAsItemClick(TObject *Sender) {  AnsiString temp1;  AnsiString temp2;  int i;     for (i=0;iText.Length();i ) temp1 =IntToHex(Edit1->Text[i 1], 2); for (i=0;iText.Length();i ) temp2 =IntToHex(Edit2->Text[i 1], 2); if (SaveDialog->Execute()) { if (!FileExists(SaveDialog->FileName)) { TStringList *str=new TStringList; str->Add(temp1); str->Add(temp2); str->SaveToFile(SaveDialog->FileName); delete str; } } } 發表人 - e_snare 於 2004/03/18 23:49:30
taishyang
站務副站長


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-18 23:54:30 IP:140.135.xxx.xxx 未訂閱
e_snare您好: 您的問題與下面連結是同樣的意思 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=46340 可利用
FindComponent
順心
e_snare
一般會員


發表:26
回覆:35
積分:12
註冊:2004-03-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-03-19 00:03:38 IP:203.67.xxx.xxx 未訂閱
謝謝taishyang回應! 這篇我曾有看過,但沒很仔細看, 那我再研究一下,再上來和大家分享。    
e_snare
一般會員


發表:26
回覆:35
積分:12
註冊:2004-03-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-03-22 20:47:23 IP:210.66.xxx.xxx 未訂閱
引言: e_snare您好: 您的問題與下面連結是同樣的意思 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=46340 可利用
FindComponent
順心 < face="Verdana, Arial, Helvetica"> 大大,這個問題我還是搞不定,我想問題出在 我能不能這樣?AnsiString str[2] = Edit1->Text,Edit2->Text,Edit3->Text 唉,好像不行這樣。 還有這篇文章我看不懂,try不出來。
taishyang
站務副站長


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-03-22 23:21:26 IP:140.135.xxx.xxx 未訂閱
AnsiString str[2] = Edit1->Text,Edit2->Text,Edit3->Text
改成
AnsiString str[3] = {Edit1->Text,Edit2->Text,Edit3->Text}
我想您要的code可能是像下面這樣
  AnsiString str[3]; //假設有3個TEdit
  for (int EditIndex=1; EditIndex<=3; EditIndex  )
  {
    int TextLen=((TEdit* )FindComponent("Edit" IntToStr(EditIndex)))->Text.Length();
    AnsiString EditText=((TEdit* )FindComponent("Edit" IntToStr(EditIndex)))->Text;
    AnsiString Data;
    for (int i=1; i<=TextLen; i  )
      Data  = IntToHex(EditText.SubString(i,1).ToInt(),2);
    Memo1->Lines->Add(Data);
    str[EditIndex-1]=Data;
  }
順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~ 發表人 -
系統時間:2024-06-26 11:45:07
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!