信息发布软件,b2b软件,广告发布软件

 找回密码
 立即注册
搜索
查看: 4729|回复: 48
打印 上一主题 下一主题

[『VB.NET 图文教程』] vb.net排序文件名算法和实例教程

[复制链接]

44

主题

106

帖子

918

积分

积分
918
跳转到指定楼层
宣传软件楼主
发表于 2016-11-15 13:28:41 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

软件教程首图:

软件教程分类:VB.NET 图文教程 

软件图文教程视频教程分类:软件图文教程 

软件教程难易程度:软件初级教程 

软件教程发布日期:2016-11-15

软件教程关键字:

① 本信息收集于网络,如有不对的地方欢迎联系我纠正!
② 本信息免费收录,不存在价格的问题!
③ 如果您的网站也想这样出现在这里,请您加好友情链接,我当天会审核通过!

④友情链接关键字:软件定制网站 网址:http://www.postbbs.com

软件教程详细描述
文件多了我们找起来会很困难,我们现在来做一个关于VB.NET文件名排序的一个小案例,以后你的文件都会按一定的顺序排列,也加快你的查询速度。
VB.NET文件名排序案例:
输入 : a1,a2,a10,a001 。我们知道,如果按照字符串比较,结果应该是 a001,a1,a10,a2,但我们期望的结果应该是a001,a1,a2,a10.
自己写了一个VB.NET文件名排序算法,请参考,或者有更好的算法,请赐教
  • VB.NET code /*  
  • Return Value Description  
  • < 0  arg1 less than arg2  
  • 0  arg1 equivalent to arg2  
  • > 0  arg1 greater than arg2  
  • */  
  • int compare(const void* arg1,const void* arg2)  
  • {  
  • if (NULL==arg1||NULL==arg2)//address of item  
  • return 0;  
  • LPSTR lpText1 = *( TCHAR** )arg1; //content of item  
  • LPSTR lpText2 = *( TCHAR** )arg2; //content of item  
  • if (NULL==lpText1||NULL==lpText2)  
  • return 0;  
  • int nText1Len = _tcslen(lpText1);  
  • int nText2Len = _tcslen(lpText2);  
  • int nText1IndexHandled = 0;  
  • int nText2IndexHandled = 0;  
  • int nRet = 0;  
  • for (;;)  
  • {  
  • if (nText1IndexHandled==nText1Len||nText2IndexHandled==nText2Len) //don't compare complete since all are same, "ab","abc"  
  • {  
  • TCHAR chOffset1 = nText1IndexHandled<nText1Len?lpText1[nText1IndexHandled]:0;  
  • TCHAR chOffset2 = nText2IndexHandled<nText2Len?lpText2[nText2IndexHandled]:0;  
  • nRet = (int)((WORD)chOffset1-(WORD)chOffset2);  
  • break;  
  • }  
  • TCHAR ch1 = *(lpText1+nText1IndexHandled);  
  • TCHAR ch2 = *(lpText2+nText2IndexHandled);  
  • if (isdigit(ch1)&&isdigit(ch2)) // if digit, change to number and compare  
  • {  
  • TCHAR* lpNum1 = new TCHAR[nText1Len];  
  • TCHAR* lpNum2 = new TCHAR[nText2Len];  
  • if (NULL==lpNum1||NULL==lpNum2)  
  • return 0;  
  • memset(lpNum1,0,nText1Len*sizeof(TCHAR));  
  • memset(lpNum2,0,nText2Len*sizeof(TCHAR));  
  • extractnumber(lpText1,nText1Len,nText1IndexHandled,lpNum1);  
  • extractnumber(lpText2,nText2Len,nText2IndexHandled,lpNum2);  
  • nRet = comparenumber(lpNum1,lpNum2);  
  • delete[] lpNum1;  
  • delete[] lpNum2;  
  • }  
  • else  
  • {  
  • nRet = (int)((WORD)ch1-(WORD)ch2);  
  • nText1IndexHandled++;  
  • nText2IndexHandled++;  
  • }  
  • if (nRet!=0)  
  • break;  
  • }  
  • return nRet;  
  • }  
  • TCHAR* extractnumber(TCHAR* lpBuf,int nLen,int& nIndexBegin,TCHAR* lpNumber)  
  • {  
  • if (NULL==lpBuf||NULL==lpNumber)  
  • return lpNumber;  
  • for (int i=nIndexBegin,nIndex=0;i<nLen;++i,++nIndexBegin)  
  • {  
  • TCHAR ch = *(lpBuf+i);  
  • if (!isdigit(ch))  
  • break;  
  • lpNumber[nIndex++]=ch;  
  • }  
  • return lpNumber;  
  • }  
  • int comparenumber(TCHAR* lpNumber1,TCHAR* lpNumber2)  
  • {  
  • if (NULL==lpNumber1||NULL==lpNumber2)  
  • return 0;  
  • int nNum1Len = _tcslen(lpNumber1);  
  • int nNum2Len = _tcslen(lpNumber2);  
  • int nMaxLen = max(nNum1Len,nNum2Len);  
  • TCHAR* lpFormatNum1 = new TCHAR[nMaxLen+1];  
  • TCHAR* lpFormatNum2 = new TCHAR[nMaxLen+1];  
  • if (NULL==lpFormatNum1||NULL==lpFormatNum2)  
  • return 0;  
  • memset(lpFormatNum1,_T('0'),nMaxLen*sizeof(TCHAR));  
  • memset(lpFormatNum2,_T('0'),nMaxLen*sizeof(TCHAR));  
  • lpFormatNum1[nMaxLen]=0;  
  • lpFormatNum2[nMaxLen]=0;  
  • int nPos = 0, nRet = 0;  
  • int nIndex = nMaxLen-1;  
  • for (nPos=nNum1Len-1;nPos>=0;--nPos)  
  • lpFormatNum1[nIndex--]=lpNumber1[nPos];  
  • nIndex = nMaxLen-1;  
  • for (nPos=nNum2Len-1;nPos>=0;--nPos)  
  • lpFormatNum2[nIndex--]=lpNumber2[nPos];  
  • for (nPos=0;nPos<nMaxLen;++nPos)  
  • {  
  • nRet = lpFormatNum1[nPos]-lpFormatNum2[nPos];  
  • if (nRet!=0)  
  • break;  
  • }  
  • delete[] lpFormatNum1;  
  • delete[] lpFormatNum2;  
  • return nRet;  
  • }


