Suchergebnisse

Suchergebnisse 1-7 von insgesamt 7.

  • Benutzer-Avatarbild

    Wie speicherst du denn aktuell und wie viele verschiedene Werte kann ein Feld haben? //EDIT: @backtothetoast Höchstens "manuelle" Serialisierung würde hier was helfen. Die "normale" würde warscheinlich viiiiel größere Dateien erzeugen.

  • Benutzer-Avatarbild

    Zeig doch trotztem mal deine aktuelle Speichermethode. Da kann man sicher noch viel verbessern :).

  • Benutzer-Avatarbild

    Mal ein paar Punkte, wie du es verbessern könntest: -Anstatt die Stringe mit dem &-Operator zu verbinden, nutze einen StringBuilder, der ist schneller -Für was die Koordinaten der einzelnen Felder speichern? Du brauchst nur die Startkoordinate, den Rest kannste dir berechnen -Arbeite auf der Byte-Ebene anstatt mit Strings, da haste in einem Zeichen in deiner Datei entweder 2 Felder a 16 Möglichkeiten oder 1 Feld mit 256 Möglichkeiten. Bei der zweiten Variante hast du also 1 Byte pro Feld, wobei …

  • Benutzer-Avatarbild

    @vb-checker Das habe ich doch schon gesagt? Außerdem sehe ich keinen Sinn darin, die Koordinaten mitzuspeichern, da sowieso jedes Feld in einem gewissen Bereich gespeichert wird. Hier mal ein kleines Beispiel, wie ich es machen würde (zwar in C#, sollte sich aber ohne Probleme manuell oder auch über Konverter konvertieren lassen: C-Quellcode (32 Zeilen) MfG Stefan

  • Benutzer-Avatarbild

    Dann soll er da halt einfach einen weiteren Feldtyp für "noch nicht generiert" machen und trotzten alle Felder speichern. Nehmen wir doch mal dein Beispiel mit den zwei Int16 und dem einen Byte. Hier haben wir also 5 Bytes pro Feld -> sobald 1/5 der Map generiert ist, lohnt sich mein Vorgehen speichertechnisch. Gehen wir doch mal davon aus, dass er jetzt eine Map mit 1000x1000 Feldern hat. Meine Speichermethode benötigt hier konstant 1MB Speicher, wobei deine zwischen 5 Bytes und 5MB liegt. Die …

  • Benutzer-Avatarbild

    @vb-checker Natürlich ist sowas möglich, jedoch glaube ich kaum, dass soetwas hier sinnvoll wäre, da es warscheinlich einfach zu kompliziert für den TE würde. Das Runterkompakten auf die Byte-Ebene wie in meinem oder deinem (ersten) Beispiel ist noch verhältnismäßig einfach, wenn es aber dann mit Bitshifting und auch deiner Lauflängencodierung losgeht, wird das warscheinlich einfach zu kompliziert für ihn.

  • Benutzer-Avatarbild

    1. Lauflängencodierung ist was ganz anderes, schau mal hier: de.wikipedia.org/wiki/Laufl%C3%A4ngenkodierung. 2. Bei meiner Methode wird das gespeichert, was du reingibst. Da kann natürlich auch nur ein Abschnitt gespeichert werden, aber bei Maps bis 1000x1000 Feldern ist es ja maximal 1 MB, Probleme sollten sich dadurch also nicht ergeben. Falls die Map größer sein sollte, kannste ja auch einfach nen Ausschnitt in die Methode reingeben, dieser wird dann auch abgespeichert.