读取文件与 table 比较并需要输出
Reading file compare with table and need output
嗨,有人可以帮我做点什么吗?对不起,我是新手。
我有一个文件“dntData”,一列有 9 个数字。 6个是数据库中的数字table,3个是编造的数字。
我想要做的就是让程序读取输入,查找 table 和 return 中的数字是否存在于 table 中。
出于某种原因,我的程序只有 return 个它可以找到的数字,而没有找到它不能找到的数字 - 这对我的目的没有用。我需要一个输出来告诉我“找不到号码”以及要查找的号码。
这是我写的代码:
def stream inputStream.
def stream outStream.
def var dntData as char extent 1 no-undo.
def var vl-CIN# as integer.
def var vl-error as char.
def var vl-match as char.
input stream inputStream from "/home/xxx/xxx/xxx/xxx/FirstInput.csv".
output stream outStream to "/home/xxx/xxx/xxx/xxx/FirstOutput.csv".
export stream outStream delimiter "'" "CustomerID" "Match" "Error".
Repeat:
assign
dntData = "".
import stream inputStream delimiter "'" dntData.
assign
vl-CIN# = integer(dntnData[1]).
find first members where cin# = vl-CIN#.
if not available(members) then
assign
vl-error = "Could Not Find".
if available(members) then
assign
vl-match = "Account Exists".
export stream outStream delimiter "'" vl-CIN# vl-match vl-error.
当 FIND
找不到记录时会抛出错误,因此您需要将 NO-ERROR
添加到查找语句中。
参见 ABLdojo 上的简单示例:
define temp-table tt
field id as int
.
create tt. tt.id = 1.
// create tt. tt.id = 2.
create tt. tt.id = 3.
def var cc as char extent 1.
def var id as int.
input from "input.csv".
repeat:
cc = ''.
import delimiter "'" cc.
id = integer( cc[1] ).
find first tt where tt.id = id no-error.
if not available tt then
message 'not found' id.
else
message 'found' tt.id.
end.
input close.
输入文件是:
1'one
2'two
3'three
几点说明:
- 如果您在键上查找记录,那么您应该使用
find
而不是 find first
- 如果您对记录的内容不感兴趣而只是想知道它是否存在,请使用
can-find
函数(returns true / false并且不需要no-error
)
嗨,有人可以帮我做点什么吗?对不起,我是新手。
我有一个文件“dntData”,一列有 9 个数字。 6个是数据库中的数字table,3个是编造的数字。
我想要做的就是让程序读取输入,查找 table 和 return 中的数字是否存在于 table 中。
出于某种原因,我的程序只有 return 个它可以找到的数字,而没有找到它不能找到的数字 - 这对我的目的没有用。我需要一个输出来告诉我“找不到号码”以及要查找的号码。
这是我写的代码:
def stream inputStream.
def stream outStream.
def var dntData as char extent 1 no-undo.
def var vl-CIN# as integer.
def var vl-error as char.
def var vl-match as char.
input stream inputStream from "/home/xxx/xxx/xxx/xxx/FirstInput.csv".
output stream outStream to "/home/xxx/xxx/xxx/xxx/FirstOutput.csv".
export stream outStream delimiter "'" "CustomerID" "Match" "Error".
Repeat:
assign
dntData = "".
import stream inputStream delimiter "'" dntData.
assign
vl-CIN# = integer(dntnData[1]).
find first members where cin# = vl-CIN#.
if not available(members) then
assign
vl-error = "Could Not Find".
if available(members) then
assign
vl-match = "Account Exists".
export stream outStream delimiter "'" vl-CIN# vl-match vl-error.
当 FIND
找不到记录时会抛出错误,因此您需要将 NO-ERROR
添加到查找语句中。
参见 ABLdojo 上的简单示例:
define temp-table tt
field id as int
.
create tt. tt.id = 1.
// create tt. tt.id = 2.
create tt. tt.id = 3.
def var cc as char extent 1.
def var id as int.
input from "input.csv".
repeat:
cc = ''.
import delimiter "'" cc.
id = integer( cc[1] ).
find first tt where tt.id = id no-error.
if not available tt then
message 'not found' id.
else
message 'found' tt.id.
end.
input close.
输入文件是:
1'one
2'two
3'three
几点说明:
- 如果您在键上查找记录,那么您应该使用
find
而不是find first
- 如果您对记录的内容不感兴趣而只是想知道它是否存在,请使用
can-find
函数(returns true / false并且不需要no-error
)