Hot News:

Unser Angebot:

  Foren auf CAD.de
  VBasic / vb.net / vbs / wsh
  Wie kann ich eine Datei in einem VB.Net Projekt ablegen (My.Resources)

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
Autor Thema:  Wie kann ich eine Datei in einem VB.Net Projekt ablegen (My.Resources) (2836 mal gelesen)
tomtom1972
Mitglied
dipl ing maschinenbau


Sehen Sie sich das Profil von tomtom1972 an!   Senden Sie eine Private Message an tomtom1972  Schreiben Sie einen Gästebucheintrag für tomtom1972

Beiträge: 608
Registriert: 22.03.2005

CATIA V5 R05>R32 (64bit)

erstellt am: 12. Dez. 2007 08:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,
ist es möglich mehrere Dateien (z.B. pdf Dokumente) so in ein VB.Net (2005) Projekt zu integrieren, dass sie nach dem Verteilen und Installieren der Setup.exe verwendet / geöffnet werden können? Also völlig unabhängig von einem definierten Speicherort? (Die Dateien sollen sozusagen im VB.Net Projekt gespeichert werden).
Geht das mit Hilfe von My.Resources? Oder kann ich da nur Bilder ablegen?
Falls das geht, weiß jemand wie? Ich bekomme es nicht hin.
Danke für jede Hilfestellung.
Gruß TomTom

------------------
tomtom1972

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tbd
Moderator
Teamleiter


Sehen Sie sich das Profil von tbd an!   Senden Sie eine Private Message an tbd  Schreiben Sie einen Gästebucheintrag für tbd

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600

erstellt am: 12. Dez. 2007 10:04    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für tomtom1972 10 Unities + Antwort hilfreich

Hallo TomTom,

ich kann mir persönlich zwar keinen Grund vorstellen, welcher es nötigt macht, eine PDF Datei in ein Projekt zu integrieren, aber was solls.
Ich habe mir bei einer XML Datei mal so geholfen:

  • XML Datei in die Ressourcen gespeichert.
  • Über My.Resources.XMLDatei den Inhalt (String) der Datei gelesen.
  • Diesen String mit Hilfe von System.IO.FileStream Temporär als XML Datei gespeichert.
  • Mit der Temporären XML Datei gearbeitet und anschließend gelöscht.

Bei einer PDF Datei bekommst du mit My.Resources.PDFDatei keinen String sondern ein Byte Array, welches du aber ähnlich verwenden kannst.

Noch ein Vorschlag, ist es nicht evtl. sinnvoller die PDF als eigenständige Datei deinem Projekt hinzuzufügen?
Dann könntest du die PDF Datei immer mit Hilfe von z.B. My.Application.Info.DirectoryPath lokalisieren.

------------------
Mfg Daniel

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tomtom1972
Mitglied
dipl ing maschinenbau


Sehen Sie sich das Profil von tomtom1972 an!   Senden Sie eine Private Message an tomtom1972  Schreiben Sie einen Gästebucheintrag für tomtom1972

Beiträge: 608
Registriert: 22.03.2005

erstellt am: 12. Dez. 2007 10:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo tbd,

vielen Dank für deine Antwort. Das pdf Dokument war nur ein Beispiel; es geht mir darum, Dateien so im VB Projekt abzulegen, das sie nicht geöffnet werden können.
Ein Beispiel:
Mit einem .Net Script sollen in CATIA V5 PowerCopies ausgeführt werden, d.h. es wird eine Art Startmodell (die PowerCopy eben) geöffnet, dort werden zuvor definierte Referenzelemente durch Verlinkung mit neuen Objekten ersetzt und das ganze als neues Modell (.CATPart) gespeichert. In der PowerCopy befindet sich nun jede Menege Know-How (Rules, Reactions etc.), welches nur beim Instanzieren (also dem Referenz wechseln) selbst benötigt wird und im endgültigen Modell nicht mehr vorhanden ist. Ich möchte verhindern, das jemand diese Modelle öffnen kann. Dies ist aber immer möglich, sobald ich sie irgendwo hin speichere, da CATIA V5 selbst keine Möglichkeit bietet um das zu verhindern . Der bisher (VB6.0) "sichere" Weg war immer, alle Objekte (Geometrie, Rules etc.) selbst mittels Script zu erzeugen. Ab einer bestimmten Komplexität ist das allerdings nicht mehr möglich.
Wir steigen Momentan auf .Net um und in diesem Zusammenhang habe ich eben von der Möglichkeit gehört, Dateien im "Projekt" abzulegen (so das sie lokal nicht mehr als eigenständige Datei aufzufinden sind). Mein Problem mit der My.Resource ist/war nun, das ich immer ein (Byte)Array zurückbekommen habe.
Nochmals Danke für deine Antwort. Ich werde es testen, das Array wieder in eine (temoräre) native Datei umzuwandeln.

Danke und Gruß

TomTom

------------------
tomtom1972

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tomtom1972
Mitglied
dipl ing maschinenbau


Sehen Sie sich das Profil von tomtom1972 an!   Senden Sie eine Private Message an tomtom1972  Schreiben Sie einen Gästebucheintrag für tomtom1972

Beiträge: 608
Registriert: 22.03.2005

CATIA V5 R05>R32 (64bit)

erstellt am: 12. Dez. 2007 12:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo tbd,

noch eine Frage zu deinem Vorschlag, die Datei als eigenständige Datei dem Projekt hinzuzufügen. Das habe ich nun getestet. Dabei habe ich das Problem, dass das ganze nur so lange funktioniert, solange ich das Script/Programm in meiner Entwicklungsumgebung (Visual Studio) ablaufen lasse. Publiziere ich das VB-Projekt und installierte es auf einem anderen PC, so wird die Datei (z.B. das pdf) über My.Application.Info.DirectoryPath nicht mehr gefunden, da der Setup die Datei nicht in den Zielordner der Installation ( = My.Application.Info.DirectoryPath) mitkopiert. Was mache ich falsch?
Gruß TomTom

------------------
tomtom1972

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tbd
Moderator
Teamleiter


Sehen Sie sich das Profil von tbd an!   Senden Sie eine Private Message an tbd  Schreiben Sie einen Gästebucheintrag für tbd

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600

erstellt am: 12. Dez. 2007 12:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für tomtom1972 10 Unities + Antwort hilfreich

Hallo TomTom,

du musst die Datei auch in dein Setup Projekt hinzufügen. Das macht Visual Studio leider nicht automatisch.
Also einfach die Datei in den Anwendungsordner des Setups hinzufügen.

------------------
Mfg Daniel

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tomtom1972
Mitglied
dipl ing maschinenbau


Sehen Sie sich das Profil von tomtom1972 an!   Senden Sie eine Private Message an tomtom1972  Schreiben Sie einen Gästebucheintrag für tomtom1972

Beiträge: 608
Registriert: 22.03.2005

erstellt am: 12. Dez. 2007 14:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo tbd,

d.h. also ich muss die Datei auf ein bestimmtes Verzeichnis auf dem Zielcomputer verweisen?
Es funktioniert nicht nach dem Prinzip "egal wohin, Hautsache da, wo das Script selbst installiert wird"?

Und: Ich vermute, ich mache grundsätzlich etwas falsch.
Ich habe (um bei dem pdf zu bleiben) selbiges im Projektmappen-Explorer über > Hinzufügen > vorhandenes Element direkt in den Tree zugefügt (so wie beispielsweise eine Form). Wie komme ich nun an den in deinem Link aufgeführten Editor? Den finde ich nicht. Wenn ich auf das pdf klicke (Rechte Maustase) finde ich da keinen Editor. Auch nicht über das Menü "Ansicht".
Was mache ich falsch?

Gruß TomTom

------------------
tomtom1972

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tbd
Moderator
Teamleiter


Sehen Sie sich das Profil von tbd an!   Senden Sie eine Private Message an tbd  Schreiben Sie einen Gästebucheintrag für tbd

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600

erstellt am: 12. Dez. 2007 14:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für tomtom1972 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von tomtom1972:
d.h. also ich muss die Datei auf ein bestimmtes Verzeichnis auf dem Zielcomputer verweisen?
Es funktioniert nicht nach dem Prinzip "egal wohin, Hautsache da, wo das Script selbst installiert wird"?

Wenn du deine Datei in den Projektmappen-Explorer hinzufügst und die Eigenschaft "In Ausgabeverzeichnis kopieren" auf "Kopieren, wenn neuer" im Eigenschaftsfenster einstellst, dann ist deine Datei bei Erstellen und Testen deiner Anwendung immer dort wo du sie erwartest, also im Ausgabeverzeichnis (bin\Debug oder bin\Release).
Wenn du diese Datei in den Anwendungsordner (ist gleich Ausgabeverzeichnis) des Setup hinzufügst, dann ist die Datei auch bei einer Installation immer dort wo du sie erwartest.

Den Anwendungsordner (Ausgabeverzeichnis) ermittelst du in deiner Anwendung, wie bereits erwähnt, mit Hilfe der Eigenschaft "My.Application.Info.DirectoryPath".

Wenn du möchtest kannst du die Datei jedoch temporär mit Hilfe des Byte Arrays speichern und darauf verwenden. Dieses kannst du mit Hilfe der Stream-Klasse und den Methoden Read und Write realisieren.

Zitat:
Original erstellt von tomtom1972:
Wie komme ich nun an den in deinem Link aufgeführten Editor?

Leider weis ich nicht was du für einen Editor meinst. Einen Editor für das bearbeiten einer PDF Datei gibt es in Visual Studio nicht.

------------------
Mfg Daniel

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tomtom1972
Mitglied
dipl ing maschinenbau


Sehen Sie sich das Profil von tomtom1972 an!   Senden Sie eine Private Message an tomtom1972  Schreiben Sie einen Gästebucheintrag für tomtom1972

Beiträge: 608
Registriert: 22.03.2005

erstellt am: 12. Dez. 2007 14:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

ich meinte den Datei-System Editor (was immer das sein soll).
zitat aus deinem o.g. Link (MSN):
"Wählen Sie im Projektmappen-Explorer ein Bereitstellungsprojekt aus, zeigen Sie im Menü Ansicht auf Editor, und klicken Sie dann auf Dateisystem, um den Dateisystem-Editor zu öffnen."
Den Editor(?) finde ich nicht.
Gruß TomTom

------------------
tomtom1972

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tbd
Moderator
Teamleiter


Sehen Sie sich das Profil von tbd an!   Senden Sie eine Private Message an tbd  Schreiben Sie einen Gästebucheintrag für tbd

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600

erstellt am: 12. Dez. 2007 14:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für tomtom1972 10 Unities + Antwort hilfreich


Setup-Dateisystem.jpg

 
In einem markierten Setup-Projekt (im Projektmappen-Explorer) kannst du oberhalb im Projektmappen-Explorer den Dateisystem-Editor öffnen, mit welchem du die Dateien deines Setup-Projekts verlegen kannst.

------------------
Mfg Daniel

   

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tomtom1972
Mitglied
dipl ing maschinenbau


Sehen Sie sich das Profil von tomtom1972 an!   Senden Sie eine Private Message an tomtom1972  Schreiben Sie einen Gästebucheintrag für tomtom1972

Beiträge: 608
Registriert: 22.03.2005

erstellt am: 12. Dez. 2007 15:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo tbd,

nochmals Danke für deine Hilfe an dieser Stelle.

 

Zitat:
Wenn du möchtest kannst du die Datei jedoch temporär mit Hilfe des Byte Arrays speichern und darauf verwenden

Das versuche ich nun gerade.

Dim atest As Array = My.Resources.TestDatei
Dim fileName As String = IO.Path.GetTempFileName
Dim fs As New IO.FileStream(fileName, FileMode.Create)

...???...

Wie bekomme ich nun den Inhalt des Byte Arrays so in die Datei (fs), das wieder ein pdf (um bei dem Bsp zu bleiben) daraus wird.

fs.Read() bezieht sich scheinbar nur auf Bytes (nicht Arrays), jedenfalls bekomme ich diese Fehlermeldung:
Das Objekt des Typs System.Byte kann nicht in Typ System.Byte[] umgewandelt werden.

Danke und Gruß TomTom


------------------
tomtom1972

[Diese Nachricht wurde von tomtom1972 am 12. Dez. 2007 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tbd
Moderator
Teamleiter


Sehen Sie sich das Profil von tbd an!   Senden Sie eine Private Message an tbd  Schreiben Sie einen Gästebucheintrag für tbd

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600

erstellt am: 12. Dez. 2007 16:05    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für tomtom1972 10 Unities + Antwort hilfreich

Hallo TomTom,

um eine PDF Datei zu erzeugen musst du auf die richtige Extension achten. Also nicht eine *.tmp Datei sondern eine *.pdf im Temporärem Verzeichnis (System.IO.Path.GetTempPath) erstellen.

Ich habe die genaue Vorgehensweise auch nicht mehr im Kopf, jedoch bin ich mir ziemlich sicher das du mit einem Stream Objekt (welches weis ich nicht) arbeiten musst (siehe Beitrag oben).
Schau mal ob du hier evtl. mehr findest.

------------------
Mfg Daniel

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tomtom1972
Mitglied
dipl ing maschinenbau


Sehen Sie sich das Profil von tomtom1972 an!   Senden Sie eine Private Message an tomtom1972  Schreiben Sie einen Gästebucheintrag für tomtom1972

Beiträge: 608
Registriert: 22.03.2005

erstellt am: 13. Dez. 2007 07:53    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo tbd,

genau das war das Problem: die Endung .tmp des neu erzeugten files.
Nochmals Besten Dank für deine Hilfe und abschliessend noch mal eine Zusammenfassung für alle, die einmal das selbe Problem haben sollten:

Beschreibung: Datei in ein .NET Projekt integrieren (ohne das sie irgendwo mit Pfadangabe auftaucht).

Im Projektmappen-Explorer den Root-Knoten selektieren und über das Menü Projekt > Vorhandenes Element zufügen eine Datei in den den Tree zufügen

Code:

'####################################################################

Dim sTargetFolder, FileNameWithoutExtension, FileNameWithExtension as String
Dim aByte() As Byte = My.Resources.FileNameWithoutExtension
Dim sFile As String = sTargetFolder & "\" & FileNameWithExtension
Dim fs As New IO.FileStream(sFile, FileMode.Create)
fs.Write(aByte, 0, aByte.Length)
fs.Close()

'####################################################################

Gruß TomTom

------------------
tomtom1972

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz