UPDATE:採用分體式用 r n r n
我沒有意識到托馬斯Levesque的已經發布瞭解決方案,我自己曾在此期間下面之一。我並沒有長時間使用C#/ VS2010,但我必須說C#的生產效率令人難以置信,我自that自己堅持使用C++,並推遲了學習C#的時間。
Stack<string> LdifUserStack = new Stack<string>();
String LdifValidUser = null;
var query2 = File.ReadAllLines(args[1]).ToList();
foreach (var item in query2)
{
if (item.Contains("Fullname")) continue;
LdifValidUser += item + System.Environment.NewLine;
if (LdifValidUser.Contains("GivenName:") && LdifValidUser.Contains("SN:"))
{
LdifUserStack.Push(LdifValidUser);
LdifValidUser = null;
}
else if (string.IsNullOrEmpty(item))
{
LdifValidUser = null;
}
}
結束時更新:
我有一個簡單的ldif文件,我試圖拆就/R/N/R/N,但沒有喜悅,無論組合我使用分割始終而是在每一行上發生。
var query2 =
from line in File.ReadAllLines(args[1])
let LDIFRecord = line.Split(new string[] { "\r\n\r\n"},StringSplitOptions.None)
select LDIFRecord;
foreach (var item in query2)
{
//do something
}
//Also tried line.Split(new string[] {"'\r\n','\r\n'"},StringSplitOptions.None)
// sample ldif file
dn: cn=Admin1,ou=abt,o=cach
changetype: modify
GivenName: Admin
Fullname: Administrator for abt Server
SN: Admin
CN: Admin
dn: cn=admin,ou=ters,o=cach
changetype: modify
GivenName: Administrator
Fullname: cach Administrator
SN: admin
CN: admin
dn: cn=Supervisor,o=cach
changetype: modify
SN: Supervisor
CN: Supervisor
我明白了。ldif文件中的每條記錄之間用/ r/n/r/n分隔,之後我只處理包含屬性GivenName的記錄:&SN: – Canacourse 2010-10-12 09:58:29
請參閱我的解決方案的更新答案 – 2010-10-12 12:23:41
感謝您的解釋和解決方案。 – Canacourse 2010-10-12 15:17:47