locked
Converting Text File Contains Numbers to an Array of Numbers RRS feed

  • Question

  • User-1392235324 posted

    I have numbers in text file separated by tab characters ; every group of numbers on different line .

    I want to get every group of a line on a one integer array or as a list . How can I do it ?

    5    7                                                                                                                                                                                                                                                                                        
    5    7    20    25    27    29    33    34    39    44    46    48    61    62    74    82    88    93    99    101    103    105    107    115    117    119    123    124    129    134    141    151    152    157    158    162    167    171    176    177    179    182    185    186    187    188    189    195    203    207    210    212    213    214    215    218    220    221    223    227    242    243    252    254    255    257    260    274    281    283    284    286
    1    6    10    14    16    18    22    28    30    31    35    42    43    58    70    76    80    84    91    94    100    104    126    134    135    147    149    152    169    175    176                                                                                                                                                                    
    3    5    7    14    19    26    32    40    50    54    56    66    67    86    89    93    99    100    102    104    105    109    111    120                                                                                                                                                                                                
    3    11    18    20    32    36    55    73    83    90    105    113    121    127    135    150    157    160    165                                                                                                                                                                                                                    

    The problem is every line has different number of numbers !

    The following code is for a fixed size array :

    while (!inFile.EndOfStream)
    {
        inputLine = inFile.ReadLine();
        results = inputLine.Split(delimiter1, StringSplitOptions.None);
        Console.WriteLine("{0}  {1}    {2}", results[0], results[1], results[2]);
    }

    Tuesday, December 29, 2015 8:16 AM

Answers

  • User-1392235324 posted

    I solved this problem but it isn't as good as I want !

                string path = @"D:\k\code\qm.txt";
    
                // This text is always added, making the file longer over time
                // if it is not deleted.
                string appendText = ""; // Environment.NewLine;
                File.AppendAllText(path, appendText);
    
                // Open the file to read from.
                string[] readText = File.ReadAllLines(path);
                foreach (string s in readText)
                {
                    int j;
                    //Read line, and split it by whitespace into an array of strings
                    string[] tokens = s.Split();
    
                    int[] a = new int[tokens.Length];
                    for (int i = 0; i < tokens.Length; i++)
                    {
                        int value;
                        if (int.TryParse(tokens[i], out value))
                        {
                            a[i] = int.Parse(tokens[i]);
                        }
                        if (a[i] != 0)
                        {
                            j = i + 1;
                            Response.Write("a[" + j + "] = " + a[i] + ", ");
                        }
                    }
                    Response.Write("<br />");
                }
    

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Tuesday, December 29, 2015 9:43 AM