• 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

Object Storage Arubacloud
+1 głos
491 wizyt
pytanie zadane 8 czerwca 2021 w C# przez assassin Gaduła (3,260 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 2021 przez VBService Ekspert (253,120 p.)
edycja 10 czerwca 2021 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 2021 przez assassin Gaduła (3,260 p.)
Dziękuję

Podobne pytania

0 głosów
0 odpowiedzi 133 wizyt
0 głosów
1 odpowiedź 230 wizyt
0 głosów
1 odpowiedź 107 wizyt
pytanie zadane 23 sierpnia 2017 w C# przez Rout Bywalec (2,350 p.)

92,555 zapytań

141,403 odpowiedzi

319,560 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...