this is how my data in txt file:

1--2--3--
3-4-4-5--
-7-3-4---
7--5--3-6
--7---4--
3-2--4-5-
------3--
2-6--7---
4---4--3-

is my c# code to do file reading with the display too:

public void populate_grid_by_file()
        {
            int counter = 0;
            string line;

            // Read the file and display it line by line.
            System.IO.StreamReader file =
               new System.IO.StreamReader("data.txt");
            for (int i = 0; i < Sodoku_Gri.GetLength(0); i++)
            {
                while ((line = file.ReadLine()) != null)
                {
                    for (int j = 0; j < Sodoku_Gri.GetLength(1); j++)
                    {
                        Console.Write(line[j].ToString());

                    }
                    Console.WriteLine(line);
                    counter++;
                }
            }
            file.Close();
            // Suspend the screen.
            Console.ReadLine();
        }

but when i display my array with the file reading above it is like:

1--2--3--1--2--3--
3-4-4-5--3-4-4-5--
-7-3-4----7-3-4---
7--5--3-67--5--3-6
--7---4----7---4--
3-2--4-5-3-2--4-5-
------3--------3--
2-6--7---2-6--7---
4---4--3-4---4--3-

cnt understand why duplication! help!

You seem to have an extra console.writeline statement that's printing 'line' an extra time. Also you're printing to the console for every increment of j. If 'Sodoku_Gri.GetLength(1)' equals 2 then each line of the file will print 2 times. Can't see a reason for that loop to be in there. If you don't need it you could replace lines 13-19 with: Console.Write(line[j].ToString() + \n); . You might want to consider copying that file right into an array(StringArray[]=System.IO.File.ReadAllLines(path)), 1 line per element, then it's a simple matter of looping through the array to print each line.

Edited 3 Years Ago by tinstaafl

This article has been dead for over six months. Start a new discussion instead.