有一string,如下所示,现要把他们解悉出来放到一个strings中去。因为要解悉几万条这样的记录,所以,算法可能要精简一下。
'苏D0015挂 大型汽车 2004-04-01 09:41:06 武青路 闯红灯'
....
中间空格的字符数可能不等。
函数格式如下:
procedure GetArray(str:string;var retstrs:TStrings);
//把str字符串解悉出来放至retstrs字符串组中去
begin
....
end;
'苏D0015挂 大型汽车 2004-04-01 09:41:06 武青路 闯红灯'
....
中间空格的字符数可能不等。
函数格式如下:
procedure GetArray(str:string;var retstrs:TStrings);
//把str字符串解悉出来放至retstrs字符串组中去
begin
....
end;
解决方案 »
- delphi中的事务处理问题
- 怎样在程序代码中设定数据的修改?
- 有没有办法查找出指定条数的记录!
- 谁能给一个例子:就如SQL server服务管理器一样的NT服务程序。
- 写组件遇到的问题,向各位高手请教
- DevExpress VCL v55编译的文件很大
- 请问TCustomIpClient和TCustomTcpServer有什么不同啊?
- delphi增删改的权限设置
- 兄弟们,delphi中有没有办法实现像flashget一样,把IE中的连接拖放到得到连接名称及地址?
- 有关datatype的使用
- 这是一个递归复制文件夹的函数,请帮忙看一下怎么才能知道函数完全执行完了,如果中途停止,应该在哪里写Result:=False,
- 如何在TStringGrid里面插入换行啊?
retstrs[0]='苏D0015挂'
retstrs[1]='大型汽车'
retstrs[2]='2004-04-01 09:41:06'
retstrs[3]='武青路'
retstrs[4]='闯红灯'
i : integer;
n : integer;
s_str,source_str : string;
Dest_Str : Tstrings;
begin
Dest_Str := Tstrings.Create;
Dest_Str.Clear;
n := 0; while i <> 0 do
begin
i := pos(' ',source_str);
if i > 1 then //得到空格前的字符
begin
Dest_Str.Strings[n] := Copy(source_str,1,i-1);
n := n + 1;
end else
source_str := Copy(source_str,2,Length(source_str)); //删除第一个空格
end;
procedure StrToStrings(S: AnsiString; Sep: AnsiString; const List: TStrings);
var
I, L: Integer;
Left: AnsiString;
begin
Assert(List <> nil);
List.Clear;
L := Length(Sep);
I := Pos(Sep, S);
while (I > 0) do
begin
Left := StrLeft(S, I - 1);
List.Add(Left);
Delete(S, 1, I + L - 1);
I := Pos(Sep, S);
end;
if S <> '' then
List.Add(S);
end;
加个空格,然后加起来就行了。
procedure GetArray(str: string; retstrs: TStrings);
var
Des: String;
i: integer;
begin
Des := '';
for i:=1 to length(Str) do
begin
if Str[i] <> ' ' then Des := Des + Str[i]
else
begin
if Des <> '' then
retstrs.Add(Des);
Des := '';
Continue;
end;
end;
end;procedure TForm1.Button1Click(Sender: TObject);
var
S: String;
St: TStringList;
i: integer;
begin
st := TStringList.Create;
S := '苏D0015挂 大型汽车 2004-04-01 09:41:06 武青路 闯红灯';
GetArray(S, st);
for i:=0 to st.Count -1 do
ShowMessage(st.Strings[i]);
end;