Commit 253da578 authored by Yumekaki's avatar Yumekaki

replace text

parent 1b0a5bfc
...@@ -863,20 +863,101 @@ public Card[] ReadCards(string set, bool repalceOld) ...@@ -863,20 +863,101 @@ public Card[] ReadCards(string set, bool repalceOld)
} }
#endregion #endregion
#region test public void testPendulum(string desc)
public void testPendulum(string desc){ {
if(string.IsNullOrEmpty(desc)){ List<string> table = GetMPText(desc);
MessageBox.Show("desc is null", "info"); if (table == null && table.Count != 2)
}else{ {
string ptext=GetDesc(desc, cfg.regx_pendulum); MessageBox.Show("desc is null", "info");
MessageBox.Show(reItalic(ptext), "pendulum"); }
string text = GetDesc(desc, cfg.regx_monster); else
if (string.IsNullOrEmpty(text)) {
text = desc; MessageBox.Show(reItalic(table[0]), "Monster Effect");
MessageBox.Show(reItalic(text), "effect"); MessageBox.Show(reItalic(table[1]), "Pendulum Effect");
} }
}
public List<string> GetMPText(string desc)
{
if (string.IsNullOrEmpty(desc))
{
MessageBox.Show("desc is null", "info");
return null;
}
else
{
string ptext = null;
string text = null;
if (Regex.IsMatch(desc, "【灵摆】"))
{
ptext = GetDesc(desc, @"\A←[ ]*\d*[ ]*【灵摆】[ ]*\d*[ ]*→[\r\n]*([\S\s]*?)[\r\n]*【");
text = GetDesc(desc, @"【[^【】\r\n]{3,}】[\r\n]*([\S\s]*?)\z");
}
else
{
ptext = GetDesc(desc, @"\A[\S\s]*?[\r\n]*【灵摆效果】[\r\n]*([\S\s]*?)\z");
text = GetDesc(desc, @"\A([\S\s]*?)[\r\n]*【灵摆效果】[\r\n]*[\S\s]*?\z");
}
if (string.IsNullOrEmpty(text))
text = desc;
List<string> val = new List<string>();
val.Add(text);
val.Add(ptext);
return val;
}
}
} public string ConvertPTextOld(string text, string ptext, bool normal, int pscale_l, int pscale_r)
#endregion {
string str = normal ? "【怪兽描述】" : "【怪兽效果】";
if (string.IsNullOrEmpty(ptext))
return string.Format("←{0} 【灵摆】 {1}→\r\n{2}\r\n{3}", pscale_l, pscale_r, str, text);
else
return string.Format("←{0} 【灵摆】 {1}→\r\n{2}\r\n{3}\r\n{4}", pscale_l, pscale_r, ptext, str, text);
}
public string ConvertPTextNew(string text, string ptext)
{
if (string.IsNullOrEmpty(ptext))
return text;
else
return string.Format("{0}\r\n\r\n【灵摆效果】\r\n{1}", text, ptext);
}
public string ReplaceText(string text, string name)
{
// pendulum format
if (Regex.IsMatch(text, @"【灵摆】"))
{
List<string> table = GetMPText(text);
if (table != null)
text = ConvertPTextNew(table[0], table[1]);
}
// give
text = text.Replace("给与", "给予");
// set name
text = Regex.Replace(text, @"名字带有「([^「」]+)」的", "「$1」");
if (Regex.IsMatch(text, "①"))
{
// this card name
string thisname = string.Format("「{0}」", name);
text = Regex.Replace(text, thisname + @"在1回合", "这个卡名的卡在1回合");
text = Regex.Replace(text, thisname + @"在决斗中", "这个卡名的卡在决斗中");
text = Regex.Replace(text, thisname + @"的效果1回合", "这个卡名的效果1回合");
text = Regex.Replace(text, thisname + @"的效果在决斗中", "这个卡名的效果在决斗中");
text = Regex.Replace(text, thisname + @"的怪兽效果1回合", "这个卡名的怪兽效果1回合");
text = Regex.Replace(text, thisname + @"的怪兽效果在决斗中", "这个卡名的怪兽效果在决斗中");
text = Regex.Replace(text, thisname + @"的灵摆效果1回合", "这个卡名的灵摆效果1回合");
text = Regex.Replace(text, thisname + @"的灵摆效果在决斗中", "这个卡名的灵摆效果在决斗中");
text = Regex.Replace(text, thisname + @"的([①②③④⑤⑥⑦⑧⑨⑩]+)的", "这个卡名的$1的");
text = Regex.Replace(text, thisname + @"的([①②③④⑤⑥⑦⑧⑨⑩]+)的", "这个卡名的$1的");
text = Regex.Replace(text, @"作为([①②③④⑤⑥⑦⑧⑨⑩]+)的", "$1的");
}
return text;
}
} }
} }
...@@ -75,6 +75,7 @@ private void InitializeComponent() ...@@ -75,6 +75,7 @@ private void InitializeComponent()
this.tsep1 = new System.Windows.Forms.ToolStripSeparator(); this.tsep1 = new System.Windows.Forms.ToolStripSeparator();
this.menuitem_cancelTask = new System.Windows.Forms.ToolStripMenuItem(); this.menuitem_cancelTask = new System.Windows.Forms.ToolStripMenuItem();
this.menuitem_autoreturn = new System.Windows.Forms.ToolStripMenuItem(); this.menuitem_autoreturn = new System.Windows.Forms.ToolStripMenuItem();
this.menuitem_replace = new System.Windows.Forms.ToolStripMenuItem();
this.menuitem_help = new System.Windows.Forms.ToolStripMenuItem(); this.menuitem_help = new System.Windows.Forms.ToolStripMenuItem();
this.menuitem_about = new System.Windows.Forms.ToolStripMenuItem(); this.menuitem_about = new System.Windows.Forms.ToolStripMenuItem();
this.menuitem_language = new System.Windows.Forms.ToolStripMenuItem(); this.menuitem_language = new System.Windows.Forms.ToolStripMenuItem();
...@@ -318,7 +319,9 @@ private void InitializeComponent() ...@@ -318,7 +319,9 @@ private void InitializeComponent()
this.menuitem_convertimage, this.menuitem_convertimage,
this.tsep1, this.tsep1,
this.menuitem_cancelTask, this.menuitem_cancelTask,
this.menuitem_autoreturn}); this.menuitem_autoreturn,
this.menuitem_replace
});
this.menu_data.Name = "menu_data"; this.menu_data.Name = "menu_data";
this.menu_data.Size = new System.Drawing.Size(62, 21); this.menu_data.Size = new System.Drawing.Size(62, 21);
this.menu_data.Text = "Data(&T)"; this.menu_data.Text = "Data(&T)";
...@@ -441,6 +444,13 @@ private void InitializeComponent() ...@@ -441,6 +444,13 @@ private void InitializeComponent()
this.menuitem_autoreturn.Text = "*Auto return"; this.menuitem_autoreturn.Text = "*Auto return";
this.menuitem_autoreturn.Click += new System.EventHandler(this.Menuitem_autoreturnClick); this.menuitem_autoreturn.Click += new System.EventHandler(this.Menuitem_autoreturnClick);
// //
// menuitem_replace
//
this.menuitem_replace.Name = "menuitem_replace";
this.menuitem_replace.Size = new System.Drawing.Size(228, 22);
this.menuitem_replace.Text = "*Auto replace";
this.menuitem_replace.Click += new System.EventHandler(this.Menuitem_replaceClick);
//
// menuitem_help // menuitem_help
// //
this.menuitem_help.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.menuitem_help.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
...@@ -1324,6 +1334,7 @@ private void InitializeComponent() ...@@ -1324,6 +1334,7 @@ private void InitializeComponent()
private System.Windows.Forms.ToolStripMenuItem menuitem_export_select_sql; private System.Windows.Forms.ToolStripMenuItem menuitem_export_select_sql;
private System.Windows.Forms.ToolStripMenuItem menuitem_export_all_sql; private System.Windows.Forms.ToolStripMenuItem menuitem_export_all_sql;
private System.Windows.Forms.ToolStripMenuItem menuitem_autoreturn; private System.Windows.Forms.ToolStripMenuItem menuitem_autoreturn;
private System.Windows.Forms.ToolStripMenuItem menuitem_replace;
private System.Windows.Forms.Label lb_markers; private System.Windows.Forms.Label lb_markers;
private DFlowLayoutPanel pl_markers; private DFlowLayoutPanel pl_markers;
private System.Windows.Forms.TextBox tb_link; private System.Windows.Forms.TextBox tb_link;
......
...@@ -1784,6 +1784,38 @@ void Menuitem_autoreturnClick(object sender, EventArgs e) ...@@ -1784,6 +1784,38 @@ void Menuitem_autoreturnClick(object sender, EventArgs e)
} }
} }
void Menuitem_replaceClick(object sender, EventArgs e)
{
if (!CheckOpen())
return;
using (SaveFileDialog dlg = new SaveFileDialog())
{
dlg.Title = LanguageHelper.GetMsg(LMSG.SelectDataBasePath);
dlg.Filter = LanguageHelper.GetMsg(LMSG.CdbType);
if (dlg.ShowDialog() == DialogResult.OK)
{
Card[] cards = DataBase.Read(nowCdbFile, true, "");
int count = cards.Length;
if (cards == null || cards.Length == 0)
return;
if (DataBase.Create(dlg.FileName))
{
//
int len = MyConfig.readInteger(MyConfig.TAG_AUTO_LEN, 30);
for (int i = 0; i < count; i++)
{
if (cards[i].desc != null)
{
cards[i].desc = tasker.MseHelper.ReplaceText(cards[i].desc, cards[i].name);
}
}
DataBase.CopyDB(dlg.FileName, false, cards);
MyMsg.Show(LMSG.CopyCardsToDBIsOK);
}
}
}
}
private void text2LinkMarks(string text) private void text2LinkMarks(string text)
{ {
try{ try{
......
...@@ -69,6 +69,7 @@ DataEditForm.mainMenu.menuitem_checkupdate 检查更新 ...@@ -69,6 +69,7 @@ DataEditForm.mainMenu.menuitem_checkupdate 检查更新
DataEditForm.mainMenu.menuitem_autocheckupdate 自动检查更新 DataEditForm.mainMenu.menuitem_autocheckupdate 自动检查更新
DataEditForm.mainMenu.menuitem_github 源码 DataEditForm.mainMenu.menuitem_github 源码
DataEditForm.mainMenu.menuitem_autoreturn (特殊功能)中文自动换行 DataEditForm.mainMenu.menuitem_autoreturn (特殊功能)中文自动换行
DataEditForm.mainMenu.menuitem_replace (特殊功能)批量替换文本
# #
MainForm.mainMenu.menuitem_file 文件(&F) MainForm.mainMenu.menuitem_file 文件(&F)
MainForm.mainMenu.menuitem_open 打开 MainForm.mainMenu.menuitem_open 打开
......
...@@ -13,6 +13,7 @@ CodeEditForm.mainMenu.menuitem_setcard Set DataBase ...@@ -13,6 +13,7 @@ CodeEditForm.mainMenu.menuitem_setcard Set DataBase
CodeEditForm.mainMenu.menuitem_help Help(&H) CodeEditForm.mainMenu.menuitem_help Help(&H)
CodeEditForm.mainMenu.menuitem_about About CodeEditForm.mainMenu.menuitem_about About
DataEditForm.mainMenu.menuitem_autoreturn (*)Text auto return DataEditForm.mainMenu.menuitem_autoreturn (*)Text auto return
DataEditForm.mainMenu.menuitem_replace (*)...
# #
DataEditForm.pl_bottom.btn_img Import Img DataEditForm.pl_bottom.btn_img Import Img
DataEditForm.pl_main.lb_types Card type DataEditForm.pl_main.lb_types Card type
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment