Beispiel #1
0
        public static bool FillOptions(CParametreLectureCSV parametre, string strFichierExemple)
        {
            CFormOptionsCSV1 form = new CFormOptionsCSV1();

            form.m_parametre         = parametre;
            form.m_strFichierExemple = strFichierExemple;

            DialogResult result = DialogResult.Retry;

            while (result == DialogResult.Retry)
            {
                result = form.ShowDialog();
                if (result == DialogResult.OK)
                {
                    result = CFormOptionsCSV2.FillOptions(parametre, strFichierExemple);
                }
            }
            form.Dispose();
            return(result == DialogResult.OK);
        }
Beispiel #2
0
        public static DialogResult FillOptions(CParametreLectureCSV parametre, string strFichierExemple)
        {
            CFormOptionsCSV2 form = new CFormOptionsCSV2();

            form.m_parametre = parametre;
            string strTexteExemple = "";

            if (strFichierExemple != "")
            {
                StreamReader reader = null;
                try
                {
                    reader = new StreamReader(strFichierExemple, new CEncoding(parametre.Encodage).GetEncoding());
                    int nLigne = 0;
                    //string strLigne = reader.ReadLine();
                    string strLigne = parametre.GetCSVLine(reader);
                    form.m_tableExemple = new DataTable();
                    form.m_nomsCol      = new Dictionary <int, string>();
                    //CREATION DES COLONNES
                    if (parametre.NomChampsSurPremiereLigne)
                    {
                        string[] strChamps = strLigne.Split(parametre.Separateur);
                        int      nChamp    = 0;
                        foreach (string strChamp in strChamps)
                        {
                            string strVal = strChamp;
                            if (strVal.Trim() == "")
                            {
                                strVal = form.GetNomColonneDefaut(nChamp);
                            }
                            nChamp++;
                            int    nCpt        = 0;
                            string strChampTmp = strVal;
                            while (form.m_tableExemple.Columns.Contains(strChampTmp))
                            {
                                strChampTmp = strChamp + nCpt.ToString();
                                nCpt++;
                            }
                            form.m_tableExemple.Columns.Add(strChampTmp, typeof(string));
                            form.m_nomsCol.Add(nChamp, strChampTmp);
                        }
                        //strLigne = reader.ReadLine();
                        strLigne = parametre.GetCSVLine(reader);
                    }
                    else
                    {
                        string[] strCols = parametre.GetDatas(strLigne);
                        for (int nCol = 0; nCol < strCols.Length; nCol++)
                        {
                            string strChamp = "";
                            if (parametre.Mappage != null &&
                                parametre.Mappage.StringsA != null &&
                                parametre.Mappage.StringsA.Count >= strCols.Length)
                            {
                                strChamp = parametre.Mappage.StringsA[nCol];
                            }
                            else
                            {
                                form.GetNomColonneDefaut(nCol);
                            }

                            int    nCpt        = 0;
                            string strChampTmp = strChamp;
                            while (form.m_tableExemple.Columns.Contains(strChampTmp))
                            {
                                strChampTmp = strChamp + nCpt.ToString();
                                nCpt++;
                            }
                            form.m_tableExemple.Columns.Add(strChampTmp, typeof(string));
                            form.m_nomsCol.Add(nCol, strChampTmp);
                        }
                    }

                    //LECTURE DU FICHIER
                    while (strLigne != null && nLigne++ < 100)
                    {
                        string[] strDatas = parametre.GetDatas(strLigne);
                        int      nCol     = 0;
                        DataRow  row      = form.m_tableExemple.NewRow();
                        foreach (string strData in strDatas)
                        {
                            if (nCol < form.m_tableExemple.Columns.Count)
                            {
                                row[nCol] = strData;
                            }
                            nCol++;
                        }
                        form.m_tableExemple.Rows.Add(row);
                        //strLigne = reader.ReadLine();
                        strLigne = parametre.GetCSVLine(reader);
                    }


                    //CREATION DU LISTVIEW
                    form.m_wndListeExemple.Columns.Clear();
                    foreach (DataColumn col in form.m_tableExemple.Columns)
                    {
                        ColumnHeader header = new ColumnHeader();
                        header.Text = col.ColumnName;
                        form.m_wndListeExemple.Columns.Add(header);
                    }
                    foreach (DataRow row in form.m_tableExemple.Rows)
                    {
                        ListViewItem item = new ListViewItem(row[0].ToString());
                        for (int n = 1; n < form.m_tableExemple.Columns.Count; n++)
                        {
                            item.SubItems.Add(row[n].ToString());
                        }
                        form.m_wndListeExemple.Items.Add(item);
                    }


                    //CREATION DES COLONNES CSV DANS FICHIER PARAMETRAGE
                    for (int nCol = 0; nCol < form.m_tableExemple.Columns.Count; nCol++)
                    {
                        CParametreLectureCSV.CColonneCSV col = form.m_parametre.GetColonne(nCol);
                        if (col == null || col.Nom != form.m_tableExemple.Columns[nCol].ColumnName)
                        {
                            col          = new CParametreLectureCSV.CColonneCSV();
                            col.Nom      = form.m_tableExemple.Columns[nCol].ColumnName;
                            col.DataType = typeof(string);
                            form.m_parametre.SetColonne(nCol, col);
                        }
                    }


                    reader.Close();

                    form.m_strTexteExemple = strTexteExemple;
                    DialogResult result = form.ShowDialog();
                    form.Dispose();
                    return(result);
                }
                catch
                {
                }
                finally
                {
                    try
                    {
                        reader.Close();
                    }

                    catch
                    {
                    }
                }
            }
            return(DialogResult.Abort);
        }