Exemplo n.º 1
0
            public System.Collections.Generic.Dictionary <row_enum, table_row> FilterDistinct(T[] ur_col_list)
            {
                var ret_table    = new System.Collections.Generic.Dictionary <row_enum, table_row>();
                var track_unique = new System.Collections.Generic.Dictionary <string, row_enum>();

                foreach (var row_entry in this)
                {
                    var key_row = new row_enum();
                    foreach (var col_entry in ur_col_list)
                    {
                        key_row[col_entry] = row_entry[col_entry];
                    }

                    var str_keyrow = key_row.Format_Table(false);
                    if (track_unique.ContainsKey(str_keyrow) == false)
                    {
                        track_unique.Add(str_keyrow, key_row);
                        ret_table.Add(key_row, new table_row());
                    }
                    else
                    {
                        key_row = track_unique[str_keyrow];
                    }

                    ret_table[key_row].Add(row_entry);
                }

                return(ret_table);
            }
Exemplo n.º 2
0
            public row_enum add_row()
            {
                var ret_row = new row_enum();

                this.Add(ret_row);
                return(ret_row);
            }
Exemplo n.º 3
0
            public row_enum FirstRow()
            {
                row_enum ret_row = new row_enum();

                foreach (var row_entry in this)
                {
                    ret_row = row_entry;
                    break;
                }

                return(ret_row);
            }
Exemplo n.º 4
0
            public row_enum FirstRow(T ur_col, string ur_text)
            {
                var ret_row = new row_enum();

                foreach (var row_entry in this)
                {
                    if (string.Equals(row_entry[ur_col], ur_text))
                    {
                        ret_row = row_entry;
                        break;
                    }
                }

                return(ret_row);
            }
Exemplo n.º 5
0
            public row_enum FirstRow(T ur_col, string ur_text, System.Text.StringBuilder ur_notice_message)
            {
                var ret_row   = new row_enum();
                var found_row = false;

                foreach (var row_entry in this)
                {
                    if (string.Equals(row_entry[ur_col], ur_text))
                    {
                        ret_row   = row_entry;
                        found_row = true;
                        break;
                    }
                }

                if (found_row == false)
                {
                    ur_notice_message.AppendLine($"Could not find {ur_text} in {ur_col.pname}.");
                }

                return(ret_row);
            }
Exemplo n.º 6
0
            public void Persist_Read(string ur_persist_path, bool ur_flag_overwrite_rows = true)
            {
                if (ur_flag_overwrite_rows)
                {
                    this.Clear();
                }

                if (System.IO.File.Exists(ur_persist_path))
                {
                    using (var stmIN_FILE = new System.IO.StreamReader(ur_persist_path, new System.Text.UTF8Encoding(encoderShouldEmitUTF8Identifier: false, throwOnInvalidBytes: true)))
                    {
                        var header_processed = false;
                        var found_col_list   = new System.Collections.Generic.List <T>();
                        var cur_line         = "";
                        while (stmIN_FILE.EndOfStream == false)
                        {
                            cur_line += stmIN_FILE.ReadLine();
                            var balanced_quotes = true;
                            for (int CHRSEQ = 0; CHRSEQ < cur_line.Length; CHRSEQ += 1)
                            {
                                if (cur_line[CHRSEQ] == '\"')
                                {
                                    balanced_quotes = !balanced_quotes;
                                }
                            }

                            if (balanced_quotes == false)
                            {
                                cur_line += "\n";
                            }
                            else
                            {
                                var new_row = new row_enum();
                                if (cur_line.StartsWith("\n"))
                                {
                                    cur_line = cur_line.Substring("\n".Length);
                                }

                                if (header_processed == false)
                                {
                                    header_processed = true;
                                    var any_field_found = false;
                                    foreach (var entry in bitbase.CSV_Split(cur_line, '\t'))
                                    {
                                        T found_key = null;
                                        foreach (var cur_key in this.RefKeys())
                                        {
                                            if (cur_key.pname == entry)
                                            {
                                                found_key       = cur_key;
                                                any_field_found = true;
                                            }
                                        }

                                        found_col_list.Add(found_key);
                                    }

                                    if (any_field_found == false)
                                    {
                                        break;
                                    }
                                }
                                else if (cur_line.Length > 0)
                                {
                                    var found_field_list = bitbase.CSV_Split(cur_line, '\t');
                                    var intEND_BEFORE    = found_field_list.Count;
                                    if (found_col_list.Count < intEND_BEFORE)
                                    {
                                        intEND_BEFORE = found_col_list.Count;
                                    }

                                    for (var COLSEQ = 0; COLSEQ < intEND_BEFORE; COLSEQ++)
                                    {
                                        var key_entry = found_col_list[COLSEQ];
                                        if (key_entry != null)
                                        {
                                            new_row[key_entry] = found_field_list[COLSEQ];
                                        }
                                    }

                                    this.Add(new_row);
                                }

                                cur_line = "";
                            }
                        }
                    }
                }
            }
Exemplo n.º 7
0
 public DateEnum(row_enum ur_parent_row)
 {
     this.parent_row = ur_parent_row;
 }
Exemplo n.º 8
0
 public DecimalEnum(row_enum ur_parent_row)
 {
     this.parent_row = ur_parent_row;
 }