gpt4 book ai didi

delphi - 如何对表中的 CSV 文件进行排序?

转载 作者:行者123 更新时间:2023-12-03 15:47:17 27 4
gpt4 key购买 nike

我有一个 TTable,我正在将 CSV 文件加载到此 TTable。共有三个字段:Id、Hits 和 Path。我使用另一个查询对此 TTable 进行了一些查找字段。

我想对表格进行排序。我收到消息“功能不受支持”。当我尝试调用 AddIndex('ndxHits','HITS',[]);

这是我的代码:

with DM.TblCVResults do
begin
try
Active := False;
TableName := 'C:\CSV\123.txt';
Active := True;

AddIndex('ndxHits','HITS',[]);
AddIndex('ndxCandidate','LkCandidate',[]);
AddIndex('ndxLastCV','LkLastCV',[]);
AddIndex('ndxPostCode','LkPostCode',[]);
IndexDefs.Update;
Active := True;
DM.TblCVResults.IndexName := 'ndxHits';
except
on E: Exception do
MsgError(E.Message);
end;
end

最佳答案

您之前的问题提到您使用 ttASCII 作为 TableTypettASCII 表,据我所知,不支持索引。

最好的选择是将 ttASCII TTable 内容加载到支持索引的 TClientDataset` (CDS) 中。我还没有使用 ttASCII 表作为源进行测试,但它应该很简单:

TDatasetProvider 组件添加到您的应用程序中。将其 DataSet 属性设置为您的 TTable

TClientDataSet 组件添加到您的应用程序中。将其 ProviderName 设置为您在上面添加的 DataSetProvider。 (我在下面的步骤中将其命名为 CDS。)

按顺序打开TableClientDataSet (CDS)。

Table1.Active := True;
CDS.Active := True;

如果不需要,请关闭TTable的更新。 (速度要快得多。)

CDS.LogChanges := False;

运行以下代码来创建索引:

// Repeat for each additional index
with CDS.IndexDefs.AddIndexDef do
begin
Name := 'ndxHits';
Fields := 'Hits';
Options := [];
end;

ClientDataSet 的 IndexName 属性设置为您想要事件的索引:

CDS.IndexName := 'ndxHits';

像使用任何其他数据集一样使用ClientDataSet。使用LocateFindKey搜索它,使用InsertAppend添加它,过滤它,等等。

关于delphi - 如何对表中的 CSV 文件进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4554134/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com