{"id":55000113,"date":"2017-12-01T00:00:00","date_gmt":"2020-03-27T19:29:45","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=113"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Mit_Ressourcen_arbeiten","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/Mit_Ressourcen_arbeiten\/","title":{"rendered":"Mit Ressourcen arbeiten"},"content":{"rendered":"<p><b>In einer .NET-Anwendung k&ouml;nnen Sie auch ohne Verwendung einer Datenbank Dateien und andere Daten ablegen. Dazu stellt Microsoft die sogenannten Ressourcen (englisch Resources) zur Verf&uuml;gung. Dabei handelt es sich um die M&ouml;glichkeit, Dateien, Texte oder andere Daten entweder &uuml;ber die Benutzeroberfl&auml;che von Visual Studio zur Anwendung hinzuzuf&uuml;gen und sie per Code auszulesen und gegebenenfalls auch wieder ins Dateisystem zu kopieren. Im konkreten Fall wollen wir eine Word-Dokumentvorlage in der Anwendung vorhalten, um diese bei Bedarf ins Dateisystem zu kopieren und als Vorlage zu nutzen.<\/b><\/p>\n<h2>Beispiel Word-Dokumentvorlage<\/h2>\n<p>Anlass zu diesem Artikel ist ein weiterer Artikel namens <b>Briefe mit Word erstellen<\/b>, in dem wir auf Basis einer Word-Dokumentvorlage ein neues Word-Dokument erstellen wollen.<\/p>\n<p>F&uuml;r den Fall, dass der Benutzer die Anwendung frisch auf dem Rechner installiert hat, soll die Dokumentvorlage vor dem erstmaligen Erstellen von der Anwendung ins Dateisystem kopiert werden, damit der Code zum Erstellen des Word-Dokuments auf Basis dieser Vorlage auf die Vorlage zugreifen kann.<\/p>\n<h2>Ressourcen in Visual Studio verwalten<\/h2>\n<p>Der einfachste Weg, die Ressourcen zu verwalten, findet sich in der Benutzeroberfl&auml;che von Visual Studio. Wenn Sie ein Projekt angelegt haben, klicken Sie doppelt auf den Eintrag <b>My Project <\/b>im Projektmappen-Explorer, um die Eigenschaften der Anwendung anzuzeigen.<\/p>\n<p>Diesen Bereich &ouml;ffnen Sie auch mit dem Men&uuml;befehl <b>Projekt|Eigenschaften<\/b>. Hier wechseln Sie dann durch einen Klick auf den Eintrag <b>Ressourcen <\/b>in der linken Leiste zum gleichnamigen Bereich. In einem frischen Projekt ist die Liste der Ressourcen noch leer (siehe Bild 1).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2017_06\/pic_113_001.png\" alt=\"Der Dialog zum Verwalten der Ressourcen &uuml;ber Visual Studio\" width=\"599,593\" height=\"314,9294\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Der Dialog zum Verwalten der Ressourcen &uuml;ber Visual Studio<\/span><\/b><\/p>\n<p>Um eine Datei als Ressource hinzuzuf&uuml;gen, klicken Sie auf den <b>Nach unten<\/b>-Pfeil der Schaltfl&auml;che <b>Ressource hinzuf&uuml;gen <\/b>im oberen Bereich und w&auml;hlen im nun erscheinenden Men&uuml; den Eintrag <b>Vorhandene Datei hinzuf&uuml;gen&#8230; <\/b>aus (siehe Bild 2).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2017_06\/pic_113_002.png\" alt=\"Hinzuf&uuml;gen einer Datei als Ressource\" width=\"499,6607\" height=\"200,836\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Hinzuf&uuml;gen einer Datei als Ressource<\/span><\/b><\/p>\n<p>Im folgenden Dialog <b>Vorhandene Datei zu Ressourcen hinzuf&uuml;gen <\/b>w&auml;hlen Sie nun die hinzuzuf&uuml;gende Datei aus, in unserem Fall eine Datei namens <b>Vorlage.dotx<\/b>.<\/p>\n<p>Nach dem Hinzuf&uuml;gen zeigt der <b>Ressourcen<\/b>-Bereich die neue Ressource wie in Bild 3 an.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2017_06\/pic_113_003.png\" alt=\"Anzeige der neuen Ressource in den Projekteigenschaften\" width=\"599,593\" height=\"210,5379\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Anzeige der neuen Ressource in den Projekteigenschaften<\/span><\/b><\/p>\n<p>Diese Ansicht ist nicht besonders aussagekr&auml;ftig, deshalb wechseln wir wie in Bild 4 &uuml;ber die Auswahl der Ansichten zur Ansicht <b>Details anzeigen<\/b>. Damit befindet sich die Ressource bereits in der Anwendung. Sie m&uuml;ssen nun noch die &Auml;nderungen speichern, am einfachsten mit der Tastenkombination <b>Strg + S<\/b>.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2017_06\/pic_113_004.png\" alt=\"Detaillierte Liste der Ressourcen\" width=\"599,593\" height=\"182,7636\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Detaillierte Liste der Ressourcen<\/span><\/b><\/p>\n<h2>Ressource per Projektmappen-Explorer hinzuf&uuml;gen<\/h2>\n<p>Nach dem Hinzuf&uuml;gen der ersten Ressource zeigt der Projektmappen-Explorer einen Ordner f&uuml;r die Ressourcen an (siehe Bild 5). Dieser bietet auch ein Kontextmen&uuml;, &uuml;ber dessen Eintrag <b>Hinzuf&uuml;gen|Neues Element&#8230; <\/b>Sie den Dialog <b>Neues Element hinzuf&uuml;gen <\/b>&ouml;ffnen. Hier k&ouml;nnen Sie allerdings nicht beliebige Dateien hinzuf&uuml;gen, sodass der Weg &uuml;ber den Ressourcen-Bereich in den Projekteigenschaften die einfachere Variante ist.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2017_06\/pic_113_005.png\" alt=\"Ressource &uuml;ber den Projektmappen-Explorer hinzuf&uuml;gen\" width=\"699,525\" height=\"227,7702\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Ressource &uuml;ber den Projektmappen-Explorer hinzuf&uuml;gen<\/span><\/b><\/p>\n<h2>Zur Laufzeit mit Ressourcen arbeiten<\/h2>\n<p>Nun ist das prim&auml;re Ziel, diese Ressource zur Laufzeit aus der Anwendung ins Dateisystem zu kopieren. Dies wollen wir als N&auml;chstes realisieren. Damit ersch&ouml;pfen sich die M&ouml;glichkeiten auch: Die als Ressource hinzugef&uuml;gten Dateien werden n&auml;mlich beim Kompilieren in die <b>.exe<\/b>-Datei integriert. Sie k&ouml;nnen also nicht etwa zur Laufzeit weitere Elemente zu den Ressourcen einer Anwendung hinzuf&uuml;gen.<\/p>\n<h2>Schaltfl&auml;che zum Exportieren der Ressource<\/h2>\n<p>F&uuml;r unsere erste Aufgabe f&uuml;gen wir dem Fenster <b>MainWindow.xaml <\/b>eine Schaltfl&auml;che namens <b>btnRessourceExportieren <\/b>hinzu und legen f&uuml;r diese eine Ereignismethode an, die durch das Ereignis <b>Click <\/b>ausgel&ouml;st wird. Die Definition der Schaltfl&auml;che sieht so aus:<\/p>\n<pre>&lt;Button x:Name=\"btnRessourceExportieren\" Click=\"btnRessourceExportieren_Click\"&gt;Ressource exportieren&lt;\/Button&gt;<\/pre>\n<p>Wenn Sie nun zum Code-Editor f&uuml;r die Klasse <b>MainWindow.xaml.vb <\/b>wechseln, k&ouml;nnen Sie &uuml;ber <b>My.Resources <\/b>auf alle in den Ressourcen gespeicherten Elemente zugreifen, also auch auf unser Element mit der Bezeichnung <b>Vorlage<\/b>. Dieses bietet wiederum eine Reihe von Eigenschaften und Methoden an, unter denen sich aber leider nicht direkt eine Eigenschaft namens <b>SaveAs <\/b>findet (siehe Bild 6).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2017_06\/pic_113_006.png\" alt=\"Zugriff auf die Ressource per Code\" width=\"424,7115\" height=\"268,5923\"\/><\/p>\n<div class=\"rcp_restricted\"><p><span style=\"color: #ff0000;\">M&ouml;chten Sie weiterlesen? Dann l&ouml;sen Sie Ihr Ticket!<\/span><br \/>\n<span style=\"color: #ff0000;\">Hier geht es zur Bestellung des Jahresabonnements des Magazins <strong>Visual Basic Entwickler<\/strong>:<\/span><br \/>\n<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/shop.minhorst.com\/magazine\/363\/visual-basic-entwickler-jahresabonnement?c=77\">Zur Bestellung ...<\/a><\/span><br \/>\n<span style=\"color: #ff0000;\">Danach greifen Sie sofort auf <strong>alle rund 200 Artikel<\/strong> unseres Angebots zu - auch auf diesen hier!<\/span><br \/>\n<span style=\"color: #000000;\">Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:<\/span><\/p>\n<\/div>\n\n\t\n\t<form id=\"rcp_login_form\"  class=\"rcp_form\" method=\"POST\" action=\"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000113\/\">\n\n\t\t\n\t\t<fieldset class=\"rcp_login_data\">\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_login\">Username or Email<\/label>\n\t\t\t\t<input name=\"rcp_user_login\" id=\"rcp_user_login\" class=\"required\" type=\"text\"\/>\n\t\t\t<\/p>\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_pass\">Password<\/label>\n\t\t\t\t<input name=\"rcp_user_pass\" id=\"rcp_user_pass\" class=\"required\" type=\"password\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t\t<p>\n\t\t\t\t<input type=\"checkbox\" name=\"rcp_user_remember\" id=\"rcp_user_remember\" value=\"1\"\/>\n\t\t\t\t<label for=\"rcp_user_remember\">Remember me<\/label>\n\t\t\t<\/p>\n\t\t\t<p class=\"rcp_lost_password\"><a href=\"\/data\/wp\/v2\/posts\/55000113?rcp_action=lostpassword\"><\/a><\/p>\n\t\t\t<p>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_action\" value=\"login\"\/>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_redirect\" value=\"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000113\/\"\/>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"34aae43e8a\"\/>\n\t\t\t\t<input id=\"rcp_login_submit\" class=\"rcp-button\" type=\"submit\" value=\"Login\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t<\/fieldset>\n\n\t\t\n\t<\/form>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In einer .NET-Anwendung k&ouml;nnen Sie auch ohne Verwendung einer Datenbank Dateien und andere Daten ablegen. Dazu stellt Microsoft die sogenannten Ressourcen (englisch Resources) zur Verf&uuml;gung. Dabei handelt es sich um die M&ouml;glichkeit, Dateien, Texte oder andere Daten entweder &uuml;ber die Benutzeroberfl&auml;che von Visual Studio zur Anwendung hinzuzuf&uuml;gen und sie per Code auszulesen und gegebenenfalls auch wieder ins Dateisystem zu kopieren. Im konkreten Fall wollen wir eine Word-Dokumentvorlage in der Anwendung vorhalten, um diese bei Bedarf ins Dateisystem zu kopieren und als Vorlage zu nutzen.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662017,66062017,44000010,44000027,44000033],"tags":[],"yst_prominent_words":[],"class_list":["post-55000113","post","type-post","status-publish","format-standard","hentry","category-662017","category-66062017","category-Anwendungsentwicklung","category-Excel_programmieren","category-Visual_Basic_Programmierung"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000113","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/comments?post=55000113"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000113\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000113"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000113"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000113"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000113"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}