Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Feenfleisch
Anmeldungsdatum: 11.08.2005 Beiträge: 15
|
Verfasst am: 15.11.2006, 13:53 Titel: komplette felder mit get speichern? |
|
|
hallo,
ich habe ein ziemlich großes eindimensionales feld erzeugt was ich gern mit put in eine datei packen würde. problem dabei ist, das ich es gern an einem stück hätte d.h nicht mit ner schleife und jedes feld einzeln. ist das irgendwie möglich?
kann mir da vielleicht jemand helfen? danke im voraus. |
|
Nach oben |
|
 |
The real Agent D

Anmeldungsdatum: 24.11.2005 Beiträge: 605 Wohnort: Hall i. T.
|
Verfasst am: 15.11.2006, 15:43 Titel: |
|
|
Das kann man mit BSAVE und BLOAD lösen, nich mit put.
Speichern:
Code: |
BASVE "dateiname", addressedesquellarrays, größedesquellarrays
|
Laden:
Code: |
BLOAD "dateiname", addressedeszielarrays, größedeszielarrays
|
|
|
Nach oben |
|
 |
Feenfleisch
Anmeldungsdatum: 11.08.2005 Beiträge: 15
|
Verfasst am: 15.11.2006, 16:48 Titel: |
|
|
danke schön. werde ich probieren. |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 15.11.2006, 22:05 Titel: |
|
|
du kannst auch die größe des arrays mittels UBOUND und LBOUND ermitteln, wenn Bsave nicht funzt. etwa so:
Code: |
mini = LBOUND(deinarray())
maxi = UBOUND(deinarray())
for element = mini to maxi
put #1, deinarray(element)
next
|
_________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 16.11.2006, 12:43 Titel: |
|
|
Hi,
die BSAVE, BLOAD - Methode ist ja sehr elegant aber auch kompliziert. FB-manual hat Folgendes geschrieben: | Declare Function Bsave ( Byref filename As String , Byval addr As Any Ptr , Byval size As Integer = 0 ) As Integer
..
size of the data block to be saved, in bytes | Also erst mal errechnen wieviel Byte das zu speichernde Feld hat!
Code: | Dim Feld (1 to 100) AS Datatyp
BSAVE "Dateiname", @Feld(), sizeof(Feld(), Datatyp)*UBOUND(Feld()) |
Und bei BLOAD, was mach ich da??
Da mache ich es lieber wie Jojo vorgeschlagen hat.
Zusätzlich speicher ich am Anfang die Anzahl (maxi - mini + 1), das erleichtert das einlesen des Feldes.
EDIT/ danke Mao _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Zuletzt bearbeitet von volta am 16.11.2006, 15:27, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 16.11.2006, 15:17 Titel: |
|
|
Nur 'ne kleine Korrektur.
Statt:
Code: |
Dim Feld (1 to 100) AS Datatyp
BSAVE "Dateiname", @Feld(), sitzof(Feld(), Datatyp)*UBOUND(Feld())
|
Empfiehlt sich doch lieber
Code: |
Dim Feld (1 to 100) AS Datatyp
BSAVE "Dateiname", @Feld(), sizeof(Feld(), Datatyp)*UBOUND(Feld())
|
 _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
ebrady
Anmeldungsdatum: 06.07.2005 Beiträge: 45
|
Verfasst am: 16.11.2006, 17:21 Titel: |
|
|
Ich dachte, man kann auch komplette arrays per put einfach so im Binary-Modus speichern? Bin mir ziemlich sicher, das mal so gemacht zu haben. |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 17.11.2006, 23:36 Titel: |
|
|
ich glaub das geht, in vb gehts glaub ich nicht, dafür in qb...wie isses in fb? _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Lutz Ifer Grillmeister

Anmeldungsdatum: 23.09.2005 Beiträge: 555
|
Verfasst am: 18.11.2006, 00:02 Titel: |
|
|
dim as ubyte feld (0 to viel)
open datei for binary as #1
put #1,1,feld()
funktioniert in fb bestens.
Gruß
Lutz Ifer _________________ Wahnsinn ist nur die Antwort einer gesunden Psyche auf eine kranke Gesellschaft. |
|
Nach oben |
|
 |
|