unto中国工业信息网站分类信息群发宣传工具自动发帖脚本next全球塑胶网全自动群发帖子网络宣传工具软件脚本
回复

使用道具 举报

44

主题

106

帖子

918

积分

积分
918
信息发布软件沙发
 楼主| 发表于 2016-11-15 13:29:44 | 只看该作者

输入 : a1,a2,a10,a001

  我们知道,如果按照字符串比较,结果应该是 a001,a1,a10,a2,但我们期望的结果应该是a001,a1,a2,a10.

  自己写了一个算法,请参考,或者有更好的算法,请赐教

  /*

  Return Value Description

  < 0  arg1 less than arg2

  0  arg1 equivalent to arg2

  > 0  arg1 greater than arg2

  */

  int compare(const void* arg1,const void* arg2)

  {

  if (NULL==arg1||NULL==arg2)//address of item

  return 0;

  LPSTR lpText1 = *( TCHAR** )arg1; //content of item

  LPSTR lpText2 = *( TCHAR** )arg2; //content of item

  if (NULL==lpText1||NULL==lpText2)

  return 0;

  int nText1Len = _tcslen(lpText1);

  int nText2Len = _tcslen(lpText2);

  int nText1IndexHandled = 0;

  int nText2IndexHandled = 0;

  int nRet = 0;

  for (;;)

  {

  if (nText1IndexHandled==nText1Len||nText2IndexHandled==nText2Len) //don't compare complete since all are same, "ab","abc"

  {

  TCHAR chOffset1 = nText1IndexHandled<nText1Len?lpText1[nText1IndexHandled]:0;

  TCHAR chOffset2 = nText2IndexHandled<nText2Len?lpText2[nText2IndexHandled]:0;

  nRet = (int)((WORD)chOffset1-(WORD)chOffset2);

  break;

  }

  TCHAR ch1 = *(lpText1+nText1IndexHandled);

  TCHAR ch2 = *(lpText2+nText2IndexHandled);

  if (isdigit(ch1)&&isdigit(ch2)) // if digit, change to number and compare

  {

  TCHAR* lpNum1 = new TCHAR[nText1Len];

  TCHAR* lpNum2 = new TCHAR[nText2Len];

  if (NULL==lpNum1||NULL==lpNum2)

  return 0;

  memset(lpNum1,0,nText1Len*sizeof(TCHAR));

  memset(lpNum2,0,nText2Len*sizeof(TCHAR));

  extractnumber(lpText1,nText1Len,nText1IndexHandled,lpNum1);

  extractnumber(lpText2,nText2Len,nText2IndexHandled,lpNum2);

  nRet = comparenumber(lpNum1,lpNum2);

  delete[] lpNum1;

  delete[] lpNum2;

  }

  else

  {

  nRet = (int)((WORD)ch1-(WORD)ch2);

  nText1IndexHandled++;

  nText2IndexHandled++;

  }

  if (nRet!=0)

  break;

  }

  return nRet;

  }

  TCHAR* extractnumber(TCHAR* lpBuf,int nLen,int& nIndexBegin,TCHAR* lpNumber)

  {

  if (NULL==lpBuf||NULL==lpNumber)

  return lpNumber;

  for (int i=nIndexBegin,nIndex=0;i<nLen;++i,++nIndexBegin)

  {

  TCHAR ch = *(lpBuf+i);

  if (!isdigit(ch))

  break;

  lpNumber[nIndex++]=ch;

  }

  return lpNumber;

  }

  int comparenumber(TCHAR* lpNumber1,TCHAR* lpNumber2)

  {

  if (NULL==lpNumber1||NULL==lpNumber2)

  return 0;

  int nNum1Len = _tcslen(lpNumber1);

  int nNum2Len = _tcslen(lpNumber2);

  int nMaxLen = max(nNum1Len,nNum2Len);

  TCHAR* lpFormatNum1 = new TCHAR[nMaxLen+1];

  TCHAR* lpFormatNum2 = new TCHAR[nMaxLen+1];

  if (NULL==lpFormatNum1||NULL==lpFormatNum2)

  return 0;

  memset(lpFormatNum1,_T('0'),nMaxLen*sizeof(TCHAR));

  memset(lpFormatNum2,_T('0'),nMaxLen*sizeof(TCHAR));

  lpFormatNum1[nMaxLen]=0;

  lpFormatNum2[nMaxLen]=0;

  int nPos = 0, nRet = 0;

  int nIndex = nMaxLen-1;

  for (nPos=nNum1Len-1;nPos>=0;--nPos)

  lpFormatNum1[nIndex--]=lpNumber1[nPos];

  nIndex = nMaxLen-1;

  for (nPos=nNum2Len-1;nPos>=0;--nPos)

  lpFormatNum2[nIndex--]=lpNumber2[nPos];

  for (nPos=0;nPos<nMaxLen;++nPos)

  {

  nRet = lpFormatNum1[nPos]-lpFormatNum2[nPos];

  if (nRet!=0)

  break;

  }

  delete[] lpFormatNum1;

  delete[] lpFormatNum2;

  return nRet;

  }



