如何查找包含特定数字的行偏移量

时间:2015-10-11 07:42:13

标签: livecode

我正在尝试使用以下代码

put 7 into lFoodID

lineoffset (lFoodID,gArrFood) into tArrFoodLine

找到下面数组中包含数字7的行

17  Banana
20  Beans
2   Beef
1   Bread
8   Cabagge
6   Chicken
5   Eggs
15  Ice Cream
3   Mango
7   Pork
18  Rice
4   Salad
19  fried fish

它返回1.我知道这是因为17包含数字7.我试过了

set the wholeMatches to true

但这也不起作用。我相信正则表达式(^(7)应该可以工作,但我可以弄清楚如何在lineoffset中使用正则表达式。

1 个答案:

答案 0 :(得分:0)

我不确定你真正追求的是什么,我想知道你的数据是否真的像你在这里提供的那样。我假设你的数据是显示的,但这可能导致做出与你真正想要的略有不同的解决方案。

如果要获取与索引关联的产品,可以使用以下脚本

put fld 1 into myList
replace space&space with tab in myList
repeat until (tab&tab is not in myList and space&space is not in myList)
   replace space&space with space in myList
   replace tab&tab with tab in myList
end repeat
split myList by cr and tab
put myList[7] into myProduct
put myProduct

MyProduct包含产品名称。请注意,如果数据格式正确,则不需要重复循环。如果你真的想拥有索引,请使用:

put fld 1 into myList
put 7 into myIndex
if word 1 of myList is not myIndex then
   put number of lines of char 1 to offset(cr & "7" & space ,myList) of myList into myLine
else
   put 1 into myLine
end if
put myLine

MyLine包含列表中的完整记录。