2014-04-30 75 views
1

我用Process.run執行ldapsearch。然後,我從stdout一個String,它看起來像這樣:從字符串構建地圖

user: demo 
first-name: demo 
picture: trewtrewtrwrwgr 
grewgrwgrwgrewgrwegrwe== 

我可以做只是從現有的方法中的地圖,或者我必須做出一個?

謝謝。

回答

2

要轉換條目:

String datas = '''user: demo 
first-name: demo 
picture: trewtrewtrwrwgr 
grewgrwgrwgrewgrwegrwe=='''; 
final lines = datas.split('\n').fold([], (List<String> lines, line) { 
    if (line.contains(':')) lines.add(line); 
    // merge line that does not contain ":" with the previous 
    else lines.add(lines.removeLast() + '\n' + line); 
    return lines; 
}); 
final m = new Map.fromIterable(lines.map((e) => e.split(':')), 
    key: (e) => e[0].trim(), 
    value: (e) => e[1].trim()); 

從未嘗試過:你也可以使用dartdap(在DART的LDAP客戶端庫)。

+0

這已經是我正在做的事情。但是,'\ n'對於圖像領域來說還不夠精確。他接管了20條線。而LDAP庫不適合我。 – Druxtan

+1

Ooops我錯過了多行值。對不起!我已經更新了合併這些行的答案。 (我不知道'\ n'是否必要,隨時刪除它) –