Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Friday Programming Quiz [modified]

Friday Programming Quiz [modified]

Scheduled Pinned Locked Moved The Lounge
csharpasp-netcomquestionlearning
42 Posts 16 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R Rama Krishna Vavilala

    There are some number of text files. Each file contains a number separated by a comma and a name. e.g. File 1

    1,Chris Maunder
    20248,Nishant Sivakumar
    36803,Marc Clifton
    ...

    File 2

    6556,Christian Graus
    7741,John Simmons / outlaw programmer
    15383,Rama Krishna Vavilala
    ...

    All the records in the file are sorted by the id (the number). Note there can be many such files. The purpose is to generate a new file like this:

    1,Chris Maunder
    6556,Christian Graus
    7741,John Simmons / outlaw programmer
    15383,Rama Krishna Vavilala
    20248,Nishant Sivakumar
    36803,Marc Clifton
    ...

    Of course it can be done in a programming language of your choice. I might be able to hand over a prize for the most innovative and interesting/ solution.;) -- modified at 15:01 Friday 24th August, 2007

    Co-Author ASP.NET AJAX in Action

    D Offline
    D Offline
    Daniel Grunwald
    wrote on last edited by
    #11

    using System.Linq;
    class Program {
    public static void Main(string[] args) {
    args.Select(
    fileName => System.IO.File.ReadAllLines(fileName).Select(
    line => new { ID = int.Parse(line.Split(',')[0]), Name = line.Split(',')[1]}
    ))
    .Aggregate((a, b)=>a.Concat(b))
    .OrderBy(a=>a.ID).ToList().ForEach(a=>System.Console.WriteLine("{0},{1}", a.ID, a.Name));
    }
    }

    If you require that the output is written to a file, use this:

    	System.IO.File.WriteAllLines("output.txt", args.Select(
    		fileName => System.IO.File.ReadAllLines(fileName).Select(
    			line => new { ID = int.Parse(line.Split(',')\[0\]), Name = line.Split(',')\[1\]}
    		))
    		.Aggregate((a, b)=>a.Concat(b))
    		.OrderBy(a=>a.ID).Select(a=>string.Format("{0},{1}", a.ID, a.Name)).ToArray());
    

    Last modified: 8mins after originally posted --

    L D 2 Replies Last reply
    0
    • R Rama Krishna Vavilala

      There are some number of text files. Each file contains a number separated by a comma and a name. e.g. File 1

      1,Chris Maunder
      20248,Nishant Sivakumar
      36803,Marc Clifton
      ...

      File 2

      6556,Christian Graus
      7741,John Simmons / outlaw programmer
      15383,Rama Krishna Vavilala
      ...

      All the records in the file are sorted by the id (the number). Note there can be many such files. The purpose is to generate a new file like this:

      1,Chris Maunder
      6556,Christian Graus
      7741,John Simmons / outlaw programmer
      15383,Rama Krishna Vavilala
      20248,Nishant Sivakumar
      36803,Marc Clifton
      ...

      Of course it can be done in a programming language of your choice. I might be able to hand over a prize for the most innovative and interesting/ solution.;) -- modified at 15:01 Friday 24th August, 2007

      Co-Author ASP.NET AJAX in Action

      T Offline
      T Offline
      ToddHileHoffer
      wrote on last edited by
      #12

      I wrote an application to do this. Front end and all in 7 minutes. I could have used a hash-table or arraylist or whatever but I used ado.net because that's the kind of guy I am. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace WindowsApplication1 { public partial class Form1 : Form { DataTable dt; Int32 FilesRead = 0; private void AddFileToDataTable(System.IO.Stream fileStream) { System.IO.StreamReader sr = new System.IO.StreamReader(fileStream); string input; DataRow dr; while ((input = sr.ReadLine()) != null) { string[] s = input.Split(new char[] { ',' }); dr = dt.NewRow(); dr["ID"] = int.Parse(s[0]); dr["Name"] = s[1]; dt.Rows.Add(dr); } sr.Close(); } public Form1() { InitializeComponent(); dt = new DataTable(); DataColumn dc; dc = new DataColumn(); dc.DataType = System.Type.GetType("System.Int32"); dc.ColumnName = "ID"; dt.Columns.Add(dc); dc = new DataColumn(); dc.DataType = System.Type.GetType("System.String"); dc.ColumnName = "Name"; dt.Columns.Add(dc); } private void button1_Click(object sender, EventArgs e) { this.openFileDialog1.ShowDialog(); System.IO.Stream sr = System.IO.File.Open(this.openFileDialog1.FileName, System.IO.FileMode.Open); AddFileToDataTable(sr); FilesRead += 1; this.label1.Text = "Files Read:" + FilesRead.ToString(); } private void button2_Click(object sender, EventArgs e) { this.saveFileDialog1.ShowDialog(); DataView dv = new DataView(dt); dv.Sort = "ID ASC"; dt = dv.ToTable(); StringBuilder sb = new StringBuilder(); foreach (DataRow r in dt.Rows) { sb.Append(r[0].ToString() + "," + r[1].ToString() + Environment.NewLine); } System.IO.File.WriteAllText(this.saveFileDialog1.FileName, sb.ToString()); } } }

      <

      1 Reply Last reply
      0
      • R Rama Krishna Vavilala

        There are some number of text files. Each file contains a number separated by a comma and a name. e.g. File 1

        1,Chris Maunder
        20248,Nishant Sivakumar
        36803,Marc Clifton
        ...

        File 2

        6556,Christian Graus
        7741,John Simmons / outlaw programmer
        15383,Rama Krishna Vavilala
        ...

        All the records in the file are sorted by the id (the number). Note there can be many such files. The purpose is to generate a new file like this:

        1,Chris Maunder
        6556,Christian Graus
        7741,John Simmons / outlaw programmer
        15383,Rama Krishna Vavilala
        20248,Nishant Sivakumar
        36803,Marc Clifton
        ...

        Of course it can be done in a programming language of your choice. I might be able to hand over a prize for the most innovative and interesting/ solution.;) -- modified at 15:01 Friday 24th August, 2007

        Co-Author ASP.NET AJAX in Action

        P Offline
        P Offline
        PIEBALDconsult
        wrote on last edited by
        #13

        What about duplicates?

        R 1 Reply Last reply
        0
        • R Rama Krishna Vavilala

          There are some number of text files. Each file contains a number separated by a comma and a name. e.g. File 1

          1,Chris Maunder
          20248,Nishant Sivakumar
          36803,Marc Clifton
          ...

          File 2

          6556,Christian Graus
          7741,John Simmons / outlaw programmer
          15383,Rama Krishna Vavilala
          ...

          All the records in the file are sorted by the id (the number). Note there can be many such files. The purpose is to generate a new file like this:

          1,Chris Maunder
          6556,Christian Graus
          7741,John Simmons / outlaw programmer
          15383,Rama Krishna Vavilala
          20248,Nishant Sivakumar
          36803,Marc Clifton
          ...

          Of course it can be done in a programming language of your choice. I might be able to hand over a prize for the most innovative and interesting/ solution.;) -- modified at 15:01 Friday 24th August, 2007

          Co-Author ASP.NET AJAX in Action

          C Offline
          C Offline
          Chris Losinger
          wrote on last edited by
          #14

          this one feels too much like actual work

          image processing toolkits | batch image processing

          L R 2 Replies Last reply
          0
          • P PIEBALDconsult

            What about duplicates?

            R Offline
            R Offline
            Rama Krishna Vavilala
            wrote on last edited by
            #15

            There are no duplicates. Assume unique values

            Co-Author ASP.NET AJAX in Action

            P D 2 Replies Last reply
            0
            • R Rama Krishna Vavilala

              There are some number of text files. Each file contains a number separated by a comma and a name. e.g. File 1

              1,Chris Maunder
              20248,Nishant Sivakumar
              36803,Marc Clifton
              ...

              File 2

              6556,Christian Graus
              7741,John Simmons / outlaw programmer
              15383,Rama Krishna Vavilala
              ...

              All the records in the file are sorted by the id (the number). Note there can be many such files. The purpose is to generate a new file like this:

              1,Chris Maunder
              6556,Christian Graus
              7741,John Simmons / outlaw programmer
              15383,Rama Krishna Vavilala
              20248,Nishant Sivakumar
              36803,Marc Clifton
              ...

              Of course it can be done in a programming language of your choice. I might be able to hand over a prize for the most innovative and interesting/ solution.;) -- modified at 15:01 Friday 24th August, 2007

              Co-Author ASP.NET AJAX in Action

              M Offline
              M Offline
              Minosknight
              wrote on last edited by
              #16

              00110001001011000100001101101000011100100110100101110011001000000 10011010110000101110101011011100110010001100101011100100000110100 00101000110110001101010011010100110110001011000100001101101000011 10010011010010111001101110100011010010110000101101110001000000100 01110111001001100001011101010111001100001101000010100011011100110 11100110100001100010010110001001010011011110110100001101110001000 00010100110110100101101101011011010110111101101110011100110010000 00010111100100000011011110111010101110100011011000110000101110111 00100000011100000111001001101111011001110111001001100001011011010 11011010110010101110010000011010000101000110001001101010011001100 11100000110011001011000101001001100001011011010110000100100000010 01011011100100110100101110011011010000110111001100001001000000101 01100110000101110110011010010110110001100001011011000110000100001 10100001010001100100011000000110010001101000011100000101100010011 10011010010111001101101000011000010110111001110100001000000101001 10110100101110110011000010110101101110101011011010110000101110010 00001101000010100011001100110110001110000011000000110011001011000 10011010110000101110010011000110010000001000011011011000110100101 100110011101000110111101101110

              Think of it this way...using a Stradivarius violin to pound nails should not be considered a sound construction technique

              P 1 Reply Last reply
              0
              • C Chris Losinger

                this one feels too much like actual work

                image processing toolkits | batch image processing

                L Offline
                L Offline
                Luis Alonso Ramos
                wrote on last edited by
                #17

                Can anyone do this help me do this for my homework? It's due in two hours and I've had all the semester!! Please help urgent!! ;P

                Luis Alonso Ramos Intelectix Chihuahua, Mexico

                My Blog!

                1 Reply Last reply
                0
                • R Rama Krishna Vavilala

                  There are no duplicates. Assume unique values

                  Co-Author ASP.NET AJAX in Action

                  P Offline
                  P Offline
                  PIEBALDconsult
                  wrote on last edited by
                  #18

                  Rama Krishna Vavilala wrote:

                  Assume

                  That's a naughty word.

                  1 Reply Last reply
                  0
                  • R Rama Krishna Vavilala

                    There are no duplicates. Assume unique values

                    Co-Author ASP.NET AJAX in Action

                    D Offline
                    D Offline
                    Daniel Grunwald
                    wrote on last edited by
                    #19

                    Rama Krishna Vavilala wrote:

                    No duplicates!

                    Does this mean the input files do not contain duplicates, or duplicates need to be removed? In my solution, put a ".Distinct()" between the Aggregate line and the Sort+Output line if you need to remove duplicates.

                    R 1 Reply Last reply
                    0
                    • C Chris Losinger

                      this one feels too much like actual work

                      image processing toolkits | batch image processing

                      R Offline
                      R Offline
                      Rama Krishna Vavilala
                      wrote on last edited by
                      #20

                      Yes! It is close. All the quizzes are based on actual work I did. It is based on a IIS log analyzer utility I once wrote which sorted log records from different servers into one file. Except that the actual program was far more complex as it had to read large files in buffers and merge them.

                      Co-Author ASP.NET AJAX in Action

                      1 Reply Last reply
                      0
                      • M Minosknight

                        00110001001011000100001101101000011100100110100101110011001000000 10011010110000101110101011011100110010001100101011100100000110100 00101000110110001101010011010100110110001011000100001101101000011 10010011010010111001101110100011010010110000101101110001000000100 01110111001001100001011101010111001100001101000010100011011100110 11100110100001100010010110001001010011011110110100001101110001000 00010100110110100101101101011011010110111101101110011100110010000 00010111100100000011011110111010101110100011011000110000101110111 00100000011100000111001001101111011001110111001001100001011011010 11011010110010101110010000011010000101000110001001101010011001100 11100000110011001011000101001001100001011011010110000100100000010 01011011100100110100101110011011010000110111001100001001000000101 01100110000101110110011010010110110001100001011011000110000100001 10100001010001100100011000000110010001101000011100000101100010011 10011010010111001101101000011000010110111001110100001000000101001 10110100101110110011000010110101101110101011011010110000101110010 00001101000010100011001100110110001110000011000000110011001011000 10011010110000101110010011000110010000001000011011011000110100101 100110011101000110111101101110

                        Think of it this way...using a Stradivarius violin to pound nails should not be considered a sound construction technique

                        P Offline
                        P Offline
                        PIEBALDconsult
                        wrote on last edited by
                        #21

                        Oh, now that's got me thinking of Douglas Adams again, Dirk Gently in fact: The program kgvclsg lgzszsil gvhzxido;vzxdl'vcbx gcb ;klh gjl;ghilsfdghb kZG l gh will perform the task, we just need to find a compiler for it! :laugh:

                        M M 2 Replies Last reply
                        0
                        • D Daniel Grunwald

                          Rama Krishna Vavilala wrote:

                          No duplicates!

                          Does this mean the input files do not contain duplicates, or duplicates need to be removed? In my solution, put a ".Distinct()" between the Aggregate line and the Sort+Output line if you need to remove duplicates.

                          R Offline
                          R Offline
                          Rama Krishna Vavilala
                          wrote on last edited by
                          #22

                          No your solution is correct! There will be no duplicates.

                          Co-Author ASP.NET AJAX in Action

                          1 Reply Last reply
                          0
                          • D Daniel Grunwald

                            using System.Linq;
                            class Program {
                            public static void Main(string[] args) {
                            args.Select(
                            fileName => System.IO.File.ReadAllLines(fileName).Select(
                            line => new { ID = int.Parse(line.Split(',')[0]), Name = line.Split(',')[1]}
                            ))
                            .Aggregate((a, b)=>a.Concat(b))
                            .OrderBy(a=>a.ID).ToList().ForEach(a=>System.Console.WriteLine("{0},{1}", a.ID, a.Name));
                            }
                            }

                            If you require that the output is written to a file, use this:

                            	System.IO.File.WriteAllLines("output.txt", args.Select(
                            		fileName => System.IO.File.ReadAllLines(fileName).Select(
                            			line => new { ID = int.Parse(line.Split(',')\[0\]), Name = line.Split(',')\[1\]}
                            		))
                            		.Aggregate((a, b)=>a.Concat(b))
                            		.OrderBy(a=>a.ID).Select(a=>string.Format("{0},{1}", a.ID, a.Name)).ToArray());
                            

                            Last modified: 8mins after originally posted --

                            L Offline
                            L Offline
                            Luis Alonso Ramos
                            wrote on last edited by
                            #23

                            I need to start learning LINQ :doh: I'll give you a 5 and suppose that it actually works :)

                            Luis Alonso Ramos Intelectix Chihuahua, Mexico

                            My Blog!

                            1 Reply Last reply
                            0
                            • R Rama Krishna Vavilala

                              I expected that someone will come with this kind of solution.;)

                              PIEBALDconsult wrote:

                              "the numerical value of the id.

                              Yes.

                              Co-Author ASP.NET AJAX in Action

                              P Offline
                              P Offline
                              PIEBALDconsult
                              wrote on last edited by
                              #24

                              OK, then my version of sort does. :-D

                              1 Reply Last reply
                              0
                              • C Chris Meech

                                Rama Krishna Vavilala wrote:

                                Of course it can be done in language of your choice

                                Give a couple of hours and I'll have the COBOL version slapped together for you. :)

                                Chris Meech I am Canadian. [heard in a local bar]

                                G Offline
                                G Offline
                                Gary Wheeler
                                wrote on last edited by
                                #25

                                Watch it; remember the kid-sister rule in the Lounge.


                                Software Zen: delete this;

                                1 Reply Last reply
                                0
                                • P PIEBALDconsult

                                  Oh, now that's got me thinking of Douglas Adams again, Dirk Gently in fact: The program kgvclsg lgzszsil gvhzxido;vzxdl'vcbx gcb ;klh gjl;ghilsfdghb kZG l gh will perform the task, we just need to find a compiler for it! :laugh:

                                  M Offline
                                  M Offline
                                  Minosknight
                                  wrote on last edited by
                                  #26

                                  precisely, I was just being lame and put the desired end result into a text to binary converter. I suppose you could just do it the other way around and TAH-DAH!;P

                                  Think of it this way...using a Stradivarius violin to pound nails should not be considered a sound construction technique

                                  1 Reply Last reply
                                  0
                                  • D Daniel Grunwald

                                    using System.Linq;
                                    class Program {
                                    public static void Main(string[] args) {
                                    args.Select(
                                    fileName => System.IO.File.ReadAllLines(fileName).Select(
                                    line => new { ID = int.Parse(line.Split(',')[0]), Name = line.Split(',')[1]}
                                    ))
                                    .Aggregate((a, b)=>a.Concat(b))
                                    .OrderBy(a=>a.ID).ToList().ForEach(a=>System.Console.WriteLine("{0},{1}", a.ID, a.Name));
                                    }
                                    }

                                    If you require that the output is written to a file, use this:

                                    	System.IO.File.WriteAllLines("output.txt", args.Select(
                                    		fileName => System.IO.File.ReadAllLines(fileName).Select(
                                    			line => new { ID = int.Parse(line.Split(',')\[0\]), Name = line.Split(',')\[1\]}
                                    		))
                                    		.Aggregate((a, b)=>a.Concat(b))
                                    		.OrderBy(a=>a.ID).Select(a=>string.Format("{0},{1}", a.ID, a.Name)).ToArray());
                                    

                                    Last modified: 8mins after originally posted --

                                    D Offline
                                    D Offline
                                    Daniel Grunwald
                                    wrote on last edited by
                                    #27

                                    My first solution requires loading everything into memory (ReadAllLines/WriteAllLines uses arrays, OrderBy requires having the whole list in memory). Here is another LINQ solution that uses a custom functions for reading/writing files and merging the enumerables:

                                    using System;
                                    using System.IO;
                                    using System.Collections.Generic;
                                    using System.Linq;
                                    static class Program {
                                    public static void Main(string[] args) {
                                    SortedMerge(args.Select(
                                    fileName => FileReadLines(fileName).Select(
                                    line => new { ID = int.Parse(line.Split(',')[0]), Name = line.Split(',')[1]}
                                    )), a=>a.ID)
                                    .Select(a=>string.Format("{0},{1}", a.ID, a.Name))
                                    .WriteToFile("output.txt");
                                    }

                                    static IEnumerable<string> FileReadLines(string fileName)
                                    {
                                    	using (StreamReader reader = new StreamReader(fileName)) {
                                    		string line;
                                    		while ((line = reader.ReadLine()) != null) {
                                    			Console.WriteLine("read " + line + " from " + fileName);
                                    			yield return line;
                                    		}
                                    	}
                                    }
                                    
                                    static void WriteToFile(this IEnumerable<string> lines, string fileName)
                                    {
                                    	using (StreamWriter writer = new StreamWriter(fileName)) {
                                    		foreach (string line in lines) {
                                    			Console.WriteLine("write " + line + " to " + fileName);
                                    			writer.WriteLine(line);
                                    		}
                                    	}
                                    }
                                    
                                    static IEnumerable<T> SortedMerge<T, K>(IEnumerable<IEnumerable<T>> inputs, Func<T, K> keySelector) where K : IComparable<K>
                                    {
                                    	var enumerators = inputs.Select(o=>o.GetEnumerator()).ToList();
                                    	var disposables = enumerators.ToList(); // make copy of enumerators for disposing them later
                                    	try {
                                    		// move all enumerators on the first element
                                    		enumerators.RemoveAll(e=>!e.MoveNext());
                                    		while (enumerators.Count > 0) {
                                    			int smallest = 0;
                                    			for (int i = 1; i < enumerators.Count; i++) {
                                    				// the the element of the current enumerator smaller than the best found so far?
                                    				if (keySelector(enumerators\[i\].Current).CompareTo(keySelector(enumerators\[smallest\].Current)) < 0) {
                                    					smallest = i;
                                    				}
                                    			}
                                    			yield return enumerators\[smallest\].Current;
                                    			if (!enumerators\[smallest\].MoveNext())
                                    				enumerators.RemoveAt(smallest);
                                    		}
                                    	} finally {
                                    		disposables.ForEach(d => d.Dispose());
                                    	}
                                    }
                                    

                                    }

                                    The debug output shows that the program is writing as soon as possible; written lines will be collected by the GC, so this solution can merge multi-GB files without running out of memory. Output:

                                    C:\temp\SharpDevelop Projects\CPQ

                                    R 1 Reply Last reply
                                    0
                                    • R Rama Krishna Vavilala

                                      There are some number of text files. Each file contains a number separated by a comma and a name. e.g. File 1

                                      1,Chris Maunder
                                      20248,Nishant Sivakumar
                                      36803,Marc Clifton
                                      ...

                                      File 2

                                      6556,Christian Graus
                                      7741,John Simmons / outlaw programmer
                                      15383,Rama Krishna Vavilala
                                      ...

                                      All the records in the file are sorted by the id (the number). Note there can be many such files. The purpose is to generate a new file like this:

                                      1,Chris Maunder
                                      6556,Christian Graus
                                      7741,John Simmons / outlaw programmer
                                      15383,Rama Krishna Vavilala
                                      20248,Nishant Sivakumar
                                      36803,Marc Clifton
                                      ...

                                      Of course it can be done in a programming language of your choice. I might be able to hand over a prize for the most innovative and interesting/ solution.;) -- modified at 15:01 Friday 24th August, 2007

                                      Co-Author ASP.NET AJAX in Action

                                      T Offline
                                      T Offline
                                      Tarakeshwar Reddy
                                      wrote on last edited by
                                      #28

                                      Dictionary<int, string> cpians = new Dictionary<int, string>();
                                      List<int> keylist = new List<int>();

                                      string strLine = "";

                                      foreach (System.IO.FileInfo fi in new System.IO.DirectoryInfo(@"C:\quiz\").GetFiles())
                                      {              
                                          using (System.IO.StreamReader sr = fi.OpenText())
                                          {
                                              while (sr.Peek() >= 0)
                                              {
                                                  strLine = sr.ReadLine();
                                                  cpians.Add(Int32.Parse(strLine.Split(',')[0]), strLine.Split(',')[1]);
                                                  keylist.Add(Int32.Parse(strLine.Split(',')[0]));
                                              }
                                          }
                                      }

                                      keylist.Sort();

                                      using (System.IO.FileStream file = new System.IO.FileStream(@"C:\TotalList.txt", System.IO.FileMode.Create, System.IO.FileAccess.Write))
                                      {
                                          using (System.IO.StreamWriter sw = new System.IO.StreamWriter(file))
                                          {
                                              foreach (int key in keylist)
                                              {
                                                  sw.WriteLine(key + "," + cpians[key]);
                                              }
                                          }
                                      }

                                      The items in the file need not be sorted for this solution.

                                      T 1 Reply Last reply
                                      0
                                      • R Rama Krishna Vavilala

                                        There are some number of text files. Each file contains a number separated by a comma and a name. e.g. File 1

                                        1,Chris Maunder
                                        20248,Nishant Sivakumar
                                        36803,Marc Clifton
                                        ...

                                        File 2

                                        6556,Christian Graus
                                        7741,John Simmons / outlaw programmer
                                        15383,Rama Krishna Vavilala
                                        ...

                                        All the records in the file are sorted by the id (the number). Note there can be many such files. The purpose is to generate a new file like this:

                                        1,Chris Maunder
                                        6556,Christian Graus
                                        7741,John Simmons / outlaw programmer
                                        15383,Rama Krishna Vavilala
                                        20248,Nishant Sivakumar
                                        36803,Marc Clifton
                                        ...

                                        Of course it can be done in a programming language of your choice. I might be able to hand over a prize for the most innovative and interesting/ solution.;) -- modified at 15:01 Friday 24th August, 2007

                                        Co-Author ASP.NET AJAX in Action

                                        P Offline
                                        P Offline
                                        PIEBALDconsult
                                        wrote on last edited by
                                        #29

                                        string inline ;

                                        System.Collections.Generic.List list =
                                        new System.Collections.Generic.List() ;

                                        while ( ( inline = System.Console.ReadLine() ) != null )
                                        {
                                        list.Add ( inline.PadLeft ( inline.Length + 16 - inline.IndexOf ( ',' ) , ' ' ) ) ;
                                        }

                                        list.Sort() ;

                                        foreach ( string s in list )
                                        {
                                        System.Console.WriteLine ( s.TrimStart() ) ;
                                        }

                                        1 Reply Last reply
                                        0
                                        • R Rama Krishna Vavilala

                                          There are some number of text files. Each file contains a number separated by a comma and a name. e.g. File 1

                                          1,Chris Maunder
                                          20248,Nishant Sivakumar
                                          36803,Marc Clifton
                                          ...

                                          File 2

                                          6556,Christian Graus
                                          7741,John Simmons / outlaw programmer
                                          15383,Rama Krishna Vavilala
                                          ...

                                          All the records in the file are sorted by the id (the number). Note there can be many such files. The purpose is to generate a new file like this:

                                          1,Chris Maunder
                                          6556,Christian Graus
                                          7741,John Simmons / outlaw programmer
                                          15383,Rama Krishna Vavilala
                                          20248,Nishant Sivakumar
                                          36803,Marc Clifton
                                          ...

                                          Of course it can be done in a programming language of your choice. I might be able to hand over a prize for the most innovative and interesting/ solution.;) -- modified at 15:01 Friday 24th August, 2007

                                          Co-Author ASP.NET AJAX in Action

                                          L Offline
                                          L Offline
                                          lost in transition
                                          wrote on last edited by
                                          #30

                                          I would like to see someone right a solution in QBasic:) or Pascal:rose:. Make you own front end. Will this work.

                                          namespace CP
                                          {
                                          static class Program
                                          {
                                          /// /// The main entry point for the application.
                                          ///
                                          [STAThread]
                                          static void Main()
                                          {
                                          PQuizOTD pqtd = new PQuizOTD();
                                          pqtd.ReadFile(@"C:\TestData1.txt");
                                          pqtd.ReadFile(@"C:\TestData2.txt");
                                          pqtd.ExportToFile();
                                          }
                                          }
                                          class PQuizOTD
                                          {
                                          private DataTable dt;

                                              public PQuizOTD()
                                              {
                                                  dt = new DataTable();
                                                  dt.Columns.AddRange(
                                                              new DataColumn\[\] { 
                                                                  new DataColumn("ID"), 
                                                                  new DataColumn("Name") });
                                              }
                                          
                                              public void ReadFile(string FileName)
                                              {
                                                  string line;
                                                  StreamReader sr = new StreamReader(FileName);
                                                  while (!sr.EndOfStream)
                                                  {
                                                      line = sr.ReadLine();
                                                      int index = line.IndexOf(",");
                                                      DataRow dr = dt.NewRow();
                                                      dr\[0\] = line.Substring(0, index);
                                                      dr\[1\] = line.Substring(index + 1, (line.Length - index - 1));
                                                      dt.Rows.Add(dr);
                                                  }
                                              }
                                          
                                              public void ExportToFile()
                                              {
                                                  dt.DefaultView.Sort = "Name ASC";
                                                  dt.AcceptChanges();
                                                  dt = dt.DefaultView.ToTable();
                                                  StreamWriter sw = new StreamWriter(@"C:\\TestData\_Export.txt");
                                                  for (int i = 0; i < dt.Rows.Count; i++)
                                                  {
                                                      sw.WriteLine(dt.Rows\[i\]\[0\].ToString() + "," + dt.Rows\[i\]\[1\].ToString());
                                                  }
                                                  sw.Close();
                                              }
                                          }
                                          

                                          }


                                          God Bless, Jason
                                          God doesn't believe in atheist but He still loves them.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups