如何在UiPath中移除TXT文件中超过30天的过期日期行
UiPath中过滤TXT文件日期行的解决方案
以下是直接处理TXT文件完成日期过滤的具体步骤,无需转CSV:
读取TXT文件内容
使用Read Text File活动,将文件内容读取到字符串变量strFileContent中。计算日期阈值
添加Assign活动,设置:dtThreshold = DateTime.Now.AddDays(-30)该变量用于界定需要保留行的最小日期时间。
拆分内容为行列表
再添加一个Assign活动,将文本拆分为单独的行:lstLines = strFileContent.Split({Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries).ToList()借助
RemoveEmptyEntries避免处理空行。过滤符合条件的行
使用Assign活动结合LINQ实现过滤,仅保留日期时间不早于阈值的行:lstFilteredLines = lstLines.Where(Function(line) Dim dtLineDate As DateTime ' 提取第一个字段并去除前后引号 Dim dateSegment As String = line.Split(";"c)(0).Trim(""""c) ' 精准解析日期格式,避免格式识别误差 If DateTime.TryParseExact(dateSegment, "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, dtLineDate) Then dtLineDate >= dtThreshold Else False ' 解析失败的行直接丢弃,若需保留可改为True End If ).ToList()写入过滤后的内容
使用Write Text File活动,将过滤后的行拼接成文本写入目标文件:String.Join(Environment.NewLine, lstFilteredLines)
注意事项
- 若系统默认日期格式与目标字符串格式不一致,必须用
TryParseExact指定格式,防止解析错误。 - 若需要保留日期解析失败的行,可将
Else后的False改为True。 - 测试时可先输出
dtThreshold的值,确认阈值计算符合预期。
内容的提问来源于stack exchange,提问作者NoobyOne
相关产品推荐
相关产品推荐

