【发布时间】:2017-10-01 11:17:33
【问题描述】:
前几天我偶然发现了 RED 语言,并在过去的 24 小时里(或多或少地)“学习”了它。我用尽了我的谷歌搜索技能,试图为一个只是逃避我的技能和逻辑的简单问题找到解决方案,所以希望这里有人能带领我走上正义之路。
正如标题所暗示的,我尝试解析一个简单的字符串(实际上是任何随机文本字符串),获取单个字符(acter),然后尝试将它们保存到一个变量中。 (实际上是另一个字符串/数组/任何类型)
我能做的最好的就是使用以下代码:
alpha: charset [#"a" - #"z"]
testString: "this is just random rambling to test parsing!"
在(尝试)解析时作为先决条件和类似的东西:
probe parse teststring [copy text to alpha (append text2 to-integer(to-char text)) to end]
将(第一个字母)ascii 代码保存到 text2 并多次运行脚本,连续多次正确添加(相同的第一个字母)ASCII 代码:
控制台输出
>> probe parse teststring [copy text to alpha (append text2 to-integer(to-char text)) to end]
true
== true
>> probe text2
"34"
== "34"
>> probe parse teststring [copy text to alpha (append text2 to-integer(to-char text)) to end]
true
== true
>> probe text2
"3434"
== "3434"
显然我的解析并没有真正“循环”字符串的各个字符,或者在执行此操作时没有正确保存它们。也许我的解析真的需要从 TO 到 END 的整个字符串,然后我尝试将其转换为 ASCII 代码或者这里发生了其他事情?
任何帮助都将不胜感激,因为在解决这个难题并了解解析在 RED 中的真正工作原理之前,我不可能在 RED 学习方面取得进步。
【问题讨论】:
-
使用
parse-trace进行调试 -
我认为您在要重现的先决条件测试代码中遗漏了一些东西,例如
text2: "" -
非常正确,确实没有声明 text2。看起来是一个草率的粘贴,对不起。
-
欢迎来到红语!几天前我遇到了类似的问题:stackoverflow.com/questions/46260181/…
标签: string parsing ascii rebol red