在列表中搜索值你好,
我有一个由分隔字符串制成的列表。 该字符串如下所示:(数字)|(名称)|(数字)|(名称)|(数字)......等等。 我所做的就是获取该字符串并通过分隔符(“|”)对其进行解析。 然后,我获取了所有值的列表,并创建了一个仅包含“名称”的新列表,并用它创建了新列。 我遇到的问题是当我解析字符串并将其放入每一列时。 因为,并非每行中的每个字符串都以相同的值开头。 我必须从两行数据中获取所有“名称”。 所以第一行、第三行、第五行等应该是相同的,但它们的字符串结尾的“名称”是不同的。 随后,每隔第二、第四、第六等行都以不同的“名称”开头(奇数行离开的位置)。 我用来制作列的名称列表是所有存在的名称,但我希望能够将所有数字放在适当的列中。
我用来解析所有数据的脚本的一部分是:
// 获取所有引脚名称
列表={};
列表={};
列表2 = {};
// 迭代 :Test_Result 的第一行以获取引脚名称
列表=单词(列(dt4,“Test_Result”)[1],“|”);
list2 = 单词(列(dt4,"Test_Result")[2], "|");
// 字符串中的第一个值是无用信息,因此将其删除
列表2 = 删除(列表2,1);
one_test_result_list = concat(列表,列表2);
// 获取以第二个值开头的所有引脚名称
对于(i = 1, i <= nitems(one_test_result_list)/2, i++,
分配(列表, one_test_result_list[i*2]);
);
我不知道该怎么做。 因为字符串中每个“名称”后面的“数字”就是与该名称对应的值。 因此,如果我看到该名称,我需要将下一个值放入该名称的列中。
非常感谢您的帮助!
回复:在列表中搜索值<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />很好地处理提前未知的列名称。
回复:在列表中搜索值dt =新表( “例子” ,添加行( 4 ) ,
新专栏( “原始数据” ,特点,标称,
设定值(
{ “1|脸|3|史波克|4|海马|5” , “1|脸|2|沙特纳|3|斯波克|5” ,
“1|脸|2|沙特纳|3|斯波克|4|海马|5” ,
“1|沙特纳|3|史波克|4|海马|5” }
)
)
) ;
列名= dt <<获取列名(细绳) ;
为了(我= 1 ,我<=行数( dt ) ,我++,
单词表=字( dt :原始数据[我] , “|” ) ;
为了( k = 2 , k <=尼特姆斯(单词表) , k = k + 2 ,
一个列=单词表[ k ] ;
一个_num =单词表[ k + 1 ] ;
如果( !包含(列名,一个列) ,
dt <<新专栏(一个列,特点,名义上的) ;
插入(列名,一个列) ;
) ;
柱子( dt ,一个列)[我] =一个_num ;
) ;
) ;
回复:在列表中搜索值谢谢克雷格! 这正是我正在寻找的! 它工作完美!
回复:在列表中搜索值也不确定我是否回答了正确的问题。也许这会有所帮助:
dt = New Table( "Untitled",New Column( "dogs"),New Column( "cats"),New Column( "mice"),New Column( "horses"));
load = function({txt},
dt << addrow(1);
list=words(txt,"|");
for(i=1,i
columnName = list; i=i+1;
columnValue = list; i=i+1;
column(dt,columnName)[] = num(columnValue);
)
);
load("mice|3|horses|7");
load("cats|3|mice|9");

第 1 行创建一个模板数据表,并假设您知道所有可能的列名称。第 2 行开始一个用户函数,该函数采用单个参数 txt。第 3 行到第 10 行的功能是:向表中添加一行,根据文本创建一个列表,一次浏览列表中的两个项目,获取名称,获取值。第 8 行根据角色名称创建一列,并使用空 [ ] 将值插入到当前行中。第 11 行和第 12 行是对该函数的调用示例。
回复:在列表中搜索值那很接近了! 我已经有了解析数据的代码,并创建了一个仅包含名称的新列表。 我真正想要的是在创建这些新列之后,我必须用所有数字填充它们。 由于每个名称后面的数字是该名称的值,因此我只想在列表中搜索该名称,并将下一个值放入该列中。 有点像这样:
(假设这些是列):face |沙特纳 |斯波克 |海马
2 | 3 | 4 | 5
由于第一个数字对我来说没什么用,所以我忽略它,但名称后面的数字是我关心的值。 但是,假设缺少其中一个值:
斯特= “1|沙特纳|3|史波克|4|海马|5” ;
我仍然拥有所有原始列,但数据表中的某些行可能缺少中间或开头的某些值,我希望它搜索列表并跳过缺少的值:
(假设这些是列):face |沙特纳 |斯波克 |海马
| 3 | 4 | 5
我不确定这有多大可能,但并非每一行都以相同的值开头。 但在找到第一个值后,它应该具有所有值。 所以我真正需要的是找到第一个值属于哪一列,然后填写之后的所有列。
谢谢你!
回复:在列表中搜索值不确定我理解你的意思,但听起来你只是想这样做?
斯特= “1|‘脸’|2|沙特纳|3|斯波克|4|海马” ;
列表=字(斯特, “|” ) ;
n =尼特姆斯(列表) / 2 ;
指数= 1 :: n ;
埃文斯=指数* 2 ;
名称=列表[埃文斯] ;
或者可能是关联数组?