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

開啟新檔後Lines的內容一併被清空了

尚未結案
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-07 12:20:13 IP:218.162.xxx.xxx 未訂閱
這是我自己照大大門教我寫的開起新檔 if (PageControl1->ActivePage==TabSheet1) { RichEdit1->Clear(); Form1->Caption = "未命名 - Netpad"; //FileName = ""; } 但是最後的 //FileName = ""; 1.編譯不會過,我就把他注釋起來,這樣子編譯是過了 把常駐程式內的FileName清空,這個沒有做到有關係嗎? 2.還有開啟新檔後,我本身在Lines裡頭有內建一些東西也都會被清空 我不要他被清空啊,要留我自己寫在裡頭的東西。 還剩下4隻kitty^^
taishyang
站務副站長


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-07 14:58:05 IP:210.68.xxx.xxx 未訂閱
請PO上完整的程式碼好讓前輩們看看問題在哪邊
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-07 15:18:39 IP:218.162.xxx.xxx 未訂閱
 
if (PageControl1->ActivePage==TabSheet1)
{
RichEdit1->Clear();
Form1->Caption = "未命名 - Netpad";
//FileName = "";(這裡變成註解就可以了)
}
我不是有照版規的方式,把程式碼放在裡面縮排了嗎? 還有這個就是完整的程式碼了啊^^ 我現在寫到了儲存檔案,也是FileName這邊有問題 [C Error]Undefined symbol 'FileName' 還剩下4隻kitty^^
taishyang
站務副站長


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-07 15:46:07 IP:210.68.xxx.xxx 未訂閱
引言: 我不是有照版規的方式,把程式碼放在裡面縮排了嗎? 您PO的第一篇文章並沒有按照版規的方式縮排(看字型就知道) 還有這個就是完整的程式碼了啊^^ 假如這樣就是完整的程式碼,會出現錯誤是正常的 原因就如同Complier告訴您的Undefined symbol 'FileName' 您可以用Dr.Eye看翻譯出來是什麼意思 我現在寫到了儲存檔案,也是FileName這邊有問題 [C Error]Undefined symbol 'FileName'
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-07-07 16:07:51 IP:218.162.xxx.xxx 未訂閱
全部的程式就只有這樣了 我改好久了,還是找不出來在哪裡有錯誤 只有開啟舊檔和開啟新檔有去使用到FileName而已  但是他就是不給我過...>< 麻煩前輩指導小女子一下,謝謝    
//---------------------------------------------------------------------------
#include 
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N14Click(TObject *Sender)
{
    FindDialog1->Execute();
}
//---------------------------------------------------------------------------    void __fastcall TForm1::N4Click(TObject *Sender)
{     if (OpenDialog1->Execute())//打開選檔案視窗
 {
  if (PageControl1->ActivePage==TabSheet1)//如果在第一個頁面
   RichEdit1->Lines->LoadFromFile(OpenDialog1->FileName);//把檔案資料放到第一個RichEdit中
  if (PageControl1->ActivePage==TabSheet2)//如果在第二個頁面
   RichEdit2->Lines->LoadFromFile(OpenDialog1->FileName);//把檔案資料放到第二個RichEdit中
 }        }
//---------------------------------------------------------------------------
void __fastcall TForm1::N3Click(TObject *Sender)//開新檔案
{
  if (PageControl1->ActivePage==TabSheet1)//如果在第一個頁面
  {
  RichEdit1->Clear();
  Form1->Caption = "未命名 - Netpad";
  FileName = "";
  }
  if (PageControl1->ActivePage==TabSheet2)//如果在第二個頁面
  {
  RichEdit2->Clear();
  Form1->Caption = "未命名 - Netpad";
  FileName = "";
  }
  }
//---------------------------------------------------------------------------
void __fastcall TForm1::N11Click(TObject *Sender)//剪下
{
  if (PageControl1->ActivePage==TabSheet1)//如果在第一個頁面
  {
      RichEdit1->CutToClipboard();
      }      if (PageControl1->ActivePage==TabSheet2)//如果在第一個頁面
  {
      RichEdit2->CutToClipboard();
      }
}
//---------------------------------------------------------------------------    void __fastcall TForm1::N12Click(TObject *Sender)//複製
{
  if (PageControl1->ActivePage==TabSheet1)//如果在第一個頁面
  {
      RichEdit1->CopyToClipboard();
      }      if (PageControl1->ActivePage==TabSheet2)//如果在第一個頁面
  {
      RichEdit2->CopyToClipboard();
      }
}
//---------------------------------------------------------------------------    void __fastcall TForm1::N16Click(TObject *Sender)
{
  if (PageControl1->ActivePage==TabSheet1)//如果在第一個頁面
  {
      RichEdit1->PasteFromClipboard();
      }      if (PageControl1->ActivePage==TabSheet2)//如果在第一個頁面
  {
      RichEdit2->PasteFromClipboard();
      }
}
//---------------------------------------------------------------------------    void __fastcall TForm1::N19Click(TObject *Sender)//全選
{
  if (PageControl1->ActivePage==TabSheet1)//如果在第一個頁面
  {
      RichEdit1->SelectAll();
      }      if (PageControl1->ActivePage==TabSheet2)//如果在第一個頁面
  {
      RichEdit2->SelectAll();
      }
}
//---------------------------------------------------------------------------    void __fastcall TForm1::N5Click(TObject *Sender)//復原
{
  if (PageControl1->ActivePage==TabSheet1)
  {
      RichEdit1->Undo();
      }      if (PageControl1->ActivePage==TabSheet2)
  {
      RichEdit2->Undo();
      }
}
//---------------------------------------------------------------------------    void __fastcall TForm1::N17Click(TObject *Sender)//刪除
{
    if (PageControl1->ActivePage==TabSheet1)//如果在第一個頁面
  {
      RichEdit1->ClearSelection();
      }      if (PageControl1->ActivePage==TabSheet2)//如果在第一個頁面
  {
      RichEdit2->ClearSelection();
      }
}
//---------------------------------------------------------------------------
 
還剩下4隻kitty^^
taishyang
站務副站長


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-07-07 16:25:46 IP:210.68.xxx.xxx 未訂閱
引言:全部的程式就只有這樣了 我改好久了,還是找不出來在哪裡有錯誤 只有開啟舊檔和開啟新檔有去使用到FileName而已 但是他就是不給我過...>< 麻煩前輩指導小女子一下,謝謝
Compiler不認得什麼是FileName,不知道是什麼型態,也不知道您宣告在哪裡
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-07-07 16:42:52 IP:218.162.xxx.xxx 未訂閱
我找到了加上這個就可以了^^ AnsiString FileName = ""; 感謝taishyang前輩的提示 不過因為程式修修改改的,現在程式出現新的問題 [Linker Error] Unresolved external '__fastcall TForm1::Button2Click(System::TObject *)' referenced from C:\程式路徑...... 這個是我之前有放上去的元件按鈕2,現在砍掉了,但是現在編譯時卻有錯 該如何解決啊? 謝謝 還剩下4隻kitty^^
taishyang
站務副站長


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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-07-07 16:55:25 IP:210.68.xxx.xxx 未訂閱
引言:不過因為程式修修改改的,現在程式出現新的問題 [Linker Error] Unresolved external '__fastcall TForm1::Button2Click(System::TObject *)' referenced from C:\程式路徑...... 這個是我之前有放上去的元件按鈕2,現在砍掉了,但是現在編譯時卻有錯 該如何解決啊?
把相關的程式碼拿掉即可,也就是把原本在Button2Click裡的程式碼拿掉 BCB只會把他自己產生的東西拿掉,但沒有這麼厲害能把你加上去的東西跟著拿掉 順心
odyaho
初階會員


發表:60
回覆:104
積分:42
註冊:2005-02-15

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-07-07 17:05:01 IP:202.181.xxx.xxx 未訂閱
開啟你Unit1.cpp的.h檔 應該會看到 void __fastcall Button2Click(TObject *Sender); 把這一行註解掉   或刪除應該就okㄌ吧..    try it..   發表人 -
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-07-07 17:27:21 IP:218.162.xxx.xxx 未訂閱
真的是在Unit1.cpp的.h檔裡頭耶,刪除就好了 還有我有一起把按鈕2的程式刪除啦^^ 不過還剩一個問題就是新開啟檔案後 我的Lines裡頭的東西都會一起被清除 每次打開時Lines,裡頭必須要有我自己加的東西啦 所以RichEdit1->Clear();好像不能用在這 可以清除後再自動重新寫一次Lines的內容嗎? 還剩下4隻kitty^^
taishyang
站務副站長


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

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-07-07 18:19:57 IP:210.68.xxx.xxx 未訂閱
引言: 真的是在Unit1.cpp的.h檔裡頭耶,刪除就好了 還有我有一起把按鈕2的程式刪除啦^^ 不過還剩一個問題就是新開啟檔案後 我的Lines裡頭的東西都會一起被清除 每次打開時Lines,裡頭必須要有我自己加的東西啦 所以RichEdit1->Clear();好像不能用在這 可以清除後再自動重新寫一次Lines的內容嗎?
實在是看太懂... 不知道是不是在>
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#12 引用回覆 回覆 發表時間:2005-07-07 18:25:51 IP:218.162.xxx.xxx 未訂閱
嗯嗯^^我再說一次好了 RichEdit裡面的Lines有我自己要的內容在 每次開檔時我都要他出現(這邊沒有問題) 但是開新檔時-->RichEdit1->Clear(); 會把內容全部清掉對吧,就變成空白的了 Lines裡頭的內容也都不見了 就是這樣^^ 還剩下4隻kitty^^
taishyang
站務副站長


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

發送簡訊給我
#13 引用回覆 回覆 發表時間:2005-07-07 19:03:38 IP:210.68.xxx.xxx 未訂閱
您好: 
   可以用下面的方式清除某一範圍的內容
   for (int i=3;iLines->Count; i  )
   {
      RichEdit1->Lines->Delete(i);
   } 
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#14 引用回覆 回覆 發表時間:2005-07-07 19:57:39 IP:218.162.xxx.xxx 未訂閱
for (int i=3;iLines->Count; i ) { RichEdit1->Lines->Delete(i); } 這個我有看懂,不過要界定是哪一個範圍很困難, 因為我寫在Line裡的東西很多,有跳行空白,不好算計算哪裡可以刪除 如果先把lines的內容寫在另一個檔案裡, 在開啟每一個檔案時,把Lines的檔案寫入新開的檔案中 這樣比較簡單,我還在研究中..^^ 誰說女生不會寫程式,只是寫的比較爛..><
taishyang
站務副站長


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

發送簡訊給我
#15 引用回覆 回覆 發表時間:2005-07-08 00:07:19 IP:218.168.xxx.xxx 未訂閱
引言: 這個我有看懂,不過要界定是哪一個範圍很困難, 因為我寫在Line裡的東西很多,有跳行空白,不好算計算哪裡可以刪除 如果先把lines的內容寫在另一個檔案裡, 既然已經知道內容是什麼就可以利用RichEdit1->Lines->Count 得知有幾行,就可以知道要從哪裡開始刪除之後的資料 在開啟每一個檔案時,把Lines的檔案寫入新開的檔案中 這樣比較簡單,我還在研究中..^^
引言: 誰說女生不會寫程式,只是寫的比較爛..><
不是性別的問題,而是花多少時間在這上面
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#16 引用回覆 回覆 發表時間:2005-07-08 00:14:58 IP:218.162.xxx.xxx 未訂閱
我知道你的意思,不過實際上我在lines裡頭加上的內容是這樣的 path://使用者內容//使用者內容 filesgroup://使用者內容....... . . . . 略 格式是固定的沒有錯,但是很複雜,所以這樣做並不會比較輕鬆^^ 今天我做出了好多東西,很謝謝你和其他前輩的幫忙和提示 誰說女生不會寫程式,只是寫的比較爛..><
taishyang
站務副站長


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

發送簡訊給我
#17 引用回覆 回覆 發表時間:2005-07-08 00:19:26 IP:218.168.xxx.xxx 未訂閱
ok 我放棄< > 發覺您問過的問題很多都是沒有把詳細情況說清楚... 這樣必須來回討論很多次< > 留待其他前輩來幫您了,不好意思
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#18 引用回覆 回覆 發表時間:2005-07-08 00:23:02 IP:218.162.xxx.xxx 未訂閱
不會~很謝謝你啊~ 我太笨了..對不起>< 誰說女生不會寫程式,只是寫的比較爛..><
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#19 引用回覆 回覆 發表時間:2005-07-08 23:01:47 IP:59.115.xxx.xxx 未訂閱
Miki-lion 妳好:    一般而言,RichEdit1->Clear() 的設定時機是在清除 RichEdit 的所有內容,以供使用者自行輸入資料時使用的。 如果妳是要直接載入一個檔案的內容到 RichEdit 內,那就使用:
RichEdit->Lines->LoadFromFile(myFile);
但如果妳是想要保留 RichEdit 的現有內容,然後附加一個檔案內容到 RichEdit 內,那就可以使用類似下列的作法:
TStringList *sl = new TStringList;
sl->LoadFromFile(myFile);
RichEdit1->Lines->Add(sl->Text);
delete sl;
7 天天敲鍵盤 v 時時按滑鼠 8
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#20 引用回覆 回覆 發表時間:2005-07-09 00:53:14 IP:218.162.xxx.xxx 未訂閱
這邊應該才是我要的 RichEdit->Lines->LoadFromFile(myFile); 我想到的流程為 空白的RichEdit->將一個寫好的檔案放進RichEdit ->就是我要的(有內建內容的RichEdit) myfile是我自己的檔案嗎? 這邊不知怎樣下手 謝謝^^ 誰說女生不會寫程式,只是寫的比較爛..><
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#21 引用回覆 回覆 發表時間:2005-07-09 01:13:46 IP:59.115.xxx.xxx 未訂閱
Miki-lion 妳好:    如果妳是使用 OpenDialog 來設定預載入的檔案,那麼妳可以將 OpenDialog1->FileName 代入 myFile 的位置:
RichEdit->Lines->LoadFromFile(OpenDialog1->FileName);
或是先宣告一個 AnsiString 變數:
AnsiString myFile = "c:\\temp.txt";
RichEdit->Lines->LoadFromFile(myFile);
如果妳是要直接載入固定的檔案,那麼也可以直接將檔案路徑與名稱用雙引號直接代入
RichEdit->Lines->LoadFromFile("c:\\temp.txt");
7 天天敲鍵盤 v 時時按滑鼠 8
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#22 引用回覆 回覆 發表時間:2005-07-09 01:20:22 IP:218.162.xxx.xxx 未訂閱
已經好了 下面是完整的程式碼了 謝謝你^^     
 
  if (PageControl1->ActivePage==TabSheet1)
  {
  RichEdit1->Clear();
  Form1->Caption = "未命名 - NetPad";
  FileName = "";
  RichEdit1->Lines->LoadFromFile("c:\\temp.txt");
  }
  if (PageControl1->ActivePage==TabSheet2)
  {
  RichEdit2->Clear();
  Form1->Caption = "未命名 - NetPad";
  FileName = "";
  RichEdit2->Lines->LoadFromFile("c:\\temp.txt");
  }
  }
誰說女生不會寫程式,只是寫的比較爛..><
系統時間:2024-04-19 5:42:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!