2017-02-23 28 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

只是爲了理解, –