Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
748to752
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
748to752
748to752
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Nicht ASCII-Datei splitten ?

Nicht ASCII-Datei splitten ?
28.03.2006 19:38:22
Joachim
Hallo,
ich muss eine Datei (nicht ASCII !) in kleinere Teile zerlegen.
Irgendwie komme ich da nicht weiter. Nachfolgend mein erster Versuch, die Datei von A nach B zu kopieren (noch ohne Splitting); dies funktioniert, da der Buffer aber nur Byte-Größe hat, dauert das bei größeren Dateien ewig.
Wie kann ich das am elegantesten lösen?
Leider gibt es nur wenige Tipps zu BINARY!
ThanX vorab !
Sub DateiSplit()
FileToOpen = Application.GetOpenFilename("Text Files (*.*), *.*")
If FileToOpen False Then
SourceFileName = Dir(FileToOpen)
SourceFileNameoExt = Left(SourceFileName, InStr(SourceFileName, ".") - 1)
SourceFileDir = Left(FileToOpen, Len(FileToOpen) - Len(Dir(FileToOpen)))
FileToSave = SourceFileDir & "Split_" & SourceFileName
OpenFileNr = FreeFile
Open FileToOpen For Binary Access Read As #OpenFileNr
SaveFileNr = FreeFile
Open FileToSave For Binary Access Write As #SaveFileNr
For ActPos = 1 To FileLen(FileToOpen)
Get #OpenFileNr, , Buffer
Put #SaveFileNr, ActPos, Buffer
Next ActPos
Close #SaveFileNr
Close #OpenFileNr
End If

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nicht ASCII-Datei splitten ?
28.03.2006 19:42:32
MichaV
Hallo,
es sieht so aus, als ob Du die Datei kopierst, und nicht splittest. Aber egal.
da der Buffer aber nur Byte-Größe hat, dauert das bei größeren Dateien ewig
...die Puffergröße änderst Du mit
Buffer=Space(Lof(FileToOpen))
Dann landet mit der Get- Anweisung die gesamte Datei im Puffer.
Gruß- Micha
PS: Rückmeldung wäre nett.
AW: Nicht ASCII-Datei splitten ?
28.03.2006 19:48:36
Joachim
Korrekt, zur Zeit kopiere ich nur.
Ich will ja erstmal sehen, ob die Datei korrekt kopiert wird, bevor ich mit dem splitten anfange .
Ich probiere das gleich mal aus. ThanX erstmal!
Gibt es bei der Puffergröße eine Größenbeschränkung?
Anzeige
AW: Nicht ASCII-Datei splitten ?
28.03.2006 19:50:53
MichaV
Hallo,
ich denke, Du kannst einen ganzen String damit füllen. Also 2GB.
Gruß- Micha
AW: Nicht ASCII-Datei splitten ?
28.03.2006 19:59:17
Joachim
2GB hört sich doch erstmal gut an ! ... Muss dennoch splitten ;-(
Ich bekomme immer "Typen unverträglich"
(For-Next ist erstmal draussen)
Welchen Typ muss ich jetzt für Buffer einrichten?
Was trage ich bei ActPos ein (Stelle bei GET und PUT) ?
AW: Nicht ASCII-Datei splitten ?
28.03.2006 20:11:40
MichaV
Hallo,
Funktionsprinzip ist so:

Sub test()
Dim Buffer As String
Dim i%, x%
Open "E:\Micha\Excel\suchtext.txt" For Binary As #1
Open "E:\Micha\Excel\1.txt" For Binary As #2
Open "E:\Micha\Excel\2.txt" For Binary As #3
Buffer = Space(LOF(1))
Get #1, , Buffer
'nur Idee, nicht 1:1 nachbauen!
For i = 1 To LOF(1) Step 2
x = x + 1
Put #2, x, Mid(Buffer, i, 1)
Put #3, x, Mid(Buffer, i + 1, 1)
Next i
Close
End Sub

Damit bekomme ich aus einer 8KB- Datei zwei 4KB- Dateien. Aber Dir ist schon klar, dass Du Dir damit ganz schnell alle Daten zerschießen kannst?
Gruß- Micha
PS: Rückmeldung wäre nett.
Anzeige
AW: Nicht ASCII-Datei splitten ?
28.03.2006 20:32:37
Joachim
Wo siehst Du die Gefahren, dass ich die Dateien zerschieße?
Zumindest die Quell-Dateien werde ich mit ACCESS READ öffnen. Da kann ja erstmal nix passieren!
AW: Nicht ASCII-Datei splitten ?
28.03.2006 20:42:17
MichaV
Hallo,
wenn Du die Datei an irgendeiner Stelle trennst, zerreißt Du damit ggf. zusammengehörige Daten und kannst damit unter Umständen die gesamte Datenstruktur verlieren.
https://www.herber.de/forum/archiv/704to708/t706533.htm#706773
Gruß- Micha
PS: Rückmeldung wäre nett.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige