Пример #1
0
        public void SplitInLines()
        {
            //Here the Text is first split up in lines where ever the programmer put a @, But if the text is stil longer then the MaxChar that fits in the width of the textbox
            // It is split down even further

            Lines    = FullText.Split((char)'@').ToList();
            AllLines = new List <string> {
            };

            foreach (string _Line in Lines)
            {
                string Templine = "";
                Templine = _Line;

                if (_Line.Count() > CharPerLine)
                {
                    int _AmountOfLines = _Line.Count() / CharPerLine;
                    int x            = 0;
                    int CurrentIndex = CharPerLine;
                    while (_AmountOfLines > 0)
                    {
                        if (_Line.ElementAtOrDefault(CurrentIndex) == ' ')
                        {
                            StringBuilder sb = new StringBuilder(Templine);
                            sb[CurrentIndex] = '@';
                            Templine         = sb.ToString();
                            _AmountOfLines  -= 1;

                            CurrentIndex += CharPerLine;
                        }
                        else
                        {
                            x++;
                            CurrentIndex -= 1;
                        }
                    }
                    AllLines.AddRange(Templine.Split((char)'@').ToList());
                }
                else
                {
                    AllLines.Add(_Line);
                }
            }

            foreach (string y in AllLines)
            {
                Console.WriteLine(y);
            }


            FullText = FullText.Replace("@", System.Environment.NewLine);
        }
Пример #2
0
            public RoomRecord(string rawText)
            {
                FullText = rawText.Trim();

                var parts = FullText.Split('-');

                EncryptedName = string.Join('-', parts.Take(parts.Length - 1));

                var suffix      = parts.Last();
                var suffixParts = suffix.Split('[');

                RawSectorId = suffixParts[0];
                Checksum    = suffixParts[1].TrimEnd(']');
                SectorId    = int.Parse(RawSectorId);

                var letters      = EncryptedName.Replace("-", "");
                var letterCounts = new Dictionary <char, int>();

                foreach (var l in letters)
                {
                    if (!letterCounts.ContainsKey(l))
                    {
                        letterCounts[l] = 0;
                    }
                    letterCounts[l] = 1 + letterCounts[l];
                }

                RealChecksum = new string(
                    letterCounts
                    .OrderByDescending(x => x.Value)
                    .ThenBy(x => x.Key)
                    .Select(x => x.Key)
                    .ToArray()
                    )
                               .Substring(0, 5);
                IsReal = RealChecksum == Checksum;

                RealName = IsReal ? Decrypt() : null;
            }
Пример #3
0
        public DataTable ReadCSVFile(string filePath)
        {
            DataTable dtCsv = new DataTable();
            string    FullText;

            using (StreamReader sr = new StreamReader(filePath))
            {
                FullText = sr.ReadToEnd().ToString(); //read full file text
                string[] rows = FullText.Split('\n'); //split full file text into rows
                {
                    for (int i = 0; i < rows.Count() - 1; i++)
                    {
                        string[] rowValues = rows[i].Split(','); //split each row with comma to get individual value
                        {
                            if (i == 0)
                            {
                                for (int j = 0; j < rowValues.Count(); j++)
                                {
                                    dtCsv.Columns.Add(rowValues[j]); //add headers
                                }
                            }
                            else
                            {
                                DataRow dr     = dtCsv.NewRow();
                                var     length = rowValues.Count() > dtCsv.Columns.Count ? dtCsv.Columns.Count : rowValues.Count();

                                for (int k = 0; k < length; k++)
                                {
                                    dr[k] = rowValues[k].ToString();
                                }
                                dtCsv.Rows.Add(dr); //add other rows
                            }
                        }
                    }
                }
            }
            return(dtCsv);
        }
Пример #4
0
        /// <summary>
        /// The MySqlCommand initialized for this query, including any and all parameters.
        /// </summary>
        public DBHelperCommandArgs ModelQueryCommand()
        {
            List <string>         lstWhereTerms = new List <string>();
            List <MySqlParameter> lstParams     = new List <MySqlParameter>();

            // Add each of the terms
            string[] rgTerms = FullText.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
            for (int i = 0; i < rgTerms.Length; i++)
            {
                AddQueryTerm(rgTerms[i], String.Format(CultureInfo.InvariantCulture, "FullText{0}", i), "Concat(model, ' ', manufacturers.manufacturer, ' ', typename, ' ', family, ' ', modelname, ' ', categoryclass.CatClass)", lstWhereTerms, lstParams);
            }

            string szPreferred = "0";

            if (PreferModelNameMatch)
            {
                string szModelMatch = String.Format(CultureInfo.InvariantCulture, "%{0}%", ConvertWildcards(FullText));
                szPreferred = "IF(model LIKE ?modelMatch, 1, 0)";
                lstParams.Add(new MySqlParameter("modelMatch", szModelMatch));
            }

            AddQueryTerm(CatClass, "qCatClass", "catclass", lstWhereTerms, lstParams);
            AddQueryTerm(rNormalizeModel.Replace(Model, string.Empty), "qModel", "REPLACE(REPLACE(model, ' ', ''), '-', '')", lstWhereTerms, lstParams);
            if (ModelName.StartsWith(ICAOPrefix, StringComparison.CurrentCultureIgnoreCase))
            {
                AddQueryTerm(ModelName.Substring(ICAOPrefix.Length), "qFamilyName", "family", lstWhereTerms, lstParams);
            }
            else
            {
                AddQueryTerm(ModelName, "qModelName", "modelname", lstWhereTerms, lstParams);
            }
            AddQueryTerm(ManufacturerName, "qMan", "manufacturer", lstWhereTerms, lstParams);
            AddQueryTerm(TypeName, "qType", "typename", lstWhereTerms, lstParams);

            if (ManufacturerID != Manufacturer.UnsavedID)
            {
                lstWhereTerms.Add(" (models.idManufacturer = ?manID) ");
                lstParams.Add(new MySqlParameter("manID", ManufacturerID));
            }

            string szHavingPredicate = String.Join(" AND ", lstWhereTerms.ToArray());

            const string szQTemplate        = @"SELECT
models.*,
manufacturers.manufacturer,
categoryclass.CatClass as 'Category/Class',
{0} AS AircraftIDs,
{1} AS preferred
FROM models
  INNER JOIN manufacturers on manufacturers.idManufacturer = models.idmanufacturer
  INNER JOIN categoryclass on categoryclass.idCatClass = models.idcategoryclass
{2}
{3}
{4}
{5}";
            const string szQSamplesTemplate = @"LEFT OUTER JOIN (SELECT ac.idmodel, group_concat(DISTINCT img.imageKey separator ',') AS AircraftIDs
                    FROM Images img
                    INNER JOIN aircraft ac ON CAST(img.imageKey AS Unsigned)=ac.idaircraft
                    WHERE img.VirtPathID=1
                    GROUP BY ac.idmodel) Samples
       ON models.idmodel=Samples.idmodel";

            string szQ = String.Format(CultureInfo.InvariantCulture, szQTemplate,
                                       IncludeSampleImages ? "Samples.AircraftIDs" : "NULL",
                                       szPreferred,
                                       IncludeSampleImages ? szQSamplesTemplate : string.Empty,
                                       szHavingPredicate.Length == 0 ? string.Empty : String.Format(CultureInfo.InvariantCulture, " WHERE {0} ", szHavingPredicate),
                                       SortOrderFromSortModeAndDirection(SortMode, SortDir),
                                       (Limit > 0 && Skip >= 0) ? String.Format(CultureInfo.InvariantCulture, " LIMIT {0},{1} ", Skip, Limit) : string.Empty);

            DBHelperCommandArgs args = new DBHelperCommandArgs(szQ, lstParams);

            return(args);
        }