Mega Code Archive

 
Categories / C# / File Stream
 

A help program that uses a disk file to store help information

/* C# A Beginner's Guide By Schildt Publisher: Osborne McGraw-Hill ISBN: 0072133295 */ /*       Project 11-2           A help program that uses a disk file     to store help information.  */      using System;  using System.IO;     /* The Help class opens a help file,     searches for a topic, and then displays     the information associated with that topic. */   class Help {    string helpfile; // name of help file      public Help(string fname) {      helpfile = fname;    }      // Display help on a topic.    public bool helpon(string what) {       StreamReader helpRdr;      int ch;      string topic, info;        try {        helpRdr = new StreamReader(helpfile);      }      catch(FileNotFoundException exc) {        Console.WriteLine(exc.Message);        return false;      }        try {        do {          // read characters until a # is found          ch = helpRdr.Read();            // now, see if topics match          if(ch == '#') {            topic = helpRdr.ReadLine();            if(what == topic) { // found topic              do {                info = helpRdr.ReadLine();                if(info != null) Console.WriteLine(info);              } while((info != null) && (info != ""));              helpRdr.Close();              return true;            }          }        } while(ch != -1);      }      catch(IOException exc) {        Console.WriteLine(exc.Message);      }       helpRdr.Close();      return false; // topic not found    }        // Get a Help topic.    public string getSelection() {       string topic = "";        Console.Write("Enter topic: ");        try {          topic = Console.ReadLine();      }      catch(IOException exc) {        Console.WriteLine(exc.Message);        return "";      }      return topic;    }  }      // Demonstrate the file-based Help system.  public class FileHelp {      public static void Main() {        Help hlpobj = new Help("helpfile.txt");       string topic;        Console.WriteLine("Try the help system. " +                         "Enter 'stop' to end.");       do {         topic = hlpobj.getSelection();            if(!hlpobj.helpon(topic))          Console.WriteLine("Topic not found.\n");        } while(topic != "stop");    }   } /* #if if(condition) statement; else statement; #switch switch(expression) {   case constant:     statement sequence       break;       // ...     }   #for for(init; condition; iteration) statement;   #while while(condition) statement;   #do do {     statement;   } while (condition);   #break break; or break label;   #continue continue; or continue label;   #goto goto label;   */