分离输入文件的路径和文件名,CAPL也可以向Python一样方便?

📙 相关文章

在这里插入图片描述


📘前言

  • 🍅习惯了用Python的各种库,在用CAPL总是要不断的自己造轮子的,
  • 🍅 分离输入文件的路径和文件名,CAPL也可以向Python一样方便?
  • 🍅演示软硬件环境 Win10 x64 ; CANoe 11 SP2 x64

请添加图片描述

请添加图片描述

📗 Python脚本的方法

下面看下Python的方法,只需要引用os模块即可。

import os
f = "a/b/c/d.txt"
name, ext = os.path.splitext(f)
print (os.path.dirname(f))
print (os.path.basename(f))

输出结果:

a/b/c
d.txt

📗 CAPL脚本的方法

在CAPL中没有库可以用的,我们只能自己造轮子的。

  • 1️⃣ 得到输入文件的文件名
// 得到输入文件的文件名
GBF_ExtractFileName (char pathIn[], char fileNameOut[])
{
   int i, j; 
   j = 0; i = 0;
   //clear fileNameOut
   snprintf(fileNameOut, strlen(fileNameOut), " ");
   for(i=strlen(pathIn)-1; i>= 0; i--)
   {
      if(pathIn[i] == '\\' )
              break;
   }
   if( i != 0)
      i++;
   for( i; i < strlen(pathIn); i++ )
      fileNameOut[j++] = pathIn[i];
   fileNameOut[j] = '\0';
} 

  • 2️⃣ 得到输入文件的文件路径
// 得到输入文件的文件路径
GBF_ExtractFilePath (char pathIn[], char pathOut[])
{
   int i, j; 
   j = 0;i = 0;
   for(i=strlen(pathIn)-1; i>= 0; i--)
   {
      if(pathIn[i] == '\\' )
         break;
   }
   if( i != 0)
      i++;
   for( j = 0; j < i; j++ )
      pathOut[j] = pathIn[j];
}

  • 3️⃣ 测试代码:
  {
    char in_array[300]="a\\b\\c\\d.txt";
    char out_array[300]; 
    char out_array2[300];   
    GBF_ExtractFileName(in_array,out_array);  
    GBF_ExtractFilePath(in_array,out_array2);  
    write("out_FileName = %s ",out_array); 
    write("out_FilePath = %s ",out_array2); 
  }

测试结果:

out_FileName = d.txt 
out_FilePath = a\b\c\ 

注意:
Python 下的输入文件格式: “a/b/c/d.txt”
CAPL 下的输入文件格式:“a\b\c\d.txt”

23

🌎总结

✂️ 欢迎关注下方的公众号,里面也有源码,而且存放了一些通讯协议,ISO,和博主工作中搜集到的一些资料,也许有你感兴趣的。👇点击跳转

7

  • 🚩要有最朴素的生活,最遥远的梦想,即使明天天寒地冻,路遥马亡!

  • 🚩 有微信的小伙伴可以关注下浪哥车载诊断,一个行业内小小圈子,群里有网盘资料源码还有各路大神 闲时交流交流技术,聊聊工作机会啥的。

  • 🚩如果这篇博客对你有帮助,请 “点赞” “评论”“收藏”一键三连 哦!码字不易,大家的支持就是我坚持下去的动力。
    18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蚂蚁小兵

慢慢长夜磨一章好文章,费烟!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值