Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4597 Wohnort: ~/
|
Verfasst am: 11.12.2021, 17:08 Titel: BSAVE zum Speichern von Binärdaten |
|
|
Neben dem Einsatz zum Speichern von Bildausschnitten sollte BSAVE ja auch in der Lage sein, Binärdaten zu speichern. Ich bekomme aber schon bei so einem Mini-Programm einen Speicherzugriffsfehler:
Code: | DIM AS BYTE PTR speicher = ALLOCATE(100)
BSAVE "temp_test.sav", speicher, 16 ' bricht ab
DEALLOCATE speicher
|
Mache ich was falsch, oder wird diese Methode nicht (mehr) unterstützt? Wäre ja kein Problem, weil sich das leicht anderweitig ersetzen lässt, aber dann sollte die (deutsche und auch englische) Referenz angepasst werden.
edit:
OK, ich sehe gerade, wenn ich ein SCREENRES verwende, funktioniert es ohne Abbruch (ich muss aber noch die Ausgabe prüfen). Scheint, dass BSAVE auch dann Paletten-Informationen benötigt, wenn es gar keine grafische Speicherung vornehmen soll. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
|
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4597 Wohnort: ~/
|
Verfasst am: 11.12.2021, 18:17 Titel: |
|
|
So, mein Test war nun doch erfolgreich. Wenn ich es richtig sehe, benötigt BSAVE auf jeden Fall Informationen zur Farbpalette, egal ob es Bilddaten speichert oder nicht. Kann das jemand bestätigen oder entkräften? _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4597 Wohnort: ~/
|
Verfasst am: 11.12.2021, 20:16 Titel: |
|
|
Da man bei BSAVE auch den Speicherort der Palette angeben kann, könnte man über diesen Umweg vielleicht sogar ohne SCREENRES auskommen (warum auch immer man eine Palette ohne gfxlib-Palettenunterstützung kreieren will ). Ich denke, ich werde in der Referenz bei BSAVE mal die Information mit SCREENRES einpflegen. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
|
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1211 Wohnort: Ruhrpott
|
Verfasst am: 11.12.2021, 23:27 Titel: |
|
|
BSAVE ist wohl eher zum Speichern von Images gedacht, weshalb den Binärdaten auch automatisch 5 Headerbytes vorangestellt werden (die Datei ist 5 Bytes größer als der für "Größe" angegebene Wert).
Für das Speichern von reinen Binärdateien ist der PUT - Befehl besser geeignet: Code: | Dim As UByte Ptr speicher = Callocate(100)
Open "temp_test.sav" For Output As #1
Put #1,, *speicher, 100
Close #1
DeAllocate speicher
?"OK"
Sleep
End |
Gruß
grindstone _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen! |
|
Nach oben |
|
|
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4597 Wohnort: ~/
|
Verfasst am: 12.12.2021, 01:35 Titel: |
|
|
grindstone hat Folgendes geschrieben: | BSAVE ist wohl eher zum Speichern von Images gedacht [...] |
Ja, deswegen wäre ich unter normalen Umständen auch nie darauf gekommen, BSAVE für die Binärblock-Speicherung einzusetzen. Ich will nur gerade den Befehl dokumentieren und muss ihn dazu natürlich auch austesten. Ich kann nur jedem empfehlen, eine Dokumentation zu schreiben - da kommt man auf die wildesten Sachen. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
|
|