오늘 textBox1에 텍스트를 입력 한 다음 시작 버튼을 클릭하면 textBox1에 입력 한 텍스트 파일을 검색합니다.사용자가 textBox로 여러 텍스트를 검색 할 수있게하려면 어떻게해야합니까?
이제 어떻게 든 사용자가 textBox1에 입력하면 어떻게 든 추가하고 싶습니다. hello, hi hello를 검색하고 hi를 검색합니다. 하나의 문자열/텍스트가 아닌 두 개의 문자열. 내가 입력하면 : 안녕하세요, 안녕하세요, 세계 이제 안녕하세요 안녕과 세계에 대해서도 같은 시간에 동일한 파일을 검색합니다.
의 TextChanged 이벤트
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (textBox1.Text != "" && textBox3.Text != "" && Directory.Exists(textBox3.Text))
{
startButton.Enabled = true;
Properties.Settings.Default["Setting2"] = textBox1.Text;
Properties.Settings.Default.Save();
}
else
{
startButton.Enabled = false;
}
}
시작 버튼 클릭 이벤트
private void startButton_Click(object sender, EventArgs e)
{
label21.Visible = true;
startButton.Enabled = false;
stopButton.Enabled = true;
pauseresumeButton.Enabled = true;
timer1.Start();
if (!backgroundWorker1.IsBusy)
{
SetWorkerMode(true);
backgroundWorker1.RunWorkerAsync();
}
}
Dowork 이벤트
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
_stopwatch.Restart();
DirSearch(textBox3.Text, textBox2.Text, textBox1.Text, worker, e);
_stopwatch.Stop();
}
내가 파일의 텍스트를 검색하려면마다 DirSearch 방법.
void DirSearch(string rootDirectory, string filesExtension, string textToSearch, BackgroundWorker worker, DoWorkEventArgs e)
{
List<string> filePathList = new List<string>();
List<string> restrictedFiles = new List<string>();
int overallfiles = 0;
int numberoffiles = 0;
int numberofdirs = 0;
try
{
filePathList = SearchAccessibleFilesNoDistinct(rootDirectory, null).ToList();
}
catch (Exception err)
{
string ad = err.ToString();
}
foreach (string file in filePathList)
{
try
{
_busy.WaitOne();
if (worker.CancellationPending == true)
{
e.Cancel = true;
return;
}
List<MyProgress> prog = new List<MyProgress>();
int var = File.ReadAllText(file).Contains(textToSearch) ? 1 : 0;
overallfiles++;
if (var == 1)
{
numberoffiles++;
prog.Add(new MyProgress { Report1 = file, Report2 = numberoffiles.ToString() });
backgroundWorker1.ReportProgress(0, prog);
}
numberofdirs++;
label1.Invoke((MethodInvoker)delegate
{
label1.Text = numberofdirs.ToString();
label1.Visible = true;
});
}
catch (Exception)
{
restrictedFiles.Add(file);
continue;
}
}
}
DirSearch에서 변수 textToSearch에는 textBox1에 입력 한 텍스트가 포함되어 있습니다. 내가 textBox1 만 입력하면 지금처럼 HI의 기존 파일을 검색합니다.
내가 HI, HELLO, WORLD를 입력하면 안녕하세요 HELLO WORLD의 각 파일에 하나의 텍스트 문자열이 아니라 각 단어가 이미 존재한다고 검색하고 싶습니다.
안녕하세요 HELLO WORLD를 입력하면 한 줄/텍스트로 검색되지만 한 번 사용자가 입력하면 각 단어/텍스트를 검색해야합니다.
당신은 공간에 따라 텍스트 상자에 입력을 분할 할 수 있습니다
조금 코멘트 도움이되기를 바랍니다, 당신은 전화를 안 당신의 변수'var'. 'var'은 C#에서 특별한 의미를가집니다. – Jonathan