Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

komplette felder mit get speichern?

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Feenfleisch



Anmeldungsdatum: 11.08.2005
Beiträge: 15

BeitragVerfasst am: 15.11.2006, 13:53    Titel: komplette felder mit get speichern? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
The real Agent D



Anmeldungsdatum: 24.11.2005
Beiträge: 605
Wohnort: Hall i. T.

BeitragVerfasst am: 15.11.2006, 15:43    Titel: Antworten mit Zitat

Das kann man mit BSAVE und BLOAD lösen, nich mit put. zwinkern

Speichern:
Code:

BASVE "dateiname", addressedesquellarrays, größedesquellarrays

Laden:
Code:

BLOAD "dateiname", addressedeszielarrays, größedeszielarrays
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Feenfleisch



Anmeldungsdatum: 11.08.2005
Beiträge: 15

BeitragVerfasst am: 15.11.2006, 16:48    Titel: Antworten mit Zitat

danke schön. werde ich probieren.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 15.11.2006, 22:05    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 16.11.2006, 12:43    Titel: Antworten mit Zitat

Hi,
die BSAVE, BLOAD - Methode ist ja sehr elegant zwinkern 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/ verlegen 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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 16.11.2006, 15:17    Titel: Antworten mit Zitat

grinsen
Nur 'ne kleine Korrektur. zwinkern
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())

happy
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ebrady



Anmeldungsdatum: 06.07.2005
Beiträge: 45

BeitragVerfasst am: 16.11.2006, 17:21    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 17.11.2006, 23:36    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Lutz Ifer
Grillmeister


Anmeldungsdatum: 23.09.2005
Beiträge: 555

BeitragVerfasst am: 18.11.2006, 00:02    Titel: Antworten mit Zitat

dim as ubyte feld (0 to viel)
open datei for binary as #1

put #1,1,feld()

funktioniert in fb bestens.

Gruß
Lutz böse Ifer
_________________
Wahnsinn ist nur die Antwort einer gesunden Psyche auf eine kranke Gesellschaft.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz