![](/img/trans.png)
[英]find element in webbrowser and add to list box Respectively in csharp
[英]Csharp substring text and add it to list
我有file.txt之類的: 編輯:我沒有寫過,但這很重要,我想-在file.txt中可以有其他行!
folder=c:\user;c:\test;c:\something;
我需要添加一個路徑,例如一個列表項( List<string> Folders
)。 所以我的清單應該像這樣:
Folders[0] = c:\user
Folders[1] = c:\test
等等(不帶文本“ folder =“,它以file.txt開頭的行,沒有“;”表示路徑的結尾)。
文件可以包含更多路徑。 我做了這樣的事情:
using (FileStream fss = new FileStream(path, FileMode.Open))
{
using (StreamReader sr = new StreamReader(fss))
{
while (sr.EndOfStream == false)
{
string line = sr.ReadLine();
if(line.StartsWith("folders"))
{
int index = line.IndexOf("=");
int index1 = line.IndexOf(";");
string folder = line.Substring(index + 1, index1 - (index + 1));
Folders.Add(folder);
現在在列表文件夾中,我有第一個路徑,但是現在呢? 我不能繼續:(
using(var sr = new StreamReader(path))
{
var folders = sr.ReadToEnd()
.Split(new char[]{';','\n','\r'}, StringSplitOptions.RemoveEmptyEntries)
.Select(o => o.Replace("folder=",""))
.ToArray();
Folders.AddRange(folders);
}
您可以使用File.ReadAllText嘗試以下代碼
string Filepath = "c:\abc.txt";
string filecontent = File.ReadAllText(Filepath);
string startingString = "=";
var startIndex = filecontent.IndexOf(startingString);
filecontent = filecontent.Substring(startIndex + 1, filecontent.Length - startIndex - 2);
List<String> folders = filecontent.Split(';').ToList();
這是一個簡單的例子:
List<String> Folders = new List<string>();
private void button1_Click(object sender, EventArgs e)
{
string path = @"C:\Users\mikes\Documents\SomeFile.txt";
string folderTag = "folder=";
using (FileStream fss = new FileStream(path, FileMode.Open))
{
using (StreamReader sr = new StreamReader(fss))
{
while (!sr.EndOfStream)
{
string line = sr.ReadLine();
if (line.StartsWith(folderTag))
{
line = line.Substring(folderTag.Length); // remove the folderTag from the beginning
Folders.AddRange(line.Split(";".ToCharArray(), StringSplitOptions.RemoveEmptyEntries));
}
}
}
}
foreach(string folder in Folders)
{
Console.WriteLine(folder);
}
}
如果您要逐行閱讀,並根據每行的開頭進行其他操作,我會使用這種方法。 在這種情況下,您可以添加其他else if(...)
塊:
if (line.StartsWith(folderTag))
{
line = line.Substring(folderTag.Length); // remove the folderTag from the beginning
Folders.AddRange(line.Split(";".ToCharArray(), StringSplitOptions.RemoveEmptyEntries));
}
else if(line.StartsWith("parameters="))
{
// do something different with a line starting with "parameters="
}
else if (line.StartsWith("unicorns="))
{
// do something else different with a line starting with "unicorns="
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.