{"id":55000440,"date":"2019-04-01T00:00:00","date_gmt":"2020-01-24T16:00:20","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=440"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Das_FileSystemObject_Textstream","status":"publish","type":"post","link":"https:\/\/access-basics.de\/index.php\/Das_FileSystemObject_Textstream.html","title":{"rendered":"Das FileSystemObject: Textstream"},"content":{"rendered":"<p class='introduction'>Die VBA-eigenen Befehle wie <b>Open<\/b>, <b>Write<\/b>, <b>Input<\/b>, <b>Close <\/b>und so weiter erlauben das Erstellen, Schreiben und Lesen von Textdateien. Wenn es etwas komfortabler sein darf, gibt es jedoch noch andere M&ouml;glichkeiten. Eine davon ist die Klasse <b>FileSystemObject<\/b>, die Sie in der Bibliothek <b>Microsoft Scripting Runtime <\/b>finden. In den Artikeln <b>Das FileSystemObject: Verzeichnisse <\/b>und <b>Das FileSystemObject: Dateien <\/b>haben wir die Grundlagen zu dieser Bibliothek und zum Umgang mit Laufwerken, Verzeichnissen und Dateien erl&auml;utert. Dieser Artikel zeigt, welche M&ouml;glichkeiten diese Bibliothek im Hinblick auf den Umgang mit Textdateien bietet.<\/p>\n<h2>Beispieldatenbank<\/h2>\n<p>Die Beispiele dieses Artikels finden Sie in der Datenbank <b>1902_FileSystemObject_Textstream.accdb<\/b>.<\/p>\n<h2>Die TextStream-Klasse<\/h2>\n<p>Beim Aufruf der Methode <b>CreateTextFile <\/b>der <b>FileSystemObject<\/b>-Klasse und der <b>Folder<\/b>-Klasse werden Objekte des Typs <b>TextStream <\/b>zur&uuml;ckgeliefert.<\/p>\n<p>Diese weisen die folgenden Eigenschaften auf:<\/p>\n<ul>\n<li><b>AtEndOfLine<\/b>: Gibt an, ob sich der Zeiger am Ende der aktuellen Zeile befindet.<\/li>\n<li><b>AtEndOfStream<\/b>: Gibt an, ob sich der Zeiger am Ende des Streams befindet.<\/li>\n<li><b>Close<\/b>: Schlie&szlig;t einen offenen Textstream.<\/li>\n<li><b>Column<\/b>: Gibt die aktuelle Spalte des Zeigers aus.<\/li>\n<li><b>Line<\/b>: Gibt die Nummer der aktuellen Zeile des Zeigers aus.<\/li>\n<li><b>Read<\/b>: Liest die mit dem Parameter angegebene Menge an Zeichen.<\/li>\n<li><b>ReadAll<\/b>: Liest den kompletten Inhalt des <b>TextStream<\/b>-Objekts.<\/li>\n<li><b>ReadLine<\/b>: Liest die jeweils folgende Zeile des <b>TextStream<\/b>-Objekts.<\/li>\n<li><b>Skip<\/b>: Verschiebt den Zeiger um die angegebene Anzahl Zeichen in Richtung Ende des Streams.<\/li>\n<li><b>SkipLine<\/b>: Verschiebt den Zeiger auf den Anfang der n&auml;chsten Zeile.<\/li>\n<li><b>Write<\/b>: F&uuml;gt den Inhalt des Parameters hinter dem letzten vorhandenen Zeichen in einem <b>Textstream<\/b>-Objekt ein.<\/li>\n<li><b>WriteBlankLines<\/b>: F&uuml;gt hinter dem letzten Zeichen des <b>TextStream<\/b>-Objekts leere Zeilen entsprechend der im Parameter angegebenen Anzahl ein.<\/li>\n<li><b>WriteLine<\/b>: F&uuml;gt den als Parameter angegebenen Text hinter dem letzten Zeichen des <b>TextStream<\/b>-Objekts ein und h&auml;ngt ein Zeilenumbruchszeichen hinten an.<\/li>\n<\/ul>\n<h2>Erstellen einer Textdatei und F&uuml;llen mit Text aus einer Variablen<\/h2>\n<p>Wenn Sie einfach nur den Inhalt einer <b>String<\/b>-Variablen in eine neue Textdatei schreiben wollen, gehen Sie wie folgt vor:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>strDatei<span style=\"color:blue;\"> As String<\/span>\r\n<span style=\"color:blue;\">Dim <\/span>strPfad<span style=\"color:blue;\"> As String<\/span>\r\n<span style=\"color:blue;\">Dim <\/span>strText<span style=\"color:blue;\"> As String<\/span>\r\n<span style=\"color:blue;\">Dim <\/span>objTextstream<span style=\"color:blue;\"> As <\/span>TextStream\r\nstrDatei = <span style=\"color:blue;\">Replace<\/span>(FSO.GetTempName, \".tmp\", \".txt\")\r\nstrPfad = FSO.BuildPath(CurrentProject.Path, strDatei)\r\nstrText = \"Dies ist ein Beispieltext.\" & <span style=\"color:blue;\">vbCrLf<\/span>\r\nstrText = strText & \"Und noch eine Zeile.\" & <span style=\"color:blue;\">vbCrLf<\/span>\r\nstrText = strText & \"Und die letzte Zeile.\"\r\n<span style=\"color:blue;\">Set<\/span> objTextstream = FSO.CreateTextFile(strPfad)\r\n<span style=\"color:blue;\">With<\/span> objTextstream\r\n    .Write strText\r\nEnd <span style=\"color:blue;\">With<\/span>\r\nobjTextstream.Close<\/pre>\n<p>Hier ermitteln wir einen tempor&auml;ren Dateinamen, bei dem wir die Dateiendung <b>.tmp <\/b>durch <b>.txt <\/b>ersetzen. Dann f&uuml;gen wir diese &uuml;ber die Funktion <b>BuildPath <\/b>mit dem Verzeichnis der aktuellen Datenbank zu einem Pfad zusammen. Au&szlig;erdem f&uuml;gen wir in der Variablen <b>strText <\/b>einen mehrzeiligen Text zusammen, den wir dann zur Datei hinzuf&uuml;gen wollen.<\/p>\n<p>Die Textdatei erstellen wir mit der <b>CreateTextFile<\/b>-Methode des <b>FileSystemObject<\/b>-Objekts, der wir als Parameter den Pfad aus <b>strPfad <\/b>&uuml;bergeben.<\/p>\n<p>Dann nutzen wir die <b>Write<\/b>-Methode des mit der Variablen <b>objTextstream <\/b>erstellten <b>TextStream<\/b>-Objekts, um den Inhalt der Variablen <b>strText <\/b>einzuf&uuml;gen.<\/p>\n<p>Schlie&szlig;lich schlie&szlig;en wir die Datei mit der <b>Close<\/b>-Methode. Das Ergebnis ist eine Textdatei mit dem Text aus <b>strText <\/b>(siehe Bild 1).<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_440_001.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_440_001.png\" alt=\"Eine erste Textdatei mit Inhalt\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 1: Eine erste Textdatei mit Inhalt<\/p>\n<h2>TextStream-Objekt f&uuml;r Folder erzeugen<\/h2>\n<p>Nicht nur das <b>FileSystemObject<\/b>-Objekt, sondern auch das <b>Folder<\/b>-Objekt bietet die Methode <b>CreateTextFile <\/b>an.<\/p>\n<p>Dieser brauchen Sie dann nur noch den Dateinamen zu &uuml;bergeben, da das Zielverzeichnis ja schon im <b>Folder<\/b>-Objekt steckt:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>strDatei<span style=\"color:blue;\"> As String<\/span>\r\n<span style=\"color:blue;\">Dim <\/span>objFolder<span style=\"color:blue;\"> As <\/span>Folder\r\n<span style=\"color:blue;\">Dim <\/span>objTextstream<span style=\"color:blue;\"> As <\/span>TextStream\r\nstrDatei = <span style=\"color:blue;\">Replace<\/span>(FSO.GetTempName, \".tmp\", \".txt\")\r\n<span style=\"color:blue;\">Set<\/span> objFolder = FSO.GetFolder(CurrentProject.Path)\r\n<span style=\"color:blue;\">Set<\/span> objTextstream = objFolder.CreateTextFile(strDatei)\r\nobjTextstream.Close<\/pre>\n<h2>Text in TextStream-Objekt schreiben<\/h2>\n<p>Was geschieht, wenn wir die drei Zeilen in einzelnen <b>Write<\/b>-Anweisungen zum <b>TextStream<\/b>-Objekt hinzuf&uuml;gen<\/p>\n<pre><span style=\"color:blue;\">With<\/span> objTextstream\r\n    .Write \"Dies ist ein Beispieltext.\"\r\n    .Write \"Und noch eine Zeile.\"\r\n    .Write \"Und die letzte Zeile.\"\r\nEnd <span style=\"color:blue;\">With<\/span><\/pre>\n<p>Dann wird der Text einfach ohne Zeilenumbruch aneinander geh&auml;ngt:<\/p>\n<pre>Dies ist ein Beispieltext.Und noch eine Zeile.Und die letzte Zeile.<\/pre>\n<p>Wenn der Text jeweils in einer neuen Zeile geschrieben werden soll, verwenden Sie die <b>WriteLine<\/b>-Methode:<\/p>\n<pre><span style=\"color:blue;\">With<\/span> objTextstream\r\n    .WriteLine \"Dies ist ein Beispieltext.\"\r\n    .WriteLine \"Und noch eine Zeile.\"\r\n    .WriteLine \"Und die letzte Zeile.\"\r\nEnd <span style=\"color:blue;\">With<\/span><\/pre>\n<p>Dies h&auml;ngt an den Text jeweils noch einen Zeilenumbruch an. Genau genommen k&ouml;nnten wir uns den bei der letzten Zeile sparen:<\/p>\n<pre><span style=\"color:blue;\">With<\/span> objTextstream\r\n    .WriteLine \"Dies ist ein Beispieltext.\"\r\n    .WriteLine \"Und noch eine Zeile.\"\r\n    .Write \"Und die letzte Zeile.\"\r\nEnd <span style=\"color:blue;\">With<\/span><\/pre>\n<h2>Leere Zeilen einf&uuml;gen<\/h2>\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>Access &#091;basics&#093;<\/strong>:<\/span><br \/>\n<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/shop.minhorst.com\/magazine\/282\/access-basics?c=77\">Zur Bestellung ...<\/a><\/span><br \/>\n<span style=\"color: #ff0000;\">Danach greifen Sie sofort auf <strong>alle rund 400 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:\/\/access-basics.de\/data\/wp\/v2\/posts\/55000440\/\">\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=\"\/index.php\/data\/wp\/v2\/posts\/55000440?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\t\t\t\t\t<input type=\"hidden\" name=\"rcp_redirect\" value=\"https:\/\/access-basics.de\/data\/wp\/v2\/posts\/55000440\/\"\/>\n\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"8d63f6cbe9\"\/>\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>Die VBA-eigenen Befehle wie <b>Open<\/b>, <b>Write<\/b>, <b>Input<\/b>, <b>Close <\/b>und so weiter erlauben das Erstellen, Schreiben und Lesen von Textdateien. Wenn es etwas komfortabler sein darf, gibt es jedoch noch andere M&ouml;glichkeiten. Eine davon ist die Klasse <b>FileSystemObject<\/b>, die Sie in der Bibliothek <b>Microsoft Scripting Runtime <\/b>finden. In den Artikeln <b>Das FileSystemObject: Verzeichnisse <\/b>und <b>Das FileSystemObject: Dateien <\/b>haben wir die Grundlagen zu dieser Bibliothek und zum Umgang mit Laufwerken, Verzeichnissen und Dateien erl&auml;utert. Dieser Artikel zeigt, welche M&ouml;glichkeiten diese Bibliothek im Hinblick auf den Umgang mit Textdateien bietet.<\/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":[66022019,662019,44000011],"tags":[],"class_list":["post-55000440","post","type-post","status-publish","format-standard","hentry","category-66022019","category-662019","category-VBAGrundlagen"],"aioseo_notices":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v15.9.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Das FileSystemObject: Textstream - Access [basics]<\/title>\n<meta name=\"description\" content=\"Die VBA-eigenen Befehle wie Open, Write, Input, Close und so weiter erlauben das Erstellen, Schreiben und Lesen von Textdateien. Wenn es etwas komfortabler sein darf, gibt es jedoch noch andere M\u00f6glichkeiten. Eine davon ist die Klasse FileSystemObject, die Sie in der Bibliothek Microsoft Scripting Runtime finden. In den Artikeln Das FileSystemObject: Verzeichnisse und Das FileSystemObject: Dateien haben wir die Grundlagen zu dieser Bibliothek und zum Umgang mit Laufwerken, Verzeichnissen und Dateien erl\u00e4utert. Dieser Artikel zeigt, welche M\u00f6glichkeiten diese Bibliothek im Hinblick auf den Umgang mit Textdateien bietet.\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-basics.de\/index.php\/Das_FileSystemObject_Textstream.html\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Das FileSystemObject: Textstream - Access [basics]\" \/>\n<meta property=\"og:description\" content=\"Die VBA-eigenen Befehle wie Open, Write, Input, Close und so weiter erlauben das Erstellen, Schreiben und Lesen von Textdateien. Wenn es etwas komfortabler sein darf, gibt es jedoch noch andere M\u00f6glichkeiten. Eine davon ist die Klasse FileSystemObject, die Sie in der Bibliothek Microsoft Scripting Runtime finden. In den Artikeln Das FileSystemObject: Verzeichnisse und Das FileSystemObject: Dateien haben wir die Grundlagen zu dieser Bibliothek und zum Umgang mit Laufwerken, Verzeichnissen und Dateien erl\u00e4utert. Dieser Artikel zeigt, welche M\u00f6glichkeiten diese Bibliothek im Hinblick auf den Umgang mit Textdateien bietet.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-basics.de\/index.php\/Das_FileSystemObject_Textstream.html\" \/>\n<meta property=\"og:site_name\" content=\"Access [basics]\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-24T16:00:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"-0001-11-30T00:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/..\/tl_files\/images\/pic_440_001.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Gesch\u00e4tzte Lesezeit\">\n\t<meta name=\"twitter:data1\" content=\"10\u00a0Minuten\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/access-basics.de\/#website\",\"url\":\"https:\/\/access-basics.de\/\",\"name\":\"Access [basics]\",\"description\":\"DAS ACCESS-MAGAZIN F\\u00dcR ALLE, DIE VON 0 AUF 100 WOLLEN\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/access-basics.de\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Das_FileSystemObject_Textstream.html#primaryimage\",\"inLanguage\":\"de\",\"url\":\"..\/tl_files\/images\/pic_440_001.png\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Das_FileSystemObject_Textstream.html#webpage\",\"url\":\"https:\/\/access-basics.de\/index.php\/Das_FileSystemObject_Textstream.html\",\"name\":\"Das FileSystemObject: Textstream - Access [basics]\",\"isPartOf\":{\"@id\":\"https:\/\/access-basics.de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Das_FileSystemObject_Textstream.html#primaryimage\"},\"datePublished\":\"2020-01-24T16:00:20+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"author\":{\"@id\":\"https:\/\/access-basics.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f\"},\"description\":\"Die VBA-eigenen Befehle wie Open, Write, Input, Close und so weiter erlauben das Erstellen, Schreiben und Lesen von Textdateien. Wenn es etwas komfortabler sein darf, gibt es jedoch noch andere M\\u00f6glichkeiten. Eine davon ist die Klasse FileSystemObject, die Sie in der Bibliothek Microsoft Scripting Runtime finden. In den Artikeln Das FileSystemObject: Verzeichnisse und Das FileSystemObject: Dateien haben wir die Grundlagen zu dieser Bibliothek und zum Umgang mit Laufwerken, Verzeichnissen und Dateien erl\\u00e4utert. Dieser Artikel zeigt, welche M\\u00f6glichkeiten diese Bibliothek im Hinblick auf den Umgang mit Textdateien bietet.\",\"breadcrumb\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Das_FileSystemObject_Textstream.html#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/access-basics.de\/index.php\/Das_FileSystemObject_Textstream.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Das_FileSystemObject_Textstream.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/\",\"url\":\"https:\/\/access-basics.de\/\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Das_FileSystemObject_Textstream.html\",\"url\":\"https:\/\/access-basics.de\/index.php\/Das_FileSystemObject_Textstream.html\",\"name\":\"Das FileSystemObject: Textstream\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/access-basics.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/access-basics.de\/#personlogo\",\"inLanguage\":\"de\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","_links":{"self":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000440","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/comments?post=55000440"}],"version-history":[{"count":0,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000440\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/media?parent=55000440"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/categories?post=55000440"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/tags?post=55000440"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}