关于字符串截取的问题(50分)

  • 主题发起人 主题发起人 song188521
  • 开始时间 开始时间
S

song188521

Unregistered / Unconfirmed
GUEST, unregistred user!
在DELPHI中怎么从一个字符串中截取一个特定长度的字符串<br>最好有例子。
 
看看Copy函数的帮助。
 
Copy('abcd',1,2) = 'ab',从第一个字符串中从第一个字符开始取两个字符
 
‘A00000041F1FAF’这个字符我要两个一组分成多个字符应该怎么做呢??
 
两个一组,你可以用一个字符串数组,它的长度是length('A00000041F1FAF')/2 再取整 + 1,那个取整函数我忘记了,再循环字符串,碰到二的整数倍就增加一个数组的下标。这样解决应该是可以的。<br>当然你也可以使用Copy函数啦,例如<br>Copy('A00000041F1FAF',1,2)得到第一组<br>Copy('A00000041F1FAF',3,2)得到第二组<br>Copy('A00000041F1FAF',5,2)得到第三组<br> &nbsp; &nbsp; &nbsp;.<br> &nbsp; &nbsp; &nbsp;.<br>不过最后一种方法是比较笨的方法,只能解决特定的问题了,不推荐你使用,第一种方法就好得多,可以写一个公用的函数,以后碰到相应的情况还可以使用的
 
用MidStr, LeftStr, RightStr这个三函数,再加上Pos和Length这两个函数就可以任意截取字符串了。<br>Str := 'abcdef,ghijk';<br>str1 := MidStr(Str, 1, pos(',', Str) - 1); &nbsp;结果为str1 = 'abcdef'<br>str2 := MidStr(Str, 1, 2); &nbsp;结果为 str2 = 'ab'<br>str3 := MidStr(Str, pos(',', Str) + 1, Length(Str)); 结果为Str3 = 'ghijk'<br>str4 := LeftStr(Str, 3); 结果为 str4 = 'abc'<br>str5 := LeftStr(Str, Pos(',', Str) - 1); 结果为 Str5 = 'abcdef'<br>str6 := RightStr(Str, 4); 结果为 Str6 = ',ghijk'<br>str7 := RightStr(Str, Pos(',', Str) - 1); 结果为 Str7 = 'ghijk'<br>例子够细了吧。如果还明白,你就多看联机帮助,或是买个基础点的书来看。
 
我的字符串是T00000105551357000105554357000357000357000357000<br>00000表示合计风俗为0000.0m/s<br>105551357表示一天的极大值出现时间为10:55:51,风向357度,风速00.0m/s<br>105554357表示十分中最大可能出现的时间为10:55:54,风向357度,风速00.0m/s<br>......<br>怎么把这个几个分开啊 <br>我要在界面上采集这写数据,保存到数据库,!请大侠门指教啊
 
To hylks<br>定义一个数组保存每个字符串组的字符数目等信息<br>比如<br>const <br> &nbsp;NUM_MAX = 10;<br>type<br> &nbsp;TStrInfo = <br> &nbsp; &nbsp;siMeaning: string;<br> &nbsp; &nbsp;siNum: Integer;<br> &nbsp; &nbsp;siFormat: string;<br> &nbsp;end;<br> &nbsp;TStrInfoArray = array[0..NUM_MAX] of TStrInfo;<br><br>procedure GetInfoFromStr(AStr: string);<br>var<br> &nbsp;i: Integer; <br> &nbsp;tmpStr: string;<br> &nbsp;tmpArray: TStrInfoArray ;<br>begin<br> &nbsp;tmpStr := AStr;<br> &nbsp;for i := 0 to NUM_MAX do<br> &nbsp;begin<br> &nbsp; &nbsp;tmpArray.siFormat := LeftStr(tmpStr, tmpArray.siNum);<br> &nbsp; &nbsp;Delete(tmpStr, 1, tmpArray.siNum);<br> &nbsp;end;<br>end;
 
后退
顶部