11. 删除字符串的值(如果存在)

Remove the 11. value of string if exists

我有以下格式的字符串:

示例 1:ABC,0,ABCD,ABC,ABC,ABC,ABC,ABC,11,ABC,ABC,toRemove,012,234

示例 2:ABC,0,ABCD,ABC,ABC,ABC,ABC,ABC,11,ABC,ABC,toRemove,012,234

如果字符串包含用逗号分隔的 14 个值(而不是 13 个值),则删除第 12 个值

上面的第二行包含一个白色 space,如果存在,也应将其删除。

已解决:

$line = StringSplit($tmp_line, ",")

$count_values = Ubound($line)

If $count_values = 14 Then
 $new_line = $line[1] & "," & $line[2] & "," & $line[3] & "," & $line[4] & "," & $line[5] & "," & $line[6] & "," & $line[7] & "," & $line[8] & "," & $line[9] & "," & $line[10] & "," & $line[12] & "," & $line[13]
Else
 $new_line = $line
EndIf

StringSplit已经有一个计数器(元素0),所以不需要使用Ubound)。

就像 StringSplit 将字符串转换为数组,ArrayToString 将数组转换回字符串。

#include <array.au3>
$tmp_line = "ABC,0,ABCD,ABC,ABC,ABC,ABC,ABC,11,ABC,ABC, ToRemove,012,234"
$line = StringSplit($tmp_line, ",")
If $line[0] = 14 Then
 $new_line = ArrayToString($line, ",", 1, 11) & "," & ArrayToString($line, ",", 13)
Else
 $new_line = $line  ; shouldn't this be $new_line = $tmp_line ?
EndIf
MsgBox(0, $line[0], $tmp_line & @CRLF & $new_line)