2017-02-23 47 views
0

我试图读取文件有两个变量,用户名和密码,如: user1,password1寻找在文件中搜索字符串,在变量存储 - TCL

我怎么能分开的价值观和存储在不同的变量? 我试过这个,但它似乎不存储字符串本身。

看来它不能在那里看到逗号。 另一个想法是使用\M匹配每个字符串后面的“,”并存储该字符串,但它不起作用。

欣赏一些帮助。

set varuser [lsearch -inline -all $userpass "*,"] 

set varuser [regexp {,\s+"(.*)"} $userpass all value] 
+0

你是如何读取文件的? –

回答

0

由于用户的密码可能包含一个逗号,我会倾向于使用正则表达式:

% set line {user1,my,clever,password} 
user1,my,clever,password 
% lassign [regexp -inline {^(.+?),(.*)$} $line] -> user pass 
% set user 
user1 
% set pass 
my,clever,password 
0

假设既不是逗号(,忽视可能需要修剪空格)[split]比正则表达式更简单,可以为任务是不够的,与[lassign]一起:

tcl> set line {user1,password1} 
user1,password1 
tcl> lassign [split $line ,] user pwd 
tcl> puts $user 
user1 
tcl> puts $pwd 
password1 
+0

只是为了理解, –