Może coś na wzór interpolation syntax jak w Angular.
np.:
szablon pliku.rtf
{{first-name}} {{last-name}}
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Imię: {{first-name}}
using System;
using System.IO;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
private static string PATH_DESKTOP = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
private static string FULL_PATH_FILE_TEMPLATE = Path.Combine(PATH_DESKTOP, "Szablon pliku.rtf");
private static string FULL_PATH_FILE = Path.Combine(PATH_DESKTOP, "plik.rtf");
public Form1()
{
InitializeComponent();
}
private void save_Click(object sender, EventArgs e)
{
richTextBox1.SaveFile(FULL_PATH_FILE);
}
private void load_Click(object sender, EventArgs e)
{
if (File.Exists(FULL_PATH_FILE_TEMPLATE))
{
richTextBox1.LoadFile(FULL_PATH_FILE_TEMPLATE);
}
}
private void insert_Click(object sender, EventArgs e)
{
string firstName = "Kasia";
string lastName = "Kowalska";
richTextBox1.Text = richTextBox1.Text.Replace("{{first-name}}", firstName);
richTextBox1.Text = richTextBox1.Text.Replace("{{last-name}}", lastName);
}
}
}
Przy większej ilość "zmiennych" w dokumencie
szablon pliku.rtf
{{variable1}}
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
{{variable2}}
Lorem ipsum dolor sit amet, {{variable5}} adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
{{variable3}}
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
{{variable4}}
{{variable5}}
{{variable1}}
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
private static string PATH_DESKTOP = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
private static string FULL_PATH_FILE_TEMPLATE = Path.Combine(PATH_DESKTOP, "Szablon pliku.rtf");
private static string FULL_PATH_FILE = Path.Combine(PATH_DESKTOP, "plik.rtf");
public Form1()
{
InitializeComponent();
}
private void save_Click(object sender, EventArgs e)
{
richTextBox1.SaveFile(FULL_PATH_FILE);
}
private void load_Click(object sender, EventArgs e)
{
if (File.Exists(FULL_PATH_FILE_TEMPLATE))
{
richTextBox1.LoadFile(FULL_PATH_FILE_TEMPLATE);
}
}
private void insert_Click(object sender, EventArgs e)
{
Dictionary<string, string> template_variables = new Dictionary<string, string>()
{
{ "variable1", "Lorem ipsum1" },
{ "variable2", "Lorem ipsum2" },
{ "variable3", "Lorem ipsum3" },
{ "variable4", "Lorem ipsum4" },
{ "variable5", "Lorem ipsum5" }
};
foreach (KeyValuePair<string, string> item in template_variables)
{
richTextBox1.Text = richTextBox1.Text.Replace("{{" + item.Key + "}}", item.Value);
}
}
}
}
[ how to find and replace text in richtextbox ]