• 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

VPS Starter Arubacloud
+1 głos
458 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 (251,270 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 129 wizyt
0 głosów
1 odpowiedź 228 wizyt
0 głosów
1 odpowiedź 106 wizyt
pytanie zadane 23 sierpnia 2017 w C# przez Rout Bywalec (2,350 p.)

92,455 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...