//wyciąga nazwę db z kwerendy wpisanej przez użytkownika private string extractTableName() { string tableName = ""; TextManipulator tm = new TextManipulator(); //znajduję położenie wyrazu kluczowego "from" w kwerendzie List <int> keyWordFromPosition = tm.getSubstringStartPositions(sqlQuery, "from"); try { //wywala bład gdy kwerenda jest na tyle bezsensowna, że nie potrafi wyłuskać sensownego wyrazu, który mógłby być nazwą bazy danych string textAfterFrom = sqlQuery.Substring(keyWordFromPosition[0] + 5); //dodaję długość wyrazu from i jedną spację int firstSpacePosition = textAfterFrom.IndexOf(" "); if (firstSpacePosition == -1) //brak spacji { tableName = textAfterFrom; } else { tableName = textAfterFrom.Substring(0, firstSpacePosition); } } catch (System.ArgumentOutOfRangeException e) { MyMessageBox.display("Błąd w kwerendzie", MessageBoxType.Error); tableName = ""; } return(restoreCase(tableName)); //powracam do oryginalnej pisowni, bo ma to znaczenie gdy collation bazy jest ustawiony na case-sensitive }
//z pliku tekstowego wyciąga połączenie do serwera na podstawie znacznika "delimiter" private string readStringFromFile(string delimiter) { TextManipulator tm = new TextManipulator(); List <int> indexes = tm.getSubstringStartPositions(configFileText, delimiter); int startIndex = indexes[0] + delimiter.Length + 1; //kompensuję na > po znaczniku int connStringLength = indexes[1] - startIndex - 2; //kompensuję na </ przed znacznikiem return(configFileText.Substring(startIndex, connStringLength)); }
public bool validateConfigFile() { string currentPath = Application.StartupPath; //katalog z którego uruchamiany jest program if (ProgramSettings.configFilePath.Equals("")) //nie zdefiniowano alternatywnej ścieżki dla pliku konfiguracyjnego { configFilePath = currentPath; //plik konfiguracyjny jest w tym samym katalogu co program } else { configFilePath = ProgramSettings.configFilePath; } FileManipulator fm = new FileManipulator(); string configFile = configFilePath + @"\" + ProgramSettings.configFileName; configFileText = fm.readFile(configFile); if (!configFileText.Equals("")) //plik konfiguracyjny istnieje i nie jest pusty { TextManipulator tm = new TextManipulator(); List <int> indexes = tm.getSubstringStartPositions(configFileText, ProgramSettings.connectionStringDelimiter); //jeżeli w pliku jest błąd i jest za dużo lub za mało znaczników if (indexes.Count != 2) { MyMessageBox.display("błąd pliku konfiguracyjnego " + configFile + " dla znacznika " + ProgramSettings.connectionStringDelimiter, MessageBoxType.Error); configFileValidated = false; } } else { configFileValidated = false; //plik jest pusty lub go nie ma } configFileValidationWasDone = true; return(configFileValidated); //domyślnie jest true }