字符串解析 Python & Basic (工业设备通用语言)

发布于:2024-12-22 ⋅ 阅读:(14) ⋅ 点赞:(0)

Basic:

通过字符串的操作来进行数据解析。先按照字母将字符串分割,然后对每个部分取合适的子串以得到需要的值。

代码

s = "X79.004Y73.0022U0.0108444ALL" 
parts = [] 
start = 0 
for i in range(1, len(s)): 
    if not s[i].isdigit() and s[i]!= '.': 
        parts.append(s[start:i]) 
        start = i 
parts.append(s[start:len(s) - 3]) 
 
result = [] 
for part in parts: 
    if part.startswith('X'): 
        num = part[1:] 
        num = "{:.3f}".format(float(num)) 
        result.append(f"X={num}") 
    elif part.startswith('Y'): 
        num = part[1:] 
        num = "{:.3f}".format(float(num)) 
        result.append(f"Y={num}") 
    elif part.startswith('U'): 
        num = part[1:] 
        num = "{:.3f}".format(float(num)) 
        result.append(f"U={num}") 
 
 
print("\n".join(result)) 
 
 

解释

  1. 首先将输入的字符串按照字母分割成多个部分,存储在parts列表中。
  2. 然后遍历parts中的每个元素,如果以XYU开头,就提取出后面的数字部分,将其转换为浮点数后按照要求保留三位小数,并构建成指定格式的字符串,最后将这些结果存储在result列表中。
  3. 最后将result列表中的字符串用换行符连接起来并打印输出。


-------------------------
 

Basic:
使用字符串操作函数来解析数据。首先找到每个变量的位置,然后截取相应的数值部分,并进行格式化输出。

代码

' 定义输入字符串 
DIM input AS STRING 
input = "X79.004Y73.0022U0.0108444ALL"
 
' 找到每个变量的位置 
DIM x_pos AS INTEGER 
DIM y_pos AS INTEGER 
DIM u_pos AS INTEGER 
x_pos = INSTR(input, "X")
y_pos = INSTR(input, "Y")
u_pos = INSTR(input, "U")
 
' 截取数值部分 
DIM x_value AS STRING 
DIM y_value AS STRING 
DIM u_value AS STRING 
x_value = MID$(input, x_pos + 1, y_pos - x_pos - 1)
y_value = MID$(input, y_pos + 1, u_pos - y_pos - 1)
u_value = MID$(input, u_pos + 1, LEN(input) - u_pos - 3)
 
' 转换为浮点数并保留三位小数 
DIM x_float AS SINGLE 
DIM y_float AS SINGLE 
DIM u_float AS SINGLE 
x_float = VAL(x_value)
y_float = VAL(y_value)
u_float = VAL(u_value)
 
PRINT "X="; FORMAT$(x_float, "0.000")
PRINT "Y="; FORMAT$(y_float, "0.000")
PRINT "U="; FORMAT$(u_float, "0.000")

解释

  1. 首先定义输入字符串input
  2. 使用INSTR函数找到每个变量的位置。
  3. 使用MID$函数截取每个变量的数值部分。
  4. 使用VAL函数将字符串转换为浮点数。
  5. 使用FORMAT$函数将浮点数格式化为保留三位小数的字符串,并打印输出。

这样就可以在Basic语言中实现对数据的解析,并保留小数点后三位数。