PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Simple File Format



wacked
09.07.2010, 14:21
Hi,
Ich wollte mal dieses Projekt bewerten lassen. Für Verbesserungsvorschläge und Tipps (zb was der beste Weg wäre Daten zu bearbeiten (wenn sich dir größe verändert müßen alle daten verschoben werden. Wahrscheinlich wäre da ein Redesign der Klasse und der Strukturen besser/effektiver) sind herzlich willkommen.
Anyways:
RapidShare: 1-CLICK Web hosting - Easy Filehosting (http://rapidshare.com/files/405934009/SimpleFileFormat.zip.html)
Enthalten ist der source und eine testdatei (a.sff).

Mit freundlichen grüßen,
wacked

Edit: hier (http://rapidshare.com/files/407055473/SFF.rar) ist die Version von unten + eine versuchte Dokumentation.

The-God-of-all
09.07.2010, 15:14
Hallo,

eine interessante Klasse. Das Format ist ja an sich sehr einfach aufgebaut. Ich denke mal, dass es je nach Anwendungszweck mehr oder weniger Sinnvoll ist.
Was ich komplett vermisse ist eine Möglichkeit eine SFF Datei zu erzeugen. Die Klasse kann nur solche Dateien lesen. Vielleicht könnte man etwas komplizierter das Ding auch zum Schreiben bringen.
Dann kann man die einzelnen Einträge innerhalb der SFF Datei vielleicht auch mit mehr Infos speichern, zum Beispiel, einen Typ hinzufügen (einen INT zum Beispiel mit einer Enumeration, einen Wert für Text usw.). Auch könnte man das ganze natürlich auch noch so machen, dass man Kategorien bzw. Ordner anlegen kann, also ein Eintrag weitere Einträge enthält.
Was mir an der Programmierung auffällt ist, dass immer sofort die Dateien ganz geladen werden. Wenn man mit großen SFF Dateien Arbeitet sicherlich nicht optimal.
Was mir noch an der Programmierung auffällt, ist das in der Header Datei nicht nur Deklarationen sind sondern auch die Funktionen implementiert sind. Sollte es nicht eigentlich anders sein?
Und du initialisierst auch die Variable Sizes mit new, diese wird aber nicht wie Data im Destruktor gelöscht. Das könnte zu einem Speicherleak führen.

Zum Thema Daten müssen verschoben werden: Da das ja bekanntlich nicht möglich ist werden solche Dateien normalerweise kurzerhand komplett neu geschrieben, also alte Datei löschen und eine neue erstellen wo alle Daten neu reingeschrieben werden.

wacked
14.07.2010, 20:35
Nach Meinungen bitten und sich dann fast eine Woche nicht drum kümmern...

Das mit sizes ist natürlich einfach nur peinlich!
Das mit den verschieden Typen finde ich eher sinnlos. Erst durch das Benutzen der Daten kriegen sie einen Sinn. Ob jetzt Text oder ein Bild es sind alles 1en und 0en. Und es kann auch sein dass Daten aus mehreren Betrachtungsweißen einen Sinn machen. (*hust* englisch shellcode *hust*)
Mit Ordnern würde das eindeutig eher in die Richtung Virtual File System gehen. (Ok ich gebe zu dass ich angefangen habe einen Artikel über so etwas zu lesen und dann die Idee hatte sowas aber in ganz, ganz einfach zu programmieren.) Aber dann wäre es ja nicht mehr "Simple File Format".
Nicht das komplette File zu laden würde einige Probleme aufwerfen. Als Gegenmaßnahmen würden mir einfallen:
1.: Immer X Einträge laden. (Was wen grade diese groß sind?)
2.: Immer X kb laden. (Was wenn das nur ein Eintrag ist? Was wenn ein Eintrag nicht komplett eingelesen wird?)
3.: Einträge einlesen bis X kb überschritten werden würden.
Logischerweiße ist 3 der beste Vorschlag. Dann bleibt natürlich die Frage wie groß X seien sollte damit man Kompatilität bewahrt und trotzdem neue Rechner nicht ausbremst.

Hier (http://rapidshare.com/files/406972856/SFF.rar.html) ist jetzt immerhin eine Version die auch schreiben kann.

Und für alle Rechtschreibfehler entschuldiege ich mich. Aber da der Spellchecker nur ein Englisches Wörterbuch hat wird alles (deutsche) rot unterstrichen, was einfach nur verwirrt.

Edit: Am genialsten ist nach Vorschlägen fragen und dann alle Vorschläge scheiße finden...