回复 支持 反对

使用道具 举报

0

主题

625

帖子

615

积分

积分
615
推广工具板凳
发表于 2016-11-27 07:59:46 | 只看该作者
好店家。感谢,感谢。

回复 支持 反对

使用道具 举报

0

主题

627

帖子

625

积分

积分
625
软件定制开发地板
发表于 2016-11-27 17:08:14 | 只看该作者
,服务很好,功能也是按要求做的。主要是服务,还有教程,客服都是分工的挺好的。推荐!!

回复 支持 反对

使用道具 举报

0

主题

609

帖子

591

积分

积分
591
5#定制软件#
发表于 2016-11-27 18:32:38 | 只看该作者
。视频也清晰。感谢店家感谢淘宝。

回复 支持 反对

使用道具 举报

0

主题

593

帖子

603

积分

积分
603
6#定制软件#
发表于 2016-11-28 03:03:44 | 只看该作者
卖家,技术过硬,服务过好,就像巴黎欧莱雅,你值得拥有

回复 支持 反对

使用道具 举报

0

主题

556

帖子

519

积分

积分
519
7#定制软件#
发表于 2016-11-28 16:13:39 | 只看该作者
错效率很高价格合理还会来的

回复 支持 反对

使用道具 举报

0

主题

661

帖子

669

积分

积分
669
8#定制软件#
发表于 2016-11-28 18:06:56 | 只看该作者
衍了事的嫌疑

回复 支持 反对

使用道具 举报

0

主题

604

帖子

602

积分

积分
602
9#定制软件#
发表于 2016-11-29 01:53:01 | 只看该作者
,看样子好不错给个好评,已经习惯了

回复 支持 反对

使用道具 举报

0

主题

636

帖子

624

积分

积分
624
10#定制软件#
发表于 2016-11-29 04:54:26 | 只看该作者
及时做出评价,系统默认好评!

回复 支持 反对

使用道具 举报

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

本版积分规则

相关导读
群发软件安卓脚本AIWROK软件示例JS函数高级用法
安卓脚本AIWROK软件示例JS函数高级用法
群发软件AIWROK环境JavaScript编码规范完整示例
AIWROK环境JavaScript编码规范完整示例
群发软件安卓脚本示例实时截图判断页面变化
安卓脚本示例实时截图判断页面变化
群发软件苹果脚本7种不同的OCR识别
苹果脚本7种不同的OCR识别
群发软件安卓脚本多变的function用法
安卓脚本多变的function用法
群发软件苹果脚本示例Config配置H5集成
苹果脚本示例Config配置H5集成
群发软件安卓脚本类型判断与Boolean对象综合示例
安卓脚本类型判断与Boolean对象综合示例
群发软件线程全局变量H5可视化控制台
线程全局变量H5可视化控制台
群发软件秒吐司快速显示和关闭的UI提示窗口
秒吐司快速显示和关闭的UI提示窗口
群发软件苹果脚本里H5 里的 window.at.callFun 示例
苹果脚本里H5 里的 window.at.callFun 示例
群发软件H5日志打印运行过程例子
H5日志打印运行过程例子
群发软件AIWROK软件字符串方法实用案例
AIWROK软件字符串方法实用案例
群发软件HID贝塞尔曲线运动控制器
HID贝塞尔曲线运动控制器
群发软件AIWROK苹果脚本sleep方法综合实战示例
AIWROK苹果脚本sleep方法综合实战示例
群发软件苹果脚本Line控件的多种创意用法和实际应用场景
苹果脚本Line控件的多种创意用法和实际应用场景
群发软件苹果脚本toast高级应用综合示例
苹果脚本toast高级应用综合示例
群发软件苹果智能OCR自动化助手
苹果智能OCR自动化助手
群发软件苹果脚本UI超快速点击示例
苹果脚本UI超快速点击示例
群发软件展示时间戳的各种复杂处理方法
展示时间戳的各种复杂处理方法
群发软件苹果脚本随机数实用示例
苹果脚本随机数实用示例
群发软件安卓手机脚本多种倒计时显示方式
安卓手机脚本多种倒计时显示方式
群发软件苹果脚本屏幕事件EVENT示例
苹果脚本屏幕事件EVENT示例
群发软件苹果脚本屏幕类screen例子
苹果脚本屏幕类screen例子
群发软件安卓手机config配置演示实列
安卓手机config配置演示实列
群发软件苹果脚本配置config小实例
苹果脚本配置config小实例 https://www.yuque.com/aiwork/dcvhmb/qolobpysdg0hvi2e
群发软件苹果脚本矩形类rect小实例
苹果脚本矩形类rect小实例
群发软件AIWROK安卓苹果平台设计的实用工具库
AIWROK安卓苹果平台设计的实用工具库
群发软件AIWROK软件Function导入方法实例演示
AIWROK软件Function导入方法实例演示
群发软件苹果脚本实例1项目project应用示例
苹果脚本实例1项目project应用示例
群发软件苹果脚本实例1剪贴板功能集成
苹果脚本实例1剪贴板功能集成
群发软件苹果iOS脚本Detect类系统性使用示例
苹果iOS脚本Detect类系统性使用示例
群发软件AIWROK苹果系统打印H5界面日志输出
AIWROK苹果系统打印H5界面日志输出
群发软件H5案例自动化看广告撸金币系统
H5案例自动化看广告撸金币系统
群发软件AIWROK苹果脚本H5任务执行小例子
AIWROK苹果脚本H5任务执行小例子
群发软件AIWROK软件苹果水平容器[Horizontal]小实例
AIWROK软件苹果水平容器[Horizontal]小实例
群发软件AIWROK苹果脚本实例1界面UI输入框类[Input]
AIWROK苹果脚本实例1界面UI输入框类
群发软件AIWROK软件苹果脚本案例1空白站位[Space]方法
AIWROK软件苹果脚本案例1空白站位[Space]方法
群发软件AIWROK软件苹查系统复选框用法
AIWROK软件苹查系统复选框用法
群发软件苹果AIWROK实例单选按钮组类[RadioButtonGroup]完整综合示例
苹果AIWROK实例单选按钮组类[RadioButtonGroup]完整综合示例
群发软件AIWROK软件苹果实例UI-垂直容器[Vertical]高级综合示例
AIWROK软件苹果实例UI-垂直容器[Vertical]高级综合示例
群发软件IOS苹果脚本View的完整功能实例
IOS苹果脚本View的完整功能实例
群发软件AIWROK苹果系统实例演示1标签类[Label]方法
AIWROK苹果系统实例演示1标签类[Label]方法
信息发布软件AIWROK软件苹果UI按钮Button方法示例
AIWROK软件苹果UI按钮Button方法示例
信息发布软件AIWROK软件苹果TAB界面视图示例
AIWROK软件苹果TAB界面视图示例
信息发布软件AIWROK苹果系统自带view视图简洁UI界面示例
AIWROK苹果系统自带view视图简洁UI界面示例
信息发布软件汇集HID安卓输入文字的方法和复制粘贴示例
汇集HID安卓输入文字的方法和复制粘贴示例
信息发布软件AIWROK软件找字与OCR方法汇总示例
AIWROK软件找字与OCR方法汇总示例
信息发布软件AIWROK软件找图方法汇总示例
AIWROK软件找图方法汇总示例
信息发布软件AIWROK软件滑动方法集合示例
AIWROK软件滑动方法集合示例
信息发布软件AIWROK软件安卓AIWROK汇集软件点击
AIWROK软件安卓AIWROK汇集软件点击
信息发布软件苹果系统点击方法综合示例
苹果系统点击方法综合示例
信息发布软件AIWROK苹果系统找图方法完整示例集合
AIWROK苹果系统找图方法完整示例集合
信息发布软件苹果系统找图方法完整示例集合
苹果系统找图方法完整示例集合
信息发布软件苹果IOS系统找字OCR方法例子
苹果IOS系统找字OCR方法例子
信息发布软件AIWORK软件数组高级示例
AIWORK软件数组高级示例
信息发布软件AIWROK软件运算符封装库示例
AIWROK软件运算符封装库示例
信息发布软件AIWROK软件语法运行小示例
AIWROK软件语法运行小示例
信息发布软件AIWROK软件JS循环小示例
AIWROK软件JS循环小示例
信息发布软件AIWROK软件H5网页被主脚本获取值用法
AIWROK软件H5网页被主脚本获取值用法
信息发布软件AIWROK软件创建可暂停恢复的多线程任务
AIWROK软件创建可暂停恢复的多线程任务
信息发布软件AIWROK软件类型转换方法例子
AIWROK软件类型转换方法例子
信息发布软件AIWROK软件H5脚本执行与进度显示
AIWROK软件H5脚本执行与进度显示 .
信息发布软件AIWROK软件根据时间段执行异步任务支持多线程并行处理
AIWROK软件根据时间段执行异步任务支持多线程并行处理
信息发布软件H5自动开关执行脚本功能演示
H5自动开关执行脚本功能演示
信息发布软件AIWROK软件H5单选脚本运行示例
AIWROK软件H5单选脚本运行示例

QQ|( 京ICP备09078825号 )

本网站信息发布软件,是可以发布论坛,发送信息到各大博客,各大b2b软件自动发布,好不夸张的说:只要手工能发在电脑打开IE能发的网站,用这个宣传软件就可以仿制动作,进行推送发到您想发送的B2B网站或是信息发布平台上,不管是后台,还是前台,都可以进行最方便的广告发布,这个广告发布软件,可以按月购买,还可以试用软件,对网站的验证码也可以完全自动对信息发布,让客户自动找上门,使企业轻松实现b2b发布,这个信息发布软件,均是本站原创正版开发,拥有正版的血统,想要新功能,欢迎提意见给我,一好的分类信息群发软件在手,舍我其谁。QQ896757558

GMT+8, 2026-4-27 17:39 , Processed in 0.164712 second(s), 53 queries .

宣传软件--信息发布软件--b2b软件广告发布软件

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