明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2238|回复: 7

[求助]字符串指定位置增加字符

[复制链接]
发表于 2010-6-8 13:11:00 | 显示全部楼层 |阅读模式
谁能帮忙写个小程序,框选图中所有单行文字,搜索出含有分号的单行文字,并在其第一个位置加上字符B,在第四个位置加上字符T,多谢。例如:“356;256”,运行程序后变成“B356;T256”
发表于 2010-6-8 18:32:00 | 显示全部楼层
游客,本帖隐藏的内容需要发帖数高于 5 才可浏览,你当前发帖数只有 0

发表于 2010-6-9 19:26:00 | 显示全部楼层
ads_name ssName;
  struct resbuf *pRb;
  pRb=acutBuildList(0,"TEXT",NULL);
  if (acedSSGet(NULL,NULL,NULL,pRb,ssName)!=RTNORM)
  {
   acutRelRb(pRb);
   return;
  }
  acutRelRb(pRb);
  long ssLength;
  ads_name eName;
  acedSSLength(ssName,&ssLength);
  AcDbObjectId ObjID;
  AcDbEntity *pEnt=NULL;
  AcDbText *pTxt=NULL;
  CString strTxt;
  for (long i=0;i<ssLength;i++)
  {
   acedSSName(ssName,i,eName);
   acdbGetObjectId(ObjID,eName);
   acdbOpenAcDbEntity(pEnt,ObjID,AcDb::kForRead);
   pTxt=AcDbText::cast(pEnt);
   if (pTxt==NULL)
   {
    pEnt->close();
    continue;
   }
   strTxt.Format(_T("%s"),pTxt->textString());
   if (strTxt.Find(_T(";"))>=0 || strTxt.Find(_T(";"))>=0)
   {
    if (strTxt.GetAt(0)!='B' && strTxt.GetAt(6)!='T')
    {
     strTxt.Insert(0,'B');
     strTxt.Insert(5,'T');
     pTxt->upgradeOpen();
     pTxt->setTextString(strTxt);
    }
   }
   pTxt->close();
   pTxt=NULL;
   pEnt=NULL;
  }
  acedSSFree(ssName);
 楼主| 发表于 2010-6-10 19:25:00 | 显示全部楼层
好,多谢了,哈哈,还是论坛好,不会被被骂俺太懒。
 楼主| 发表于 2010-6-10 19:57:00 | 显示全部楼层

另外怎样将2d25+(2d12)改为4d25?还请不吝赐教。

 楼主| 发表于 2010-6-10 20:04:00 | 显示全部楼层
也就是用字符串的第一个数字加上左括号后面的第一个数字作为新字符串的第一个数字,加号及后面的都删掉
 楼主| 发表于 2010-6-11 09:36:00 | 显示全部楼层
同时可以吧"2d25+(2d12);2d25"改为"4d25;2d25"
 楼主| 发表于 2010-6-11 09:40:00 | 显示全部楼层

也就是说不能删除分号后面的文字

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-2-27 20:07 , Processed in 0.194105 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表