/// <summary> /// Efface la page '*tladata' jusqu'a la fin du fichier /// </summary> /// <param name="MyFile"></param> public static void EraseTlaData(this KsFile MyFile) { var matches = Regex.Matches(MyFile.TextString, @"\*tladata"); if (matches.Count > 0) { MyFile.TextString = MyFile.TextString.Remove(matches[matches.Count - 1].Index); } }
/// <summary> /// Efface toutes les balises '[l][r]' ou '[lr]'. /// </summary> /// <param name="MyFile">Fichier à nettoyer.</param> public static void EraseLR(this KsFile MyFile, bool isRealtaNua) { if (isRealtaNua) { MyFile.TextString = Regex.Replace(MyFile.TextString, "[[]lr[]]", string.Empty); } else { MyFile.TextString = Regex.Replace(MyFile.TextString, "[[]l[]][[]r[]]", string.Empty); } }
/// <summary> /// Compte le nombre de mot de la liste de lignes d'un Fichier. /// </summary> /// <param name="MyFile">Fichier à traiter.</param> /// <returns>Nombre de pages du Fichiers.</returns> public static Int32 CountWord(this KsFile MyFile) { Regex myRegex = new Regex(@"\w"); int nbWords = (from line in MyFile.Lines from word in line.Split(null) where myRegex.IsMatch(word) select word).Count(); return(nbWords); }
/// <summary> /// Remplace les lignes de texte d'un fichier scripté /// par les lignes de texte d'un fichier nettoyé. /// </summary> /// <param name="MyFile">Fichier scripté.</param> /// <param name="TranslatedFile">Fichier nettoyé.</param> public static void ReplaceText(KsFile MyFile, KsFile TranslatedFile) { //On récupère toutes les lignes de texte du fichier nettoyé (logiquement celui traduit) List <string> TranslatedLines = TranslatedFile.Lines.FindAll(tl => !tl.IsTechnical()); //Tant qu'il reste des lignes du fichier scripté à lire //ET des lignes de traduction à recopier for (int line = 0, translatedLine = 0; (line < MyFile.Lines.Count) && (translatedLine < TranslatedLines.Count); line++) { //Si la ligne du fichier scripté est une ligne de texte if (!MyFile.Lines[line].IsTechnical()) { //On la remplace par la ligne traduite MyFile.Lines[line] = TranslatedLines[translatedLine]; //et on passe a la ligne de traduction suivante, prête à être recopier translatedLine++; } } }
/// <summary> /// Efface toutes les lignes 'pageX'. /// </summary> /// <param name="MyFile">Fichier à nettoyer.</param> public static void ErasePage(this KsFile MyFile) { MyFile.TextString = Regex.Replace(MyFile.TextString, @"[*].*\n", string.Empty); }
/// <summary> /// Efface toutes les balises '[r]'. /// </summary> /// <param name="MyFile">Fichier à nettoyer.</param> public static void EraseSlashR(this KsFile MyFile) { MyFile.TextString = Regex.Replace(MyFile.TextString, "[\r]", string.Empty); }
/// <summary> /// Efface une couche de balises de Wrap. /// </summary> /// <param name="MyFile">Fichier à nettoyer.</param> public static void EraseWrap(this KsFile MyFile) { MyFile.TextString = Regex.Replace(MyFile.TextString, "[[]wrap text=\".*?\"[]]", string.Empty); }
/// <summary> /// Efface toutes les lignes de commentaire. /// </summary> /// <param name="MyFile">Fichier à nettoyer.</param> public static void EraseCommentedScript(this KsFile MyFile) { MyFile.TextString = Regex.Replace(MyFile.TextString, "^;@.*\n", string.Empty, RegexOptions.Multiline); }
/// <summary> /// Efface toutes les lignes de doublage. /// </summary> /// <param name="MyFile">Fichier à nettoyer.</param> public static void EraseSay(this KsFile MyFile) { MyFile.TextString = Regex.Replace(MyFile.TextString, @"^@say.*\n", string.Empty); }
/// <summary> /// Remplace les doubles quotes par des guillemets. /// </summary> /// <param name="MyFile">Fichier à nettoyer.</param> public static void ReplaceDoubleQuote(this KsFile MyFile) { MyFile.TextString = Regex.Replace(MyFile.TextString, " \"", " « "); MyFile.TextString = Regex.Replace(MyFile.TextString, "\"", " »"); }
/// <summary> /// Remplace les apostrophes par des simples quotes. /// </summary> /// <param name="MyFile">Fichier à nettoyer.</param> public static void ReplaceApostrophe(this KsFile MyFile) { MyFile.TextString = Regex.Replace(MyFile.TextString, "‘", "'"); }
/// <summary> /// Efface toutes les lignes de script. /// </summary> /// <param name="MyFile">Fichier à nettoyer.</param> public static void EraseScript(this KsFile MyFile) { MyFile.EraseTlaData(); MyFile.TextString = Regex.Replace(MyFile.TextString, @"@.*\n", string.Empty); }
/// <summary> /// Compte le nombre de page d'un Fichier. /// </summary> /// <param name="MyFile">Fichier à traiter.</param> /// <returns>Nombre de pages du Fichier.</returns> public static int CountPage(this KsFile MyFile) { MatchCollection MyMatchCollection = Regex.Matches(MyFile.TextString, "[*]page"); return(MyMatchCollection.Count); }
/// <summary> /// Efface les balises '[lineX]'. /// </summary> /// <param name="MyFile">Fichier à nettoyer.</param> public static void EraseLineX(this KsFile MyFile) { MyFile.TextString = Regex.Replace(MyFile.TextString, @"[[]line.*[]]", string.Empty); }