vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Installer 
Autor: vbtest2
Datum: 30.12.05 19:01

Hall0o,

ich habe einen Installer programmiert, der alle benötigten Dateien in eine einzelne .exe packt.

So werden die Dateien zusammengehängt:

   Sub AllToOne(ByVal Files As String(), ByVal NewFile As String)
        Dim FStrNew, FStr As FileStream
        Dim BRead As BinaryReader
        Dim BWrNew As BinaryWriter
 
        Dim F As String
 
        FStrNew = New FileStream(NewFile, FileMode.Create)
        BWrNew = New BinaryWriter(FStrNew)
 
        Dim intZähler As Integer
 
        For Each F In Files
            intZähler = intZähler + 1
 
            FStr = New FileStream(F, FileMode.Open)
 
            BRead = New BinaryReader(FStr)
 
            If intZähler > 1 Then BWrNew.Write( _
              System.Text.Encoding.Default.GetBytes("@" + _
              intZähler.ToString.Trim + "#"))
            BWrNew.Write(BRead.ReadBytes(FStr.Length))
 
            BRead.Close()
        Next
 
        BWrNew.Close()
Das entpacken klappt auch meist:

 For i = 0 To Files.GetUpperBound(0)                '5 Dateien auslesen
            If i > 0 Then ' next i               'selbstentpacker.exe wird _
              nicht benötigt
                lngDateianfang = strGesamteDatei.IndexOf("@" + (i + _
                1).ToString.Trim + "#") + 3 'Anfang der auszulesenden Datei
                lngDateiEnde = strGesamteDatei.IndexOf("@" + (i + _
                2).ToString.Trim + "#")  'Ende der auszulesenden Datei
 
                If i = Files.GetUpperBound(0) Then lngDateiEnde = _
                  Datei.BaseStream.Length 'Bis Dateiende lesen
 
                Datei.BaseStream.Position = lngDateianfang      'Am Dateianfang 
                ' anfangen
 
                Bytes = Nothing     'Alte Daten löschen, falls vorhanden
                Dim B As Integer = lngDateiEnde - lngDateianfang        'Anzahl 
                ' der zu lesenden Bytes
 
                Bytes = Datei.ReadBytes(B)                  'Bytearray füllen
 
                Dim bw As New BinaryWriter(New IO.StreamWriter(Files( _
                  i)).BaseStream)
 
                bw.Write(Bytes)
                bw.Close()
            End If
        Next i
 
        Datei.Close()
Bei einigen großen Dateien treten aber Fehler auf. Das Problem scheinen wohl die Trennzeichen @1# usw. zu sein. Wie kann ich die Stellen, an denen eine Datei anfängt und aufhört besser ermitteln ?

Gruß,
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Installer1.065vbtest230.12.05 19:01
Re: Installer678vbtricks30.12.05 19:33
Re: Installer653Moderatorralf_oop31.12.05 08:59
Re: Installer753Wolf mit Schnul...31.12.05 11:52
Re: Installer649vbtest202.01.06 17:20
Re: Installer804Wolf mit Schnul...02.01.06 19:11
Re: Installer656vbtest202.01.06 19:44

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel