gpt4 book ai didi

string - Rebol/RED 解析。将解析后的字符串中的 ASCII 代码保存到变量中?

转载 作者:行者123 更新时间:2023-12-02 04:49:46 26 4
gpt4 key购买 nike

前几天我偶然发现了 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 学习。

最佳答案

我不确定我是否理解你的问题以及你想要实现的目标,但如果你正在寻找字符的所有 ascii 表示,你可以使用

asciis: []
parse teststring [some [set a alpha (append asciis to-integer a )| skip]]
== true
>> asciis
== [116 104 105 115 105 115 106 117 115 116 114 97 110 100 111 109 114 97 109 98 108 105 110 103 116 111 116 101 115 116 112 97 114 115 105 110 103]

some 是负责循环的可用单词之一

您的试用中存在一些问题。在进行任何转换之前它会给出一些错误。 text2 可能之前已声明过。当您尝试复制到第一个字母字符时,to alpha 会给出一个空字符串""。请记住会到达目标但不包括目标。您无法将空字符串转换为字符。如果我们假设到目前为止没有发生错误,那么您仍然位于字符串的前面,并且直接转到字符串的末尾。

一些documentation about Red parse 。请参阅有关循环的迭代

您可以使用parse-trace来调试解析,或者在您想要调查的规则部分后面放置一个简单的(探测文本):

关于string - Rebol/RED 解析。将解析后的字符串中的 ASCII 代码保存到变量中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46511850/

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