Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Matz
Anmeldungsdatum: 04.07.2006 Beiträge: 13
|
Verfasst am: 04.07.2006, 15:43 Titel: Bytes Speichern |
|
|
Hallo. Ich hoffe mir kann hir jemand helfen.
Also eigentlich programiere ich nur in BlitzBasic, aber ich möchte gerne ein Programm schreiben das InselMaps (8Bit Bmp) Packt\Entpackt.
BlitzBasic erzeugt immer Exe Datein die sind mindestens immer 850KB
groß.
QuikBasic macht viel kleinere exe Datein.
nun ist die Frage wie speichert mann genau 1Byte in einer Direcktzugrifsdatei. (SeekFile) |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 04.07.2006, 15:54 Titel: |
|
|
du musst die datei einfach im Binärmodus öffnen (OPEN bla FOR BINARY), dann kannst du mit PUT und GET schreiben wo, wie und was du willst, schau mal in der QB-Hilfe (im programm F1 drücken) nach den befehlen. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
Matz
Anmeldungsdatum: 04.07.2006 Beiträge: 13
|
Verfasst am: 04.07.2006, 16:03 Titel: |
|
|
Habe ich schon gemacht, aber irgendwie soll da eine Datei ausgelesen werden die ich nicht habe.
Das soll am liebsten so irgendwie funktionieren.
Dim Feld(1000)
For ZZ=0 to 9999:Feld(ZZ)=rnd(255):next
open "TestDatei" for Random as #1
For ZZ=0 to 1000:put ZZ,Feld(ZZ):next ZZ
close #1
so ungefär |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 04.07.2006, 16:49 Titel: |
|
|
du solltest vielelicht nach einem Dim Feld(1000) nicht versuchen, das teil bis 9999 aufzufüllen. Außerdem solltest du Feld(1000) vielleicht als STRING*1 (ein byte) deklarieren, so hast du ne single variable mit 4 byte, integer hat 2. also probier ma irgendwie so:
Code: | DIM feld(1000) AS STRING*1
FOR n=0 to 1000
feld(n)=CHR$(RND*256)
NEXT n
OPEN "testfile.dat" FOR BINARY AS #1
FOR n=0 to 1000
PUT #1, n, feld(n)
NEXT n
CLOSE #1 |
kA ob das geht, wäre nur so ne idee.. nich getestet etc _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
Matz
Anmeldungsdatum: 04.07.2006 Beiträge: 13
|
Verfasst am: 04.07.2006, 17:34 Titel: |
|
|
Danke für deine Antwort.
Leider functionirt es immer noch nicht.
Bei der Put# anweisung kommt imer falsche datensatznummer.
Was mache ich blos falsch ???? |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 04.07.2006, 18:24 Titel: |
|
|
MisterD hat den Code nicht getestet und Datesatz 0 gibt es nicht
Code: | DIM feld(1 TO 1000) AS STRING * 1
FOR n = 1 TO 1000
feld(n) = CHR$(RND * 255)
NEXT n
OPEN "testfile.dat" FOR BINARY AS #1
FOR n = 1 TO 1000
PUT #1, n, feld(n)
NEXT n
CLOSE #1 |
Edit:
Jetzt stimmt der Name _________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Zuletzt bearbeitet von Michael Frey am 04.07.2006, 19:41, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 04.07.2006, 19:22 Titel: |
|
|
mao heißt misterd und wusste das nich weil er dateien, insbesondere binary, eigentlich nie benutzt  _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
|
Nach oben |
|
 |
|