vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 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

Suche Visual-Basic Code
Re: datei splitten 
Autor: ModeratorDieter (Moderator)
Datum: 20.04.02 17:47

Hi Insider,

das geht über den Binary-Mode, d.h. Du öffnest die Datei mit Open ... For Binary und liest eine bestimmte Anzahl Bytes, die Du dann in eine neue Datei speicherst.

Das ganze mal als praktisches Beispiel:
<code><font color=green>' Datei splitten</font>
 
<font color=#000099>Public</font> <font color=#000099>Function</font> _
  File_Split(<font color=#000099>ByVal</font> sFileToSplit <font _
  color=#000099>As</font> <font color=#000099>String</font>, _
  <font color=#000099>ByVal</font> sPath <font color=#000099>As</font> <font _
  color=#000099>String</font>, <font color=#000099>ByVal</font> lMaxSize <font _
  color=#000099>As</font> <font color=#000099>Long</font>) <font _
  color=#000099>As</font> <font color=#000099>Boolean</font>
 
  <font color=#000099>Dim</font> F <font color=#000099>As</font> <font _
    color=#000099>Integer</font>
  <font color=#000099>Dim</font> N <font color=#000099>As</font> <font _
  color=#000099>Integer</font>
  <font color=#000099>Dim</font> iFile <font color=#000099>As</font> <font _
  color=#000099>Integer</font>
  <font color=#000099>Dim</font> sFile <font color=#000099>As</font> <font _
  color=#000099>String</font>
  <font color=#000099>Dim</font> lBytesRead <font color=#000099>As</font> <font _
  color=#000099>Long</font>
  <font color=#000099>Dim</font> lBytesTotal <font color=#000099>As</font> _
  <font color=#000099>Long</font>
  <font color=#000099>Dim</font> lBytesToRead <font color=#000099>As</font> _
  <font color=#000099>Long</font>
  <font color=#000099>Dim</font> lBytesWritten <font color=#000099>As</font> _
  <font color=#000099>Long</font>
  <font color=#000099>Dim</font> bNewFile <font color=#000099>As</font> <font _
  color=#000099>Boolean</font>
  <font color=#000099>Dim</font> sInhalt <font color=#000099>As</font> <font _
  color=#000099>String</font>
 
  <font color=green>' maximale Größe, die auf einen Schlag gelesen wird</font>
  <font color=#000099>Const</font> lBytesBlock <font color=#000099>As</font> _
    <font color=#000099>Long</font> = 32767
 
  <font color=green>' Orginaldatei im Binärmodus öffnen</font>
  F = FreeFile: <font color=#000099>Open</font> sFileToSplit <font _
    color=#000099>For</font> <font color=#000099>Binary</font> <font _
    color=#000099>As</font> #F
 
  <font color=green>' Neuer Dateinamen</font>
  <font color=green>' dateiname.000, dateiname.001 usw.</font>
  sFile = sFileToSplit
  <font color=#000099>If</font> InStr(sFile, "\") > 0 <font _
    color=#000099>Then</font> _
    sFile = Mid$(sFile, InStrRev(sFile, "\") + 1)
  <font color=#000099>If</font> InStr(sFile, ".") > 0 <font _
    color=#000099>Then</font> _
    sFile = Left$(sFile, InStrRev(sFile, ".") - 1)
 
  <font color=green>' Pfadangabe auf abschließenden Backslash prüfen</font>
  <font color=#000099>If</font> Right$(sPath, 1) <> "\" <font _
    color=#000099>Then</font> sPath = sPath & "\"
 
  <font color=green>' Größe der Originaldatei ermitteln</font>
  lBytesTotal = LOF(F)
 
  <font color=green>' Datei einlesen:</font>
  <font color=green>' solange gelesen Bytes < Gesamtgröße</font>
  bNewFile = <font color=#000099>True</font>: iFile = -1
  <font color=#000099>Do</font> <font color=#000099>While</font> lBytesRead < _
    lBytesTotal
    <font color=green>' Anzahl zu lesender Bytes</font>
    lBytesToRead = lBytesBlock
 
    <font color=green>' Falls weniger Bytes zu lesen sind (Dateiende)</font>
    <font color=#000099>If</font> lBytesRead + lBytesToRead > lBytesTotal <font _
      color=#000099>Then</font>
      lBytesToRead = lBytesTotal - lBytesRead
    <font color=#000099>End</font> <font color=#000099>If</font>
 
    <font color=green>' Prüfen, ob maximale Teilgröße erreicht wird</font>
    <font color=#000099>If</font> lBytesWritten + lBytesToRead > lMaxSize <font _
      color=#000099>Then</font>
      lBytesToRead = lMaxSize - lBytesWritten
    <font color=#000099>End</font> <font color=#000099>If</font>
    <font color=#000099>If</font> <font color=#000099>Not</font> bNewFile <font _
      color=#000099>Then</font> bNewFile = (lBytesToRead = 0)
 
    <font color=green>' neue Datei öffnen</font>
    <font color=#000099>If</font> bNewFile <font color=#000099>Then</font>
      <font color=green>' ggf. vorige Datei scließen</font>
      iFile = iFile + 1
      <font color=#000099>If</font> N > 0 <font color=#000099>Then</font> <font _
        color=#000099>Close</font> #N
      N = FreeFile
      <font color=#000099>Open</font> sPath & sFile & "." & Format$(iFile, _
        "000") _
        <font color=#000099>For</font> <font color=#000099>Output</font> <font _
        color=#000099>As</font> #N
      lBytesWritten = 0
      bNewFile = <font color=#000099>False</font>
    <font color=#000099>End</font> <font color=#000099>If</font>
 
    <font color=green>' Inhalt lesen + speichern</font>
    <font color=#000099>If</font> lBytesToRead > 0 <font _
      color=#000099>Then</font>
      sInhalt = Space$(lBytesToRead)
      <font color=#000099>Get</font> #F, , sInhalt
      <font color=#000099>Print</font> #N, sInhalt;
 
      <font color=green>' Anzahl gelesener + geschriebener Bytes</font>
      <font color=green>' aktualisieren</font>
      lBytesRead = lBytesRead + lBytesToRead
      lBytesWritten = lBytesWritten + lBytesToRead
    <font color=#000099>End</font> <font color=#000099>If</font>
  <font color=#000099>Loop</font>
 
  <font color=green>' alle Dateien schließen</font>
  <font color=#000099>If</font> F > 0 <font color=#000099>Then</font> <font _
    color=#000099>Close</font> #F
  <font color=#000099>If</font> N > 0 <font color=#000099>Then</font> <font _
  color=#000099>Close</font> #N
<font color=#000099>End</font> <font color=#000099>Function</font></code>
Aufruf der Funktion::
File_Split "Originaldatei.exe", "d:	emp\", 1440000
Cu
Dieter
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
datei splitten83der Insider20.04.02 15:37
Re: datei splitten304ModeratorDieter20.04.02 17:47
datei zusammenfügen?43der Insider26.04.02 16: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