Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
568to572
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
568to572
568to572
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Lange Data Listen...

Lange Data Listen...
15.02.2005 22:54:37
Norman
Hallo alle,
ich hatte schonmal in der Liste gefragt, ob es möglich ist, Binärdateien in Excel abzulegen (ja) und sie dann wieder auf Platte zu speichern. Letzteres ging nicht. Deshalb habe ich mich entschlossen, die Binärdatei in einem Array abzulegen, so ala
Dim varDaten As Long
varDaten1 = Array( 1, 2, 3, 5, 11, 4 _
....
)
Insgesamt will ich so ca. 20.000 Bytes (also 20.000 Zahlen) ablegen. Klar ist das viel, einen besseren Weg habe ich aber net. Leider meckert Excel immer wenn die Zeile größer 1024 Bytes ist oder ich zu viele Zeilenverbinder (also den Underscore _ ) nutze. Und ich habe irgendwie keine Lust 20 Arrays daraus zu machen. Gibt's nicht irgendeine chice Lösung für meine 20 Kb Daten? Das muss man doch schön in VBA ablegen können... Wenn mir nichts mehr einfällt, dann pack ichs einfach in ein Excel-Sheet, aber ich hätts so gerne in VBA gehabt....
Jemand ne Idee?
Beste Grüße und Danke
Norman

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Lange Data Listen...
bst
Morgen Norman,
&gt ich hatte schonmal in der Liste gefragt, ob es möglich ist, Binärdateien in Excel
&gt abzulegen (ja) und sie dann wieder auf Platte zu speichern.
&gt Letzteres ging nicht
Warum ?
Nimm Get und Put. Siehe VBA Hilfe (mit Beispiel) hierzu.
Oder google mal nach VBA binaer.
cu, Bernd
AW: Lange Data Listen...
16.02.2005 14:05:15
Norman
Hi Bernd,
klar, get und put macht das was ich will. Mir geht's aber darum, wie ich eine 20Kb große Datei in einer xls-Datei ablegen kann und sie zu einem späteren Zeitpunkt (mit put) wieder auf die Platte zurüschreiben kann.
Google VBA binaer hat mir da nichts gebracht.
Gruß
Norman
Anzeige
AW: Lange Data Listen...
bst
Hmm,
dann versuch halt mal sowas. Ist sich ziemlich ungetestet.
Liest einfach die Binärdaten ein und schreibt ihren Code (0..255) in eine Zelle.
Je 256 Mal pro Zeile. Das Schreiben funktioniert analog.
Wozu auch immer dieses gut sein soll ...
HTH, Bernd
--
Option Explicit
Const fname As String = "D:\temp\test.bin"

Sub ReadIt()
Dim i As Long, j As Integer, xlen As Long
Dim arr(1 To 256) As Byte
Open fname For Binary Access Read As #1
xlen = LOF(1) Mod 256 ' der Rest am Ende
While Not EOF(1)
i = i + 1
Get #1, , arr
For j = 1 To 256
Cells(i, j).Value = arr(j)
Next
Wend
If xlen <> 0 Then Range(Cells(i, xlen + 1), Cells(i, 256)).Clear
Close #1
End Sub


Sub WriteIt()
Dim i As Long, j As Integer, maxj As Integer
Dim arr() As Byte
If Dir(fname) <> "" Then Kill fname
ReDim arr(1 To 256)
Open fname For Binary Access Write As #1
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row - 1
For j = 1 To 256
arr(j) = Cells(i, j)
Next
Put #1, , arr
Next
' Letzte Zeile speziell behandeln
maxj = IIf(Cells(i, 256) = "", Cells(i, 256).End(xlToLeft).Column, 256)
ReDim arr(1 To maxj)
For j = 1 To maxj
arr(j) = Cells(i, j)
Next
Put #1, , arr
Close #1
End Sub

Anzeige
AW: Lange Data Listen...
16.02.2005 18:54:40
Norman
Hi Bernd,
ja, cool, so in etwa hatte ichs mir gedacht. Das kann ich auf alle Fälle benutzen.
"Wozu auch immer dieses gut sein soll ..." - Nuja, ich will eben keine gesonderte Datei beilegen, sondern alles in einer Datei haben. In den 20Kb steckt eine Exe, die vor dem Speichern noch verändert werden soll. Und Deine Lösung ist genau der Weg das zu machen :)
Gruß und Danke!
Norman
Gruß & Bitteschön OwT
bst
.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige