void OnGUI() { ScriptableObject target = this; SerializedObject so = new SerializedObject(target); SerializedProperty stringsProperty = so.FindProperty("NameFiles"); EditorGUILayout.PropertyField(stringsProperty, true); // True means show children so.ApplyModifiedProperties(); // Remember to apply modified properties if (GUILayout.Button("Save Name Files")) { RegisterResolver.Register(); var nameFilesDirectory = ActionGameManager.GameDataDirectory.CreateSubdirectory("NameFile"); foreach (var nameFile in NameFiles) { var entry = new NameFile { Name = nameFile.name, Names = nameFile.text.Split('\n') }; File.WriteAllBytes(Path.Combine(nameFilesDirectory.FullName, $"{entry.ID.ToString()}.msgpack"), MessagePackSerializer.Serialize((DatabaseEntry)entry)); } } nameFile = (TextAsset)EditorGUILayout.ObjectField("Name File", nameFile, typeof(TextAsset), false); minWordLength = EditorGUILayout.IntField("Minimum File Word Length", minWordLength); NameGeneratorMinLength = EditorGUILayout.IntField("Generated Minimum Word Length", NameGeneratorMinLength); NameGeneratorMaxLength = EditorGUILayout.IntField("Generated Maximum Word Length", NameGeneratorMaxLength); NameGeneratorOrder = EditorGUILayout.IntField("Generator Order", NameGeneratorOrder); _stripNumberTokens = GUILayout.Toggle(_stripNumberTokens, "Strip Number Tokens"); if (GUILayout.Button("Clean Name File")) { var lines = nameFile.text.Split('\n'); using StreamWriter outputFile = new StreamWriter(Path.Combine(Application.dataPath, nameFile.name + ".csv")); var names = new HashSet <string>(); foreach (var line in lines) { var tokens = line.Split(',', ' '); foreach (var t in tokens) { if (!HasNonASCIIChars(t)) { var s = new string(t.Where(c => char.IsLetter(c) || c == '-' || c == '`' || c == '\'').ToArray()).Trim().Trim('`', '-'); if (s.Length >= minWordLength && !names.Contains(s)) { names.Add(s); outputFile.WriteLine(s); } } } } } if (GUILayout.Button("Process Name File") && nameFile != null) { var names = new HashSet <string>(); var lines = nameFile.text.Split('\n'); foreach (var line in lines) { foreach (var word in line.ToUpperInvariant().Split(' ', ',', '.', '"')) { if (word.Length >= minWordLength && !names.Contains(word)) { names.Add(word); } } } Debug.Log($"Found {lines.Length} lines, with {names.Count} unique names!"); var random = new Random(1337); _nameGenerator = new MarkovNameGenerator(ref random, names, NameGeneratorOrder, NameGeneratorMinLength, NameGeneratorMaxLength); } if (_nameGenerator != null) { if (GUILayout.Button("Generate Name")) { Debug.Log(_nameGenerator.NextName); } } }
public void SaveHtmlPage() { DirectoryInfo dirInfo = new DirectoryInfo(Path); if (!dirInfo.Exists) { Logger.Log("Path not found"); throw new Exception("Path not found"); } if (Path[Path.Length - 1] != '\\') { Path = Path + '\\'; } if (Url == null) { Logger.Log("Url NullReferenceException"); throw new Exception("Url NullReferenceException"); } else { try { using (Stream stream = client.OpenRead(Url)) { } } catch (Exception ex) { Logger.Log(ex.Message); throw; } } if (NameFile == null) { int a = Url.Length; string Name = Url.Substring(Url.IndexOf(" / /") + 2); if (Name.IndexOf(" /") > 0) { Name = Name.Substring(0, Name.IndexOf("/")); Name = Name.Substring(0, Name.LastIndexOf(".")); } else { Name = Name.Substring(0, Name.LastIndexOf(".")); } if (Name.IndexOf('.') > 0) { Name = Name.Substring(Name.IndexOf(".")); } Name = Name.Replace('.', ' '); if (Name.IndexOf('\\') > 0 || Name.IndexOf("/") > 0 || Name.IndexOf(":") > 0 || Name.IndexOf("*") > 0 || Name.IndexOf("\"") > 0 || Name.IndexOf("<") > 0 || Name.IndexOf(">") > 0 || Name.IndexOf("|") > 0) { Logger.Log("The filename should not contain these characters \\/:*?\"<>|"); throw new Exception("The filename should not contain these characters \\/:*?\"<>|"); } Path = Path + Name + ".html"; } else { if (NameFile.IndexOf('\\') > 0 || NameFile.IndexOf("/") > 0 || NameFile.IndexOf(":") > 0 || NameFile.IndexOf("*") > 0 || NameFile.IndexOf("\"") > 0 || NameFile.IndexOf("<") > 0 || NameFile.IndexOf(">") > 0 || NameFile.IndexOf("|") > 0) { Logger.Log("The filename should not contain these characters \\/:*?\"<>|"); throw new Exception($"The filename should not contain these characters \\/:*?\"<>|"); } Path = Path + NameFile + ".html"; } client.DownloadFile(Url, Path); }
protected static void Massa(int index, string NameOfConfiguration) //Так как в основном код "поставит ьконфиг" и "удалить конфиг" совершенно одинаковый, //было решено написать отдельную функцию, к которой будут обращаться //другие две по индексу. { string FolderOfConfigurathion = ConfigurationsFolder + "\\" + NameOfConfiguration; //Построение имени папки конфигурации if (Directory.Exists(FolderOfConfigurathion)) { string[] FilesConfiguraton = Directory.GetFiles(FolderOfConfigurathion); //Получение файлов в папке конфигурации string DesktopPath = File.ReadAllText(DesktopPathFile); //Получение рабочего стола foreach (string NameFile in FilesConfiguraton) { //Неясно как будет лучше: или чтобы оператор свитч постоянно работал при новом витке цикла, //или два цикла на один оператор свитча switch (index) { case 1: //Для отправки ярлыков на рабочий стол { if (NameFile.Substring(NameFile.LastIndexOf('.')) == ".lnk") { try { File.Copy(NameFile, DesktopPath + "\\" + NameFile.Substring(NameFile.LastIndexOf('\\') + 1)); } catch { File.AppendAllText(ErrorFile, "Ошибка добавления файла на рабочий стол"); } } } break; case 2: //Для удаления файлов с рабочего стола { File.Delete(DesktopPath + "\\" + NameFile.Substring(NameFile.LastIndexOf('\\') + 1)); } break; } } } else { MessageBox.Show("Папки конфигурации не существует"); } }