/* 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. "); } 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; */