您的位置:首页 > 其它

字符串处理路径问题

2005-07-04 00:12 525 查看
7.3
    我在引用别人的一个3ds导入模型的代码的时候,发现他的纹理文件必须在主目录中。但是模型文件*.3ds 文件可以在任何路径下。可见他把纹理的路径设定在了主目录下,但是我想不能看上去很乱,想把模型和模型的纹理放在一个名为data的目录下,(其实纹理的路径只要是和模型文件在一个目录就好)我需要做的就是做个小的字符串处理的函数,作用是从模型文件*.3ds文件的路径中获得模型所在的目录,这个目录的路径加上纹理文件的名字就是纹理的路径咯,呵呵其实好简单。具体的实现如下:
char * addPath(char * filewithpath, char *filename)//为纹理文件加路径使纹理与模型在同一目录下
{
 char * temp = new char[255];//设定新的路径存储的字符数组
 int i = 0;
 int j = 0;
 while(filewithpath[i] != '/0')//查找模型路径的最后一个分割符"/"
 {
  if (filewithpath[i] == '//')//注意"/"是转义符要用"//"
   j = i;
  i++;
 }
 for (i = 0; i <=j ; i++)//把得到的目录的路径放到新的路径的数组中
 {
  temp[i] = filewithpath[i];
  temp[i+1] = '/0';
 }
 i = 0;
 while (filename[i] != '/0')//把纹理名字加近来
 {
  temp[j+i+1] = filename[i];
  i++;
 }
 temp[j+i+1] = '/0'; //加个字符串结束标志
 return temp;
}

应用的时候
CreateTexture(g_Texture[j], addPath(filename, g_3DModel[j].pMaterials[i].strFile), i);//使用纹理文件名称来装入位图
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  存储