2017-06-07 13 views
0

から、私は2つのテキストファイルを持っていますこれまでに番号と手紙を求めています。 string []とsplitを使用してテキストファイルを検索します。C#コンソールアプリケーション、マッチする文字列の検索は、[] 2つのテキストファイル

class Program 
{ 
    static void Main(string[] args) 
    { 
     int counter = 0; 
     string line; 
     string number; 
     string letter; 
     bool lineFound = false; 

     do 
     { 
      Console.WriteLine("Enter number"); 
      number = Console.ReadLine(); 

      Console.WriteLine("\nEnter letter"); 
      letter = Console.ReadLine(); 

      System.IO.StreamReader file = new System.IO.StreamReader("animal.txt"); 
      while ((line = file.ReadLine()) != null) 
      { 
       string[] words = line.Split(','); 
       if ((number == words[1]) && (letter == words[0])) 
       { 
        Console.WriteLine(line); 
        lineFound = true; 
       } 

       counter++; 
      } 

      if (!lineFound) 
      { 
       Console.WriteLine("Invalid number and/or letter"); 
      } 

      file.Close(); 

     } 
      while (!lineFound); 

入力に応じて、色と動物の線が表示されます。 どのようにして、animal.txtにある一致する行についてhabit.txtという別のファイルを検索するようにしますか?例えば入力が可能「1」と「」コンソールは、私は、スクリプト目的のデータへのあなたのためのデータベースではなく、長いように立ち上がるの.textファイルを使用することをお勧めします

green,alligator,swamp,fish 
green,alligator,swamp,bird 

答えて

0
String.Contains("some text") 

が表示されます文字列。

0
class Program 
{ 
    static void Main(string[] args) 
    { 
     int counter = 0; 
     string line; 
     string number; 
     string letter; 
     // this assumes that there will always be only one record?? 
     bool lineFound; 

     string animalType = null; 
     string animalColor = null; 

     do 
     { 
      Console.WriteLine("Enter number"); 
      number = Console.ReadLine(); 

      Console.WriteLine("\nEnter letter"); 
      letter = Console.ReadLine(); 

      System.IO.StreamReader file = new System.IO.StreamReader("animal.txt"); 
      while ((line = file.ReadLine()) != null) 
      { 
       string[] words = line.Split(','); 
       // your example data shows the number in position 0 and the letter in position 1 
       if ((number == words[0]) && (letter == words[1])) 
       { 
        Console.WriteLine(line); 

        // assign the found animals type and color to use later 

        animalType = words[3]; 
        animalColor = words[2]; 

        lineFound = true; 
       } 

       counter++; 
      } 

      if (!lineFound) 
      { 
       Console.WriteLine("Invalid number and/or letter"); 
      } 

      file.Close(); 

      System.IO.StreamReader habitatFile = new System.IO.StreamReader("habitat.txt"); 
      // line is being used by two different streams and can create unexpected behavior so instead create a seperate variable 
      while ((line = habitatFile.ReadLine()) != null) 
      { 
       string[] words = line.Split(','); 
       // your example data shows the number in position 0 and the letter in position 1 
       if ((animalColor == words[0]) && (animalType == words[1])) 
       { 
        Console.WriteLine(line); 
       } 
      } 

      habitatFile.Close(); 
     } 
     while (!lineFound); 
    } 
} 

しかし、私はクラスにテキストのこれらのラインを作り、あなたがより簡単に行うことができますどのようなものを見を見て検討する(たとえば、あなたは色によって動物のための代わりに何を検索することができますか?)

public class Animal 
{ 
    public int Number { get; set; } 

    public string Letter { get; set; } 

    public string Color { get; set; } 

    // CSV file has listed as 'animal' 
    public string Name { get; set; } 
} 

public class Habitat 
{ 
    public string Color { get; set; } 

    // CSV file has listed as 'animal' 
    public string Name { get; set; } 

    public string Found { get; set; } 

    public string Diet { get; set; } 

} 
関連する問題