问答收集

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转换后

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值