datastage - 如何一次循环完整地记录一个字符?
问题描述
如何一次循环完整地记录一个字符?我想一次查询一个字符的 ASCII 文件中的记录,以查找和替换不可打印的字符。我尝试使用循环条件但没有运气。提前感谢您的帮助。
解决方案
是的,这在 DataStage Transformer 中是可能的。
“循环条件”每次迭代都会创建一个新的输出行。它对接收到的每一行进行操作。您可能希望向输出链接添加一个约束,该约束仅在您的循环迭代完成时才成立(对于该行)。
一个小伪代码,用 '?' 替换每个 'ä' 通过逐个字符循环:
// Input Link "DSLink2"
// provides a column named "text"
// Stage Variables:
NVarCHar(20) svLine := DSLink2.text
NChar(1) svReplacementChar := "?"
// Loop Variables:
NChar(1) lvCharToTest
Bit lvCharOK := 0
NVarCHar(20) lvNewLine := ''
Integer i := 0
// Loop Condition:
loop while (i < Len(svLine)) {
i = i + 1
lvCharToTest := svLine[i,1]
// replace by proper test condition or function according to your needs:
lvCharOK := lvCharToTest = 'ä'
if (lvCharOK) {
lvNewLine = lvNewLine + lvCharToTest
}
else {
lvNewLine = lvNewLine + svReplacementChar
}
}
// DSLink4_output:
If (i = Len(svLine)) {
DSLInk4_output.text := lvNewLine
}
推荐阅读
- python - 为什么 pygame.MOUSEBUTTONDOWN 永远不会等于我的按钮,即使用户点击它?
- gcc - 如何使用 musl-gcc 编译 GTK+ 基础应用程序?
- javascript - 我怎样才能使这个js代码输出到小数点后一位?如何在我的特定情况下实施?
- c++ - 非原子时,C++ 成员更新关键部分内的可见性
- javascript - 在对象的 json 数组中找到一个键值并返回另一个带有角度的键值
- html - 固定顶部导航不覆盖页面内容
- tableau-api - 在 Tableau 中多次拆分联接条件(数据源或工作表)
- c# - 在 IDS4 和 ASP.NET Core 2.2 下使用 JwtToken 获取 401 访问安全页面
- android - AndroidStudio:在模块 annotations-13.0 和 kotlin-compiler-embeddable 中发现重复的类
- pandas - 从包含错误数据的多个数据框中删除行