我想要一個帶有字符串列表的文本文件(例如逗號分隔的鍵和值可用於自動替換)並將每個鍵值對存儲在TDictionary<string, string>
中。我如何填充字典?如何從逗號分隔的字符串對的列表填充TDictionay?
回答
如果你只有一到一個鍵值關係(不喜歡的三個關鍵詞「蘋果」和「蘋果」和「McIntoshes」就會變成「麥金託什」) - 然後可能是simpliest方式是使用的TStringList,提供
- ü做完全的
Key=Value
線,不Key,Value
- ü您的文件要麼需要區分大小寫或做大寫在文件。
然後u使用http://docwiki.embarcadero.com/Libraries/XE3/en/System.Classes.TStrings.Values
爲了加快速度一點,你可以使用THashedStringList IniFiles單位。 JCLXML單元中的JCL也有類似的地方。
這也是一種非常棒的方法,但我將擁有一個以上的值。感謝您的建議! – user1817376
@ user1817376如果這是'真棒',但沒有回答你的問題,你爲什麼接受它?恕我直言大衛的答案適合完善你的問題,應該被接受。 BTW與TStringList,你可以有許多與TDictionary相同的值的鍵。只有鑰匙必須是唯一的 –
我同意@SirRufo對此。當答案很棒時 - 通過提升它來承認。但是,答案是否正確 - 這是一個單獨的問題。我相信 - 如果回答不符合,你最好做1:通過明確地拼寫要求來解決你的問題,這會讓我的答案不正確; 2:接受真正適用於你的情況的答案。 –
從您的評論看來,您似乎想知道如何將一些鍵值對逗號分隔成字典。這裏有一個簡單的例子:
procedure PopulateKeyValueDict(Strings: TStrings;
Dict: TDictionary<string, string>);
var
CommaPos: Integer;
Line: string;
Key, Value: string;
begin
for Line in Strings do
begin
CommaPos := Pos(',', Line);
if CommaPos=0 then
raise Exception.CreateFmt(
'Could find comma separated key/value pair in ''%s''',
[Line]
);
Key := Copy(Line, 1, CommaPos-1);
Value := Copy(Line, CommaPos+1, MaxInt);
Dict.Add(Key, Value);
end;
end;
您可能會想添加更多的錯誤檢查等,但我假設你已經知道該怎麼做。這個例子說明了在第一個逗號分隔一行,以及如何填充字典。
爲了使用它,您需要將您的文件傳輸到TStrings
對象。這是例行:
var
Strings: TStringList;
....
Strings := TStringList.Create;
try
Strings.LoadFromFile(FileName);
PopulateKeyValueDict(Strings, Dict);
finally
Strings.Free;
end;
如何將其用於文本替換? – user1817376
它的意思是這裏一次只有一個問題。但是你需要遍歷字典和每對,做你的字符串替換。你可以使用'StringReplace'函數。 –
哦......謝謝!我去了你的網站,我很驚訝! – user1817376
- 1. 逗號分隔字符串列表
- 2. 從逗號分隔的字符串
- 3. 創建逗號的字符串分隔行情從列表
- 4. re.findall - 從逗號分隔的字符串獲取項目列表
- 5. 陣列以逗號分隔字符串
- 6. 分離逗號分隔的字符串
- 7. 從逗號分隔字符串
- 8. 從分隔的字符串填充列表屬性
- 9. 逗號分隔字符串表
- 10. 逗號分隔符號字符串
- 11. 包含逗號與逗號分隔符的分割字符串
- 12. 如何獲取逗號分隔字符串的子字符串?
- 13. 從逗號分隔字符串使成對排列
- 14. SQL:用查詢拆分逗號分隔的字符串列表?
- 15. 搜索逗號IDS分隔字符串以逗號分隔字符串
- 16. 轉換被逗號分隔值,以逗號分隔字符串
- 17. 從逗號分隔的字符串中使用linq的對象
- 18. 逗號分隔的字符串到表的列在SQL Server
- 19. 用逗號分隔的字符串
- 20. 逗號分隔的字符串集合
- 21. 逗號分隔的字符串數組
- 22. AutoMapper逗號分隔的字符串
- 23. 逗號分隔的字符串
- 24. concat逗號分隔的字符串值
- 25. 用逗號填充表單字段分隔在無序列表字符串的onclick與jQuery/JavaScript的
- 26. 從SQL逗號分隔的字符串重新填充GridView中的複選框列表
- 27. 從一個字符串中填充一個由逗號分隔的值的列表框
- 28. 劃分逗號分隔的串入列與空字符串
- 29. 如何獲得的發生,從逗號分隔字符串
- 30. 拆分逗號分隔字符串
拉出值 – user1817376
http://docwiki.embarcadero.com/Libraries/XE3/en/System.Generics.Collections.TDictionary.TryGetValue –