2012-04-25 5 views
-1

바코드를 처리하는 프로젝트가 있습니다. 기본적으로 재고 추적 프로그램으로, 주어진 시간에 재고가있는 것을 알려줍니다. 각 바코드에는 관련 정보가 들어있는 텍스트 파일이 있습니다. 각 파일 정보의 다음 행이 포함여러 텍스트 파일에서 정보를 가져 오는 방법 #

  1. "사무실 프린터"<을 - 0 품절 동일, 1
  2. "관련이없는 정보 재고 동일 -이
  3. "1 "<이 항목에 대한 설명입니다 "< - 정렬에 사용되지 않는 추가 정보

약 200 개가 넘는 다른 텍스트 파일이 있습니다. 항목 설명을 먼저 검색 한 다음 해당 항목을 검색하여 다시 i를 확인할 필요가 있습니다. n 주식. 이상적으로는 숫자를 재고로 나열하는 정수를 표시하지만, 가장 쉬운 경우 텍스트 파일의 이름을 표시 할 수도 있습니다. 지금까지 제 코드가 있습니다. comboBox1에는 검색 가능한 항목 드롭 다운 목록이 있습니다. richTextbox1은 검색 결과를 표시하도록 설정 한 것입니다. 지금은 단지 하나의 "1"만을 보여줍니다.

편집
돌파구로 인해 VBRonPaulFan에게 감사드립니다. 콤보 상자 선택에 따라 재고가있는 품목 수를 표시합니다. 내가 연구 할 유일한 다른 점은 모든 항목을 나열하는 것이 아니라 항목 수를 표시하는 것입니다. 감사!

private void searchButton_Click(object sender, EventArgs e) 
    { 
     richTextBox1.Text = ""; 

     foreach (string fileName in Directory.GetFiles("C:\\ITRS_equipment_log\\", "*.txt")) 
     { 

      using (StreamReader sw = new StreamReader(fileName)) 
      { 
       string Description = sw.ReadLine(); 
       bool InStock = sw.ReadLine().Trim() == "1"; 

       if (Description.Contains(comboBox1.Text) && InStock == true) 
       { 
        richTextBox1.AppendText("Item '" + Description + "' is " + (InStock ? "in" : "not in") + " stock.\r\n"); 
       } 
      } 
     } 
    } 
+0

정확히 어떤 질문입니까? 아마 코드가 작동하는 것처럼 보입니다. – R0MANARMY

+2

200 개의 텍스트 파일이 아닌 * 데이터베이스 *를 원한다고 들립니다. – BrokenGlass

+0

첫 번째 텍스트 파일에서 정보를 가져온 다음 중지됩니다. 그 기준을 충족시키는 모든 텍스트 파일을 가져 오길 원합니다. – McAfeeJ

답변

1

매번 당신은 업데이트 된 값으로 RichTextBox1에의 값을 덮어있어하는 '일치'를 찾을 수 있습니다. 첫 번째 파일 다음에 '중지'하지 않고 모든 파일을 실행하는 마지막 값을 표시합니다 ...

표시 방법에 대해서는 분명하지 않습니다. 사용자 ...하지만 풍부한 텍스트 상자는 아마도 최선의 방법이 아닙니다. 콤보 박스가 아마 좋을 것입니다. 기본적으로 당신이하고 싶은 것처럼 보이십니까?

private void searchButton_Click(object sender, EventArgs e) 
{ 
    foreach (string fileName in Directory.GetFiles("C:\\ITRS_equipment_log\\", "*.txt")) 
    { 
     using (StreamReader sw = new StreamReader(fileName)) 
     { 
      string Description = sw.ReadLine(); 
      bool InStock = sw.ReadLine().Trim() == "1"; 

      if (Description.Contains(comboBox1.SelectedText)) 
      { 
       richTextBox1.AppendText("Item '" + Description + "' is " + (InStock ? "in" : "not in") + " stock.\r\n"); 
      } 
     } 
    } 
} 
+0

확실히 도움이되었습니다. 고맙습니다! 웬일인지 그것이 콤보 박스에서 선택되는지에 관계없이 모든 항목을 보여준다. 그러나 이것은 내가 가지고있는 것보다 큰 개선이다. – McAfeeJ

+0

출력 내용을보기 위해 richTextbox 만 사용했습니다. 이 코드를 가져 와서 조정하여 텍스트 상자에 정수가 몇 개나 있는지를 보여주기 위해 조정할 것입니다. – McAfeeJ

+0

많은 제품 제목이 비슷한 경우 비교를 Description.Contains (...)에서 Description.ToUpper() == comboBox1.SelectedText.ToUpper() 또는 유사한 것으로 변경하고 정확한 결과 만 일치시켜야 할 수도 있습니다 ... –

관련 문제