Mono.Csv.CsvFileReader.ReadRow C# (CSharp) Méthode

ReadRow() public méthode

Reads a row of columns from the current CSV file. Returns false if no more data could be read because the end of the file was reached.
public ReadRow ( List columns ) : bool
columns List Collection to hold the columns read
Résultat bool
        public bool ReadRow(List<string> columns)
        {
            // Verify required argument
            if (columns == null)
                throw new ArgumentNullException ("columns");

            ReadNextLine:
            // Read next line from the file
            CurrLine = Reader.ReadLine ();
            CurrPos = 0;
            // Test for end of file
            if (CurrLine == null)
                return false;
            // Test for empty line
            if (CurrLine.Length == 0) {
                switch (EmptyLineBehavior) {
                case EmptyLineBehavior.NoColumns:
                    columns.Clear ();
                    return true;
                case EmptyLineBehavior.Ignore:
                    goto ReadNextLine;
                case EmptyLineBehavior.EndOfFile:
                    return false;
                }
            }

            // Parse line
            string column;
            int numColumns = 0;
            while (true) {
                // Read next column
                if (CurrPos < CurrLine.Length && CurrLine [CurrPos] == Quote)
                    column = ReadQuotedColumn ();
                else
                    column = ReadUnquotedColumn ();
                // Add column to list
                if (numColumns < columns.Count)
                    columns [numColumns] = column;
                else
                    columns.Add (column);
                numColumns++;
                // Break if we reached the end of the line
                if (CurrLine == null || CurrPos == CurrLine.Length)
                    break;
                // Otherwise skip delimiter
                Debug.Assert (CurrLine [CurrPos] == Delimiter);
                CurrPos++;
            }
            // Remove any unused columns from collection
            if (numColumns < columns.Count)
                columns.RemoveRange (numColumns, columns.Count - numColumns);
            // Indicate success
            return true;
        }

Usage Example

    // Use this for initialization
    void Start()
    {
        if (news == null)
        {
            // load once
            TV04.news = new List <News>();
            TextAsset csv = Resources.Load(newsFile) as TextAsset;
            if (csv == null)
            {
                Debug.Assert(false);
                return;
            }

            using (var streamReader = new StreamReader(new MemoryStream(csv.bytes)))
            {
                using (var reader = new Mono.Csv.CsvFileReader(streamReader))
                {
                    // 0: id (N1)
                    // 1: article
                    List <string> row = new List <string>();
                    reader.ReadRow(row);                     // first row is header

                    // keep read content
                    while (reader.ReadRow(row))
                    {
                        var news = new News();
                        news.article = row[1];

                        TV04.news.Add(news);
                    }
                }
            }

            Debug.Log("news loaded");
        }

        var currentNews = news[VoteManager.currentVote.id - 1];

        transform.Find("Article").GetComponent <Text>().text = currentNews.article;
    }
All Usage Examples Of Mono.Csv.CsvFileReader::ReadRow