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

dyn. Array in Datei speichern

dyn. Array in Datei speichern
16.02.2004 11:13:56
ben
Hilfe, wer kann mir dabei helfen ein dyn. Datenfeld auf Platte zu speichern und später wieder einzulesen. Bekomme bei dem unten stehenden code immer wieder die Fehlermeldung "Typen unverträglich" - hmm
Dim AMSKM() As Variant 'Dyn. Feld
-----%<-------schnipp-----
Open "testdatei" For Output As dateinummer
For index1 = 1 To UBound(AMSKM()) - 1
Put "testdatei", index1, AMSKM(index1, 1)
Next index1
Close dateinummer
-----%<-------schnipp-----

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: dyn. Array in Datei speichern
16.02.2004 12:02:51
Andreas Walter
Du hast
Put "testdatei", index1, AMSKM(index1, 1)
Sollte es nicht so heissen
Put dateinummer, index1, AMSKM(index1, 1)
AW: dyn. Array in Datei speichern
16.02.2004 12:16:12
ben
Oh - ein Schritt weiter. Danke vielmals. Jetzt kriege ich die Meldung "falscher Dateimodus". Was stimmt denn jetzt schon wieder nicht? Ich dachte das wär viiieel einfacher..
Open "testdatei" For Output As #dateinummer
For index1 = 0 To UBound(AMSKM())
Put #dateinummer, index1, AMSKM(index1, 1)
Next index1
Close #dateinummer
AW: dyn. Array in Datei speichern
16.02.2004 12:59:51
ben
Mittlerweile hab ich es hinbekommen die Daten mit dem code unten aus dem Array in die Datei einzulesen, aber wie bekomme ich sie nun wieder von der Datei zurück in das Array???
Open "testdatei" For Binary Access Write As #dateinummer
For Index1 = 1 To UBound(AMSKM())
Put #dateinummer, Index1, AMSKM(Index1, 1)
Put #dateinummer, Index1, AMSKM(Index1, 2)
Next Index1
Close #dateinummer
Anzeige
AW: dyn. Array in Datei speichern
16.02.2004 13:10:49
Andreas Walter
Zuerst etwas Grundsätzliches.
Es gibt PRINT und es gibt PUT
Wenn Du schlicht und einfach alles in eine TEXTDATEI rausschreiben möchtest und später aus der TEXTDATEI alles wieder reinlesen möchtest, dann reicht Dir PRINT (und sein Gegenstück INPUT)
Sinn und Zweck von PUT (und sein Gegenstück GET) ist es Daten in einer (wahrscheinlich größeren) Datei zu haben und DIREKT auf einen bestimmten Satz zuzugreifen, ohne alles vorher durchwühlen zu müssen. So eine Art Datenbank (tatsächlich eine indizierte Datei).
Mirscheints, du brauchst nur PRINT und INPUT und ein bisschen Zeit mit der Visual Basic Hilfe, in der es Beispiele gibt
Anzeige
AW: dyn. Array in Datei speichern
16.02.2004 16:22:55
ben
Ohne sehr beleidigend zu sein, hast du mich mit dem letzten Statement nicht schlauer gemacht als ich schon war. Sinn und Zweck meiner Übung war es, eine große Datenmenge, die ich bei verschiedenen Rechenläufen sonst immer wieder erst berechnen müßte, in einer Datei zu speichern, damit ich eben nur beim ersten Rechenlauf warten muss und dann nicht mehr weil das Ergebnis schnell einlesen kann: daher binär. Natürlich könnte ich das auch mit print und input lösen aber das ist weder schnell noch elegant.
AW: dyn. Array in Datei speichern
16.02.2004 17:13:47
Andreas Walter
> Ohne sehr beleidigend zu sein, hast du mich mit dem letzten Statement nicht schlauer gemacht als ich schon war.
Weil man nie weiss, ob der Fragesteller die richtige Frage gestellt hast, lohnt sich manchmal grundsätzliche Fragen zu stellen. Keine Beleidigung gemeint oder empfangen.
> Sinn und Zweck meiner Übung war es, eine große Datenmenge, die ich bei verschiedenen Rechenläufen sonst immer wieder erst berechnen müßte, in einer Datei zu speichern, damit ich eben nur beim ersten Rechenlauf warten muss und dann nicht mehr weil das Ergebnis schnell einlesen kann: daher binär.
OK so dann doch PUT und sein Gegenstück GET
Deine letzte Frage war
> aber wie bekomme ich sie nun wieder von der Datei zurück in das Array???
Mirscheints, du brauchst nur PUT und GET und ein bisschen Zeit mit der Visual Basic Hilfe, in der es Beispiele gibt

Put-Anweisung (Beispiel)
In diesem Beispiel wird die Put-Anweisung verwendet, um Daten in eine Datei zu schreiben. Insgesamt werden fünf Datensätze des benutzerdefinierten Typs Datensatz in die Datei geschrieben.
Type Datensatz ' Datentyp definieren.
Kennung As Integer
Name As String * 20
End Type
Dim DSatz1 As Datensatz DSatzNummer' Variable deklarieren.
' Datei mit wahlfreiem Zugriff öffnen.
Open "DATEI1" For Random As #1 Len = Len(DSatz1)
For DSatzNummer = 1 To 5 ' 5 Schleifendurchläufe.
DSatz1.Kennung = DSatzNummer ' Kennung definieren.
DSatz1.Name = "Name" & DSatzNummer ' Zeichenfolge erstellen.
Put #1, DSatzNummer, DSatz1 ' Datensatz in Datei
' schreiben.
Next DSatzNummer
Close #1 ' Datei schließen.

Get-Anweisung (Beispiel)
In diesem Beispiel wird die Get-Anweisung verwendet, um Daten aus einer Datei in eine Variable einzulesen. In diesem Beispiel wird angenommen, daß DATEI1 eine Datei mit fünf Datensätzen des benutzerdefinierten Typs Datensatz ist.
Type Datensatz ' Datentyp definieren.
Kennung As Integer
Name As String * 20
End Type
Dim DSatz1 As Datensatz, Position ' Variablen deklarieren.
' Beispieldatei mit wahlfreiem Zugriff öffnen.
Open "DATEI1" For Random As #1 Len = Len(DSatz1)
' Beispieldatei mit Get-Anweisung einlesen.
Position = 3 ' Datensatznummer definieren.
Get #1, Position, DSatz1 ' 3. Datensatz lesen.
Close #1 ' Datei schließen.
Oder ein anderer Gedanke.
Wenn ich es richtig verstehe, hast Du eine grosse Datenmenge, die zum ersten Mal berechnet werden muss, und danach nicht wieder berechnet werden muss, weil es schon berechnet wurde.
Vermutlich meinst Du Du hast viele Formeln.
Ersetze die Formeln durch die Werte
Inhalte einfügen/Werte
Dann müssen die Formeln nicht neu berechnet werden und die Werte stehen direkt in der Tabelle.
Und übrigens - von Speed her ist es Jacke wie Hose, wenn Du ALLES wieder einlesen wirst, ob Du (PRINT und INPUT) oder (PUT und GET) benutzst. Speed gewinnst Du nur, wenn Du
Put benutzst und nur ein Teil mit GET wieder einlesen musst.
Anzeige
AW: dyn. Array in Datei speichern
17.02.2004 08:32:00
ben
Moin Andreas,
Das Beispiel war mir aus der Hilfe durchaus geläufig und scheint auch schon anderen in diesem Forum zum Durchbruch verholfen zu haben, bei mir ist das nicht anzuwenden. Ich habe auch nicht viele Formeln (keine einzige), sondern einfach nur ein 3D Feld was so ungefähr 800x1000x3 groß ist. Wenn ich das mit print und input machen würde, dauert das zu lange, da keine möglichkeit zum indizieren. Deshalb meine totale Frustration, weil sich das in der Hilfe so einfach anhört mit Get/Put Felder einfach auf Platte ein- und auslesen - piepeinfach hahaha.
AW: dyn. Array in Datei speichern
17.02.2004 09:51:15
Andreas Walter
Möchtest Du geholfen werden?
Oder willst Du nur rummosern?
Du sagst
> Das Beispiel war mir aus der Hilfe durchaus geläufig
Toll! Vielleicht hättest Du es sagen können, was Du weisst und was Du probiert hast, damit Antworten auf Deinen Fragen nicht mit Sätzen wie
> Ohne sehr beleidigend zu sein, hast du mich mit dem letzten Statement nicht schlauer gemacht als ich schon war.
von Dir beantwortet werden.
Dank mal über den Satz nach.
Wenn ich sagen würde: "Ohne sehr frech zu sein..." bedeutet das, dass ich frech bin und hoffe nicht zu frech zu sein. Ungemünzt auf Deinen Satz...
Jetzt in Deinem 5. Posting rückst Du erst raus mit der Tatsache, dass Du keine Formeln sondern nur ein 3D Feld hast. Aber vorher hast Du gesagt
> Sinn und Zweck meiner Übung war es, eine große Datenmenge, die ich bei verschiedenen Rechenläufen sonst immer wieder erst berechnen müßte
Wie reimt sich das zusammen.
Bedaure - ich weiß nicht was ein 3D Feld ist. Ich weiss nicht was Du versuchst zu machen. Ich weiss auch nicht warum, (weil es dann vielleicht eine komplett andere Lösung geben könnte.)
Sorry.
Anzeige
AW: dyn. Array in Datei speichern
17.02.2004 10:21:32
ben
hast wahrscheinlich recht. Will auch nicht meckern. Bin das erste mal hier in dem Forum aktiv. Hab jetzt einen zweiten Versuch gestartet, dann wirds hoffentlich besser, weil auch konkreter ...
Gruß
Martin

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige