首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Delphi -在CASE语句中使用函数

Delphi -在CASE语句中使用函数
EN

Stack Overflow用户
提问于 2016-11-10 13:08:04
回答 2查看 823关注 0票数 2

在Delphi 10 /西雅图,我尝试做一个嵌套的字符串测试.我有一个字符串,它是一个产品名。我需要根据产品名称找到产品类别。这将是不区分大小写,每个产品将只在一个类别。一旦我找到了一个类别,我就可以停止checking...My,最初的方法是通过一个CASE语句中的AnsiContainsText来完成这个任务,但是这是不允许的,因为CASE语句没有公共函数.

我有一种应该有效的方法,但是还有什么更优雅的吗?我将有大约40个不同的测试类别,并将运行(循环)这个测试大约6000种产品,所以我想要一些尽可能的表现。

代码语言:javascript
复制
      // Determine new value...
      Category := '';
      if ((Category = '') and (AnsiContainsText(ProductText, 'PaaS')) then  Category := 'PaaS';
      if ((Category = '') and (AnsiContainsText(ProductText, 'IaaS')) then  Category := 'IaaS';
      if ((Category = '') and (AnsiContainsText(ProductText, 'SaaS')) then  Category := 'SaaS';
...
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-10 13:15:35

外包出去!

代码语言:javascript
复制
function FindCategory(const ProductName: string): string;
const
  categories: TArray<string> = ['PaaS', 'IaaS', 'SaaS']; // can easily be extended
var
  S: string;
begin
  for S in categories do begin
    if ContainsText(ProductName, S) then Exit(S)
  end;
  result := '';
end;
票数 10
EN

Stack Overflow用户

发布于 2016-11-11 15:46:43

可以使用pos()函数:

代码语言:javascript
复制
function FindCategory(const ProductName: string): string;
const
  categories: string = 'PaaS,IaaS,SaaS,';
begin
  if Pos(ProductName+ ',', categories)>0 then Exit(ProductName);
  result := '';
end;
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40528427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档