問答收集

來源:互聯網
上載者:User

1 求助:關於symbian檔案操作
我寫的程式需要從一個檔案中讀取資料,那這個檔案在我開發時應該放在什麼地方呢?當開發好之後打包成sis上傳到手機上時又放在什麼地方呢?謝謝~~
答:
  開發的時候可以放到模擬器的C盤下,例如對於支援CodeWarrior的SDK,在偵錯模式下模擬器的C盤是SDK安裝目錄的"/EPOC32/WINSCW/C/"子目錄。
  程式裡引用的時候可以用絕對路徑:
_LIT(KMyFile, "c://myfile.txt");
  打包到手機上時可以放到C盤上也可以放到儲存卡上,引用方式類似。

2 [求助]關於symbian檔案操作
請問:在symbian系統下怎麼使用Socket通訊??謝謝!
答:
主要是用RSocketServ和RSocket這兩個類,SDK裡有例子:
“/Examples/networking/tcpip”

再請問一下,用Socket接收到從用戶端傳過來的資料流或者是檔案流後,可以儲存到本地的任意類型的檔案嗎?
比如:從用戶端把下載下來的MP3檔案以檔案流的形式通過Socket傳過來後(傳給C++的另一個進程),我們可以以a.dt的檔案名稱(類型)儲存嗎?
答:
可以儲存成本地的任意類型的檔案。

再有,您有沒有做過用C++做XML的解析.在Symbian系統下,有沒有相關的API嗎?(在內建的SDK 中,我沒有找到.更沒有找到類似的例子)
或者,能不能提供一些網站呀.小弟再此謝過了.!
答:
XML解析,我用過NewLC上的Expat庫:
http://newlc.com/mot.php3?id_mot=100
網站參見置頂文章。
*******************************************************************************
問:
讀取檔案路徑的問題。
我在程式中讀取一個txt檔案,調試的時候我放在C:/Symbian/8.0a/S60_2nd_FP2_J/epoc32/wins/c  
  所以程式裡檔案路徑就是“c://xxx.txt”  
  但向手機發布的時候發現,手機的c:不讓發布檔案。  
  只能放在e:上。  
  我考慮在調試時把這個檔案放在C:/Symbian/8.0a/S60_2nd_FP2_J/epoc32/wins/E下,可是總是找不到檔案。  
  請提示。。。。

答:
可以用編譯宏:  
  #if   defined(_DEBUG)  
  _LIT(KMyFileName,   "c://xxx.txt");  
  #else  
  _LIT(KMyFileName,   "e://xxx.txt");  
  #endif  
   
  這樣在調試時用的是c盤上的檔案,在發布時用的是e盤上的檔案.

  這是個解決的方法。  
  可是能不能在/epoc32/wins/E下面呢?

 在Epoc32/wins下建一下名為E的檔案夾不行嗎?

樓上的,手工建的檔案夾不行阿~

 Developer   Library   >   Tools   and   Utilities   >   Emulator   >   Emulator  configuration   >   How   to   configure   virtual   drives  
   
  按上面SDK協助上說的可以為模擬器映射新盤符:  
  開啟SDK根目錄下的“/Epoc32/Data/epoc.ini”檔案,能看見:  
  _EPOC_DRIVE_D   /Symbian/8.0a/S60_2nd_FP2_CW/epoc32/wins/d  
  _EPOC_LocDrv_1   E:  
   
  把第二行替換成:  
  _EPOC_DRIVE_E   /Symbian/8.0a/S60_2nd_FP2_CW/epoc32/wins/e  
   
  我這樣測試了一下:  
  1.   在SDK樓目錄下建立如下子目錄"/Epoc32/wins/e",然後在這個子目錄下建立一個空檔案a.txt  
  2.   建立了一個應用程式,調用如下代碼刪除e盤上的a.txt檔案  
   
  _LIT(KTest,   "e://a.txt");  
  EikFileUtils::DeleteFile(KTest());  
   
  3.   運行後成功刪除,說明e盤可用。

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
大家好,

我最近在嘗試從文字檔裡讀取資料, 並顯示在控制台上。 但是現實的時候螢幕上總是出現錯誤資訊“leave code = -12“。我查到這個錯誤資訊是”找不到指定路徑”, 使我感到很奇怪。我基本上按照symbian說明上的方法寫了代碼,也嘗試了所有可能的路徑表達方法, 但是這個問題始終解決不了。我想知道是不是問題出在我的路徑表達方式有問題? 還是讀取資料之前要進行其它的設定工作?希望大家幫忙解答, 謝謝。

程式如下:

_LIT(KMyFile,"c://....//....//terrain.txt");

RFs iFs;
User::LeaveIfError(iFs.Connect());

RFile myFile;
RFileReadStream iStrFile(myFile);
User::LeaveIfError(iStrFile.Open(iFs, KMyFile, EFileRead));

........

biyu
View Public Profile
Find all posts by biyu
#2   Re: 問題:開啟和讀取txt檔案的問題, 希望大家幫忙 - 2009-04-01, 17:00
Join Date: Jul 2007
Posts: 4,070
Location: ShenZhen, China
 qxiaoyuan
Offline
Forum Nokia Champion
你的KMyFile的實際值是什麼, 不會你的代碼真的寫成"c://....//....//terrain.txt"吧, 這個路徑肯定是錯的,
要寫成你的實際路徑,
假設檔案是在c盤根目錄, 那麼寫成
_LIT(KMyFile,"c://terrain.txt");

同理, 假設在c:/data目錄下, 那麼寫成

_LIT(KMyFile,"c://Data//terrain.txt");

ps. 如果你是指模擬器, 那麼對應的c盤根目錄是在 "%Epoc32%/winscw/c"這樣與你sdk相對應的目錄下, 如"C:/Symbian/9.2/S60_3rd_FP1/Epoc32/winscw/c"

 

----------------------------
堅持學習, 堅持編碼
http://www.devdiv.net/
qxiaoyuan

qxiaoyuan
View Public Profile
Find all posts by qxiaoyuan
#3   Re: 問題:開啟和讀取txt檔案的問題, 希望大家幫忙 - 2009-04-01, 18:56
Join Date: Feb 2009
Posts: 4biyu
Offline
Registered User
謝謝你的回複, 問題已經解決了~~。問題出現在我沒有把檔案放到C:/Symbian/9.2/S60_3rd_FP1/Epoc32/winscw/c"路徑下,而是放在自己的目錄下了。 之前不太清楚模擬器檔案是從這個路徑下提取的。 還需要繼續努力啊~~謝謝大家了
 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&7
case EHelloWorldBasicCommand2:
   {
   
   RFs fsSession;
   RFile rFile;
   
   // Connects a client process to the fileserver
   User::LeaveIfError(fsSession.Connect());
   CleanupClosePushL(fsSession);
   
   //Open file where the stream text is
   User::LeaveIfError(rFile.Open(fsSession,KHelloFileName, EFileStreamText));//EFileShareReadersOnly));// EFileStreamText));
   CleanupClosePushL(rFile);
   
   // copy stream from file to RFileStream object
   RFileReadStream inputFileStream(rFile);
      CleanupClosePushL(inputFileStream);

      // HBufC descriptor is created from the RFileStream object.
      HBufC* fileData = HBufC::NewLC(inputFileStream, 321);
            CAknInformationNote* informationNote;

            informationNote = new ( ELeave ) CAknInformationNote;
            // Show the information Note
            informationNote->ExecuteLD( *fileData );   
   
   // Pop loaded resources from the cleanup stack
   CleanupStack::PopAndDestroy(4); // filedata, inputFileStream, rFile, fsSession
   fsSession.Close();
   }
   break;按照以上方法,S60 SDK 3.0中helloworldbasic常式可以顯示長字串。

 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


裝一個軟體說是需要用ginstall代替install,誰知道怎麼弄?

答:把 Makefile裡的install改成了/usr/ucb/install

怎樣恢複剛剛刪除的檔案(已經清空資源回收筒)
找回誤刪並清除了資源回收筒的文檔
步驟:
1、單擊“開始——運行,然後輸入regedit (開啟註冊表)
2、依次展開:HEKEY——LOCAL——MACHIME/SOFTWARE/microsoft/WINDOWS/ CURRENTVERSION/EXPLORER/DESKTOP/NAMESPACE 在左邊空白外點擊“建立”
,選擇:“主鍵”,把它命名為“645FFO40——5081——101B——9F08——00AA002F954E”
再把右邊的“預設”的主鍵的索引值設為“資源回收筒”,然後退出註冊表。就OK啦。
3、要重啟你的電腦。
只要你機器沒有運行過磁碟整理。系統完好.任何時候的檔案都可以找回來。


<head>裡加上
<base href=" http://<?php echo $_SERVER['SERVER_NAME'].Yii::app()->baseUrl;?>/" />

就可以寫相對路徑了 images/xx

yii開啟url轉換後

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.