Autor
|
Thema: Textdatei aus Resourcen auslesen (2251 mal gelesen)
|
DrCNC Mitglied
Beiträge: 96 Registriert: 04.01.2011
|
erstellt am: 03. Feb. 2014 18:34 <-- editieren / zitieren --> Unities abgeben:
Hallo, Möchte in VB.Net bereits importierte Textdatei auslesen und ihn eine bereits geöffnete Datei schreiben. Code:
Try Dim Zapfen1 As StreamReader = New StreamReader("Zapfen_R.dat") Dim Textzeile5 Do Until Zapfen1.Peek() = -1 ' Schleife bis Dateiende. Textzeile5 = Zapfen1.ReadLine mpr1.WriteLine(Textzeile5) Loop Catch ex As Exception MessageBox.Show("Resource nicht gefunden!", "Error") End Try
Das Schreiben in eine Datei funktioniert bereits und wenn ich die Datei nicht importiere funktioniert es auch, will aber die Textdateien importieren, da ich nur eine ".EXE" Datei möchte. danke im voraus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 03. Feb. 2014 20:58 <-- editieren / zitieren --> Unities abgeben: Nur für DrCNC
Servus Was für ein Objekt ist die "mrp1" (StreamWriter?)? Wird ein String bei ReadLine zurückgeben? Ist der Dateiname/Pfad korrekt (bzw wird ein Fehler ausgelöst)? Gruß Bernd
------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DrCNC Mitglied
Beiträge: 96 Registriert: 04.01.2011
|
erstellt am: 03. Feb. 2014 22:59 <-- editieren / zitieren --> Unities abgeben:
Grüß dich dieser Code funktioniert bereits Code:
Sub Textschreiben(ByVal mpr1, ByVal Pfad) Dim Zapfen As New FileStream(Pfad, FileMode.Open) Dim Zapfen1 As New StreamReader(Zapfen, System.Text.Encoding.Default) Try Dim Textzeile5 Do Until Zapfen1.Peek() = -1 ' Schleife bis Dateiende. Textzeile5 = Zapfen1.ReadLine mpr1.WriteLine(Textzeile5) Loop Catch ex As Exception MessageBox.Show("Resource nicht gefunden!", "Error") End Try Zapfen1.Close() End Sub
Pfad = z. B.: "C:\Daten\Test.dat" mpr1 ist im Hauptprogramm bereits eine geöffnete Datei wo die hier geöffnete angehängt wird (funktioniert ja bereits) Aber ich habe diese Datei (Test.dat) als Resource in mein Projekt importiert und möchte diese eben genau so verwenden. Sonst muss ich immer diese Datei mitkopieren, wenn ich dieses Programm weitergeben möchte. Danke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Higlav Mitglied Konstrukteur
Beiträge: 8 Registriert: 30.09.2012 Win10 (64-bit) CPU: Intel Core 2 Duo CPU E7500 2.93GHz RAM: 4GB GK: Nvidia GeForce GTX 550 ti
|
erstellt am: 04. Feb. 2014 08:10 <-- editieren / zitieren --> Unities abgeben: Nur für DrCNC
Hallo DrCNC, Stell' mal deine Projekte auf Option Strict On, so ist das nicht wirklich schön. Ich habe es ein wenig umgeschrieben: Code: 'Aufruf im Code: If WriteText(StrW, Filepath) Then 'Erfolgreich Else 'Fehler End If Function WriteText(ByVal StrW As StreamWriter, ByVal Filepath$) As Boolean If Directory.Exists(Path.GetDirectoryName(Filepath)) Then Return False Using FS As New Filestream(Filepath, FileMode.Open) Using StrR As New StreamReader(FS, System.Text.Encoding.UTF8) 'Oder "Default" Do StrW.WriteLine(StrR.ReadLine) Loop Until StrR.EndOfStream StrR.Close End Using FS.Close End Using Return True End Function
Code ungetestet... PS: Bist du beim Ver-/Entschlüsseln weitergekommen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Comos User Mitglied
Beiträge: 112 Registriert: 23.03.2010
|
erstellt am: 04. Feb. 2014 10:16 <-- editieren / zitieren --> Unities abgeben: Nur für DrCNC
Hi DrCNC, suchst du so was:?
Code: Try Dim res AS Stream res = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("NS.Zapfen_R.dat")'Namespace anpassen Dim Zapfen1 As StreamReader = New StreamReader("res") Dim Textzeile5 Do Until Zapfen1.Peek() = -1 ' Schleife bis Dateiende. Textzeile5 = Zapfen1.ReadLine mpr1.WriteLine(Textzeile5) Loop Catch ex As Exception MessageBox.Show("Resource nicht gefunden!", "Error") End Try
Das Thema läßt darauf schließen. Fehlerbehandlung musst selbst einbauen, oder Higlav bitten Gruß Peter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Higlav Mitglied Konstrukteur
Beiträge: 8 Registriert: 30.09.2012 Win10 (64-bit) CPU: Intel Core 2 Duo CPU E7500 2.93GHz RAM: 4GB GK: Nvidia GeForce GTX 550 ti
|
erstellt am: 04. Feb. 2014 12:50 <-- editieren / zitieren --> Unities abgeben: Nur für DrCNC
@DrCNC: Du hast also eine Textdatei(*.txt) in die Ressourcen eingebunden und möchtest diese jetzt exportieren, verstehe ich das richtig? Dateien, die du in die Ressourcen abgelegt hast, kannst du mit Code: My.Resources.[DATEINAME]
abgreifen. Bei einer Textdatei kriegst du gleich einen String zurück. Somit wäre dein Anliegen wie folgt lösbar: Code: File.WriteAllText("Pfad zur Datei", My.Resources.Datei)
Wieder mal ungetestet Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DrCNC Mitglied
Beiträge: 96 Registriert: 04.01.2011
|
erstellt am: 04. Feb. 2014 14:56 <-- editieren / zitieren --> Unities abgeben:
Hallo Higlav das Verschlüsseln habe ich nicht weiter verfolgt, da ich es nicht mehr brauche. deinen Code habe ich nicht zum Laufen gebracht (kommt nie in die Schleife) Filepath soll die Resourcedatei "Test.dat", wie spreche ich diese an, mit My.resource.test.dat funktioniert es auch nicht. Nocheinmal, mein Code funktioniert mit externen Dateien einwandfrei nur nicht mit den Resourcendateien danke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Higlav Mitglied Konstrukteur
Beiträge: 8 Registriert: 30.09.2012 Win10 (64-bit) CPU: Intel Core 2 Duo CPU E7500 2.93GHz RAM: 4GB GK: Nvidia GeForce GTX 550 ti
|
erstellt am: 04. Feb. 2014 15:23 <-- editieren / zitieren --> Unities abgeben: Nur für DrCNC
Eine *.dat-Datei? Dann gibt dir der Code: My.Resources.Dateiname
-Befehl ein Byte-Array zurück, das du mit Code: File.WriteAllBytes("Dateipfad", My.Resources.Datei)
abspeichern kannst. Du hast die Resourcedatei schon per Drag&Drop in den Resource-Bereich kopiert, oder? Was für eine Framework-Version? [Diese Nachricht wurde von Higlav am 04. Feb. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Comos User Mitglied
Beiträge: 112 Registriert: 23.03.2010
|
erstellt am: 04. Feb. 2014 15:57 <-- editieren / zitieren --> Unities abgeben: Nur für DrCNC
|
Higlav Mitglied Konstrukteur
Beiträge: 8 Registriert: 30.09.2012 Win10 (64-bit) CPU: Intel Core 2 Duo CPU E7500 2.93GHz RAM: 4GB GK: Nvidia GeForce GTX 550 ti
|
erstellt am: 04. Feb. 2014 16:00 <-- editieren / zitieren --> Unities abgeben: Nur für DrCNC
|
DrCNC Mitglied
Beiträge: 96 Registriert: 04.01.2011
|
erstellt am: 04. Feb. 2014 16:29 <-- editieren / zitieren --> Unities abgeben:
|
Stelli1 Ehrenmitglied Verm.-Ing.
Beiträge: 1521 Registriert: 17.08.2005 Map 2000-2010, Rasterdesign MapGuide 6.5 - 2010 Oracle 9i,10g Enterprise autodesk Topobase 2-2010 VS6, VS.net 2010
|
erstellt am: 04. Feb. 2014 16:36 <-- editieren / zitieren --> Unities abgeben: Nur für DrCNC
Hallo, dann versuch es mal so. Du fügst deine Datei (Extension entfernen) zu den Resourcen dazu. Bei mir ist es eine PNG Datei mit dem Name "Wartung_kl".
Code: Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click ' Ausgabedateiname bestimmen Dim Dateiname As String = System.IO.Path.GetDirectoryName(Application.ExecutablePath) & "\Ausgabe.png" ' Datei erzeugen (Die Resourcedatei hat keine Extension!) My.Computer.FileSystem.WriteAllBytes(Dateiname, My.Resources.wartung_kl, False) ' Datei öffnen Process.Start(Dateiname) End Sub
Wilfried Stelberg ------------------ Warum lisp'eln wenn's auch anders geht. www.ib-stelberg.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Patrick Weber Mitglied Konstruktionstechniker, Admin
Beiträge: 657 Registriert: 20.11.2006
|
erstellt am: 05. Feb. 2014 08:14 <-- editieren / zitieren --> Unities abgeben: Nur für DrCNC
Für was die Datei mit dem SteamReader lesen? Geht doch aus den eingebetteten Ressourcen viel einfacher! Aber in den Ressourcen FileType "Text" nicht vergessen zu setzen. Ich bette so schon geraume Zeit rtf-Dateien für die About-Boxen meiner Programme ein. ------------------ Patrick [Diese Nachricht wurde von Patrick Weber am 05. Feb. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DrCNC Mitglied
Beiträge: 96 Registriert: 04.01.2011
|
erstellt am: 05. Feb. 2014 12:10 <-- editieren / zitieren --> Unities abgeben:
|
DrCNC Mitglied
Beiträge: 96 Registriert: 04.01.2011
|
erstellt am: 05. Feb. 2014 12:19 <-- editieren / zitieren --> Unities abgeben:
|