CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

求一个函数?

楼主alooooop(我能)2004-12-01 16:46:48 在 Delphi / VCL组件开发及应用 提问

字符串s:='111,222,33333,4444,55555';  
  整数值i:=4;  
  由以上两个条件得到值4444;  
   
  function   ReadStr(s:string;i:integer):string;  
  begin  
   
  end; 问题点数:20、回复次数:5Top

1 楼gxgyj(杰克逊)回复于 2004-12-01 16:55:32 得分 0

楼主的意思是,从S中得到第4组字符,还是以4开头的字符。Top

2 楼dzshu(某星星的马甲,相信不?)回复于 2004-12-01 16:58:18 得分 10

function   ReadStr(s:string;i:integer):string;  
  var  
      k:   Integer;  
      NewStr:   string;  
      Strs:   TStrings;  
  begin  
      Strs   :=   TStringList.Create;  
      try  
          NewStr   :=   s   +   ',';  
          for   k   :=   1   to   Length(s)   do  
              if   s[i]   =   ','   then  
              begin  
                  Strs.Add(Copy(NewStr,   1,   Pos(',',   NewStr)   -   1));  
                  Delete(NewStr,   1,   Pos(',',   NewStr));  
              end;  
          Result   :=   Strs.Strings[i   -   1];  
      finally  
          Strs.Free;  
      end;  
  end;  
   
  procedure   TForm1.Button1Click(Sender:   TObject);  
  var  
      i:   Integer;  
      s:   string;  
  begin  
      s   :=   '111,222,33333,4444,55555';  
      i   :=   4;  
      ShowMessage(ReadStr(s,   i));  
  end;Top

3 楼ocean617(海洋)回复于 2004-12-01 17:10:45 得分 10

function   ReadStr(s:string;i:integer):string;  
  var  
    J:integer;  
    Num:integer;  
    Mstr:string;  
  begin  
   
  result:='';  
   
  Num:=0;  
  for   J:=0   to   Length(s)   do  
    begin  
   
    if   s[J]=','   then  
      begin  
      Inc(Num);  
      if   Num=i   then  
            result:=Mstr  
        else  
            Mstr:='';  
      end  
    else  
      Mstr:=Mstr+str[i];  
   
    end;  
  end;  
  Top

4 楼ocean617(海洋)回复于 2004-12-01 17:15:58 得分 0

这个是正确的代码,呵呵,前面的str[i]要改为s[J]才成  
  function   ReadStr(s:string;i:integer):string;  
  var  
    J:integer;  
    Num:integer;  
    Mstr:string;  
  begin  
   
  result:='';  
   
  Num:=0;  
  for   J:=0   to   Length(s)   do  
    begin  
   
    if   s[J]=','   then  
      begin  
      Inc(Num);  
      if   Num=i   then  
            result:=Mstr  
        else  
            Mstr:='';  
      end  
    else  
      Mstr:=Mstr+s[J];  
   
    end;Top

5 楼ocean617(海洋)回复于 2004-12-01 17:33:27 得分 0

修改了一下,应该是对的:  
   
  function   ReadStr(s:string;i:integer):string;  
  var  
    J:integer;  
    Num:integer;  
    Mstr:string;  
  begin  
   
  result:='';  
  Mstr:='';  
   
  Num:=0;  
  for   J:=0   to   Length(s)-1   do  
    begin  
   
    if   (s[J]<>',')then  
    begin  
      Mstr:=Mstr+s[J];  
    end  
    else  
      begin  
      Inc(Num);  
      if   Num=i   then  
          begin  
            result:=trim(Mstr);  
            break;  
          end  
        else  
            Mstr:='';  
      end  
   
   
    end;  
   
   
  end;Top

相关问题

  • 函数
  • 函数
  • 函数?
  • 函数
  • 函数
  • 函数
  • 函数?
  • 函数
  • Delphi函数 --> CB函数(急)!!
  • 函数调用函数

关键词

  • mstr
  • beginresult
  • newstr
  • num
  • integer
  • begin
  • function readstr
  • then
  • str
  • else

得分解答快速导航

  • 帖主:alooooop
  • dzshu
  • ocean617

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo