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

OpenDialog開檔問題

答題得分者是:Stallion
huei_brother
一般會員


發表:36
回覆:15
積分:10
註冊:2004-08-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-19 13:32:13 IP:211.76.xxx.xxx 未訂閱
各位前輩    我寫了ㄧ個程式但在開檔的部份有些問題請大家幫幫我 p.s我讀進來的檔案大都為.wav或.mpeg的影音檔       
  int FileLen;
  double *signal; 
  TStringList *signal = new TStringList;
  
  if(OpenDialog->Execute()){
    signal->LoadFromFile(OpenDialog->FileName);
    return;
  }
  FileLen= filelength(signal); //算出讀到檔案的大小
  //把所讀到的檔案內容存到一個動態記憶體
  signal = (double *)calloc(OpenFile, sizeof(double));
  
錯誤訊息 Cannot convert 'TStringList *' to 'int' Type mismatch in parameter '__handle' (wanted 'int', got 'TStringList *') Cannot convert 'TStringList *' to 'unsigned int' Type mismatch in parameter '__nitems' (wanted 'unsigned int', got 'TStringList *')
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-19 18:44:56 IP:211.22.xxx.xxx 未訂閱
STRINGLIST適用於讀取純文字,WAV及MPEG是二進位檔案,請使用TMemoryStream等。 ------------------- 學,然後知不足。 發表人 -
huei_brother
一般會員


發表:36
回覆:15
積分:10
註冊:2004-08-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-19 22:56:14 IP:211.76.xxx.xxx 未訂閱
Stallion您好    謝謝您的回答但是還是有些問題請您在幫忙一下就是我讀檔時卻出現RIFF? 的訊息並沒有出現檔案的內容是我哪裡搞錯了嗎   
 
   
   AnsiString a;
   if(OpenDialog->Execute()){
     TMemoryStream *ms = new TMemoryStream;
     ms->Position = 0;
     ms->LoadFromFile(OpenDialog->FileName);
     a.SetLength(ms->Size);
     ms->Read(a.c_str(), ms->Size);
     Memo1->Text=a;
     delete ms;
  }
  
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-19 23:08:34 IP:211.22.xxx.xxx 未訂閱
Memo的text是存放可見純文字的,你讀出來的是二進位檔,很多是不可見的文字,不可用上述的元件顯示,如果必須,必須先轉換成十六進位的文字才顯示出來。 十六進位轉換看看這個討論: http://delphi.ktop.com.tw/topic.php?topic_id=55146 ------------------- 學,然後知不足。
系統時間:2024-05-18 5:32:40
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!