我尝试将来自数据集(Q)的数据分成10个块,并将它们放入TStringList
中。
我创建了一个名为LIST
的TStringList
,其中每次找到记录时都会添加一个值(UID)。
我尝试过使用TStringList
数组来跟踪,但这有点麻烦。
例如,假设数据集传递24条记录,LIST
可以在LIST.strings[0]
中具有前10个值,在LIST.Strings[1]
中具有记录10到20,并且在LIST.Strings[2]
中具有记录21、22和23。
你有什么想法或方向吗?我也试过了,但还是不行。我以后要不要处理LIST
?
const chunks = 10
List := TStringList.Create;
Q.Open;
try
While not Q.EOF Do
begin
UID := Q.FieldByname('U_ID');
List.Add(UID.AsString);
Q.Next;
end;
Q.Close;
finally
FreeAndNil(Q);
end;
//SO DESIRED OUTPUT SOMETHING LIKE THIS
//LIST.COUNT =3
//LIST.STRINGS[0] = 1,2,3,4,5,6,7,8,9,10
//LIST.STRINGS[1] = 11,12,13,14,15,16,17,18,19,20
//LIST.STRINGS[2] = 21,22,23
我也尝试过使用Insert()
,如下所示:
List.QuoteChar := ' ';
if List.Count <= 10 then
begin
MaxList.Insert(0, List.DelimitedText);
end;
if ((List.Count > 10) and (List.Count <= 20)) then
begin
MaxList.Insert(1, List.DelimitedText);
但是Insert()
索引并不像我想要的那样工作。
2条答案
按热度按时间r3i60tvu1#
如果我没有理解错的话,您的目标是将UID存储为逗号分隔的字符串,其中每个字符串最多可以保存10个UID。
或者,您可以使用2
TStringList
代替计数器,例如:zysjyyx42#
使用帮助器字符串列表的类似方法: