Mehrere Daten in einer Datei fassen
Übersicht

![]() |
Mathias-KwiatkowskiBetreff: Mehrere Daten in einer Datei fassen |
![]() Antworten mit Zitat ![]() |
---|---|---|
hi , leute es gab bzw gibt die möglichkeit mithilfe von seekfile, eine position anzugeben (also inerhalb) einer datei.
nun habe ich ein folgendes problem. ich bekomms nich mehr zusammen. ich habe nun mehrere bilder oder fonts in einer seperaten datei. dies sieht wie folgt aus. Datei: alleFiles.sav 1)Bild1 = 88000 2) 3)[Beginn] 4)alle bytes vom ersten bild wie das bild heisst steht vorm = zeichen, die bytes die das bild hat nach dem = zeichen. z.b. ich möchte bild 1 aufrufen. das wäre in der datei der beginn pos 4 , also 4. zeile. so aber nun möchte ich es via loadimage einlesen wie mache ich das am besten? -< Offset = SeekFile (Dateistream, Pos) >- Loadimage (???) <- und genau da komm ich nich weiter. |
||
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab sowas früher mal gemacht, da habe ich zuerst die Datei "entpackt", also die einzelnen Bilder einzeln rausgeschrieben, mit loadimage geladen und dann gelöscht. Das war aber noch zu B3D-Zeiten.
Für eine saubere Lösung bastel ich dir schnell eine Funktion zusammen, die das macht. |
||
Gewinner der 6. und der 68. BlitzCodeCompo |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das ist nicht nötig. Man kann die Bytes in eine Bank schieben und die bei Loadimage angeben. | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du hast doch den Stream schon und hast alles, was vor dem Bild kommt, schon ausgelesen - dann kannst du ja einfach den Stream bei LoadImage angeben und bist fertig! | ||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
![]() |
Mathias-Kwiatkowski |
![]() Antworten mit Zitat ![]() |
---|---|---|
genau nobobody
.... nur sry der dummen frage, wie genau mache ich das? |
||
CO2ehemals "SirMO" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du müsstest noch in die Zusammengefasste Datei schreiben, wie viele Bytes dein Bild groß ist.
Dann gehst du in der Datei via seekfile() zur Position an der das Bild "steht". Nun lädst du die Daten in eine Bank und dann lädst du das Bild via LoadImage(Bank) fertig ![]() Edit: Hier mal eben eine schnell geschriebene Funktion BlitzMax: [AUSKLAPPEN] Function ReadFromArchive:TBank(Archive:TStream, StartPos:Int, Size:Int) und dein Bild lädst du dann via BlitzMax: [AUSKLAPPEN] Global MeinBild:TImage = LoadImage(ReadFromArchive(DeinArchiv, 0, 1024)) 'Beispielwerte Die Funktion müsstest du noch auf deine Bedürfnisse anpassen, sollte aber funktionieren ![]() |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
- Zuletzt bearbeitet von CO2 am So, Aug 05, 2012 18:11, insgesamt 3-mal bearbeitet
![]() |
Mathias-Kwiatkowski |
![]() Antworten mit Zitat ![]() |
---|---|---|
cool. danke. nun hat das edliche dateinsammeln im data ordner ein ende ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group