• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wprowadzenie wartości zmiennej do konkretnego miejsca w pliku .rtf

+1 głos
50 wizyt
pytanie zadane 8 czerwca w C# przez Nowy Bywalec (2,390 p.)

Cześć i czołem.


Już od jakiegoś czasu szukam rozwiązania na nurtujące mnie pytanie.

Wiem, że można wyeksportować plik .rtf i wiele innych i to jestem w stanie zrobić.

Ale jak w konkretne miejsce w szablonie pliku .rtf wstawić wartość zmiennej?

Dajmy na to, że chcę wstawić wartość zmiennej string name = "Kasia" do konkretnej linijki w szablonie.

Jak to zrobić, by Kasia pojawiła się w konkretnej linijce?

Szablon pliku .rtf

Bla bla bla

bla bla bla

Jakieś zdjęcie
imię: Kasia <- tutaj chciałbym wstawić zmienną name.

bla bla bla

 

Proszę o pomoc

1 odpowiedź

+2 głosów
odpowiedź 9 czerwca przez .::VBService::. VIP (104,540 p.)
edycja 10 czerwca przez .::VBService::.
 
Najlepsza

Może coś na wzór interpolation syntax jak w Angular.  wink

 

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 ]

1
komentarz 9 czerwca przez Nowy Bywalec (2,390 p.)
Dziękuję

Podobne pytania

0 głosów
0 odpowiedzi 74 wizyt
0 głosów
1 odpowiedź 115 wizyt
0 głosów
1 odpowiedź 73 wizyt
pytanie zadane 23 sierpnia 2017 w C# przez Rout Bywalec (2,350 p.)
Porady nie od parady
Publikując kody źródłowe korzystaj ze specjalnego bloczku koloryzującego składnię (przycisk z napisem code w edytorze). Nie zapomnij o ustawieniu odpowiedniego języka z rozwijanego menu oraz czytelnym formatowaniu kodu.Przycisk code

83,604 zapytań

132,253 odpowiedzi

291,742 komentarzy

55,205 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...