Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Komisches Verhalten beim speichern in Datei

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
06.01.2004, 21:31 Uhr
~Benny
Gast


Ich hab da ein Problem, ich progg grad ein Jump n run spiel und hab ein "Levelraster", da steht drin was wo ist.

ich setzte die anfangswerte auf null


C++:
int koord_level[26][1001];

for (i=0;i<26;i++)
    {
      for (j=1;j<1001;j++)
      {koord_level[i][j] = 0;}
    }



beim speichern bis x-koord zeichen 500, also nicht bis 1000 geht alles wunderbar.
Er schreibt mir in meine Datei ein schönes Kommagetrenntes (0,) Raster mit entsprechenden Zeilen. Aber wenn ich mehr als 500 in die Datei schreiben will kommt in Zeile 6 koord_level[6][*] lauter Zahlen, aber keine Null.

speichern:

C++:
datei_level = fopen ("level.999","a");
      for (i=1;i<25;i++)
        {
          for (j=1;j<500;j++)
          {fprintf (datei_level,"%d,",koord_level[i][j]);}
           fprintf (datei_level,"%d,\n",koord_level[i][j]);
        }
      fclose (datei_level);



Ich weiß nicht was machen. Bitte um Hilfe.
Das Problem beim reinspeichern hab ich natürlich bei einem LevelEditor, vielleicht kann man sich dann vorstellen wie ich das mein.
Stehe für Rückfragen offen.

Danke Grüßer Benny

------------------
Lsg bitte für c
compiler: turbo c++ borland
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
06.01.2004, 21:37 Uhr
~Benny
Gast


Ich wollte noch erwähnen, dass ich noch ein Farbenraster auch speichern will und da noch mehr Felder hab nach m speichern, die keine 0, drin haben.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
06.01.2004, 21:44 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



C++:
for (i=1;i<25;i++)
        {
          for (j=1;j<500;j++)
          {fprintf (datei_level,"%d,",koord_level[ i ][j]);}
           fprintf (datei_level,"%d,\n",koord_level[ i ][j]);
        }


sicher das das teil macht was du dir denkst?
das schreibt 24*499 mal den wert der zelle koord_level[ i ][j]) durch kommagetrennt auf und beendet die zeile mit einem newline...

du hast dann also am ende 24*499 zeilen wobei jeweils der gleichen wert doppelt in einer zeile steht...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
06.01.2004, 21:46 Uhr
~Benny
Gast


das mit 24*499 stimmt, das soll ja kein mini spiel werden. :o)
das sind meine 24 Zeilen und 499 Zeichen ist das Level lang.

Was meinst du mit jeweils der gleiche wert doppelt in einer zeile?
wie meinst das?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
06.01.2004, 21:48 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


na das hier macht doch zweimal das gleiche...

C++:
fprintf (datei_level,"%d,",koord_level[ i ][j]);}
fprintf (datei_level,"%d,\n",koord_level[ i ][j]);


einziger unterschied ist das du einmal ein komma und einmal , und newline schreibst...

naja und was noch komisch ist....
warum fängst du bei 1 und nicht bei 0 an
das verschwendest du ja speicher...
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 06.01.2004 um 21:49 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
06.01.2004, 21:50 Uhr
~Benny
Gast


Ne, das obere von denen ist noch in der Schleife das untere nicht, das kommt am schluss. Das stimmt theoretisch alles. wenn ich weniger als 500 nach rechts einlese klappt das ja, aber bei mehr fängt er an irgendwie zu spinnen. Keine Nullen sondern "leere" Felder, also beliebige Zahlen und das mittendrin und dann wieder normal. das versteh ich nicht.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
06.01.2004, 21:51 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


also wenn ich das richtig verstanden habe hast du 26 levels und zu jedem level gehören 1001 koordinaten...

wie willst du das jetzt genau speichern....
das die koordinaten von einem level immer auf einer zeile sind?
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
06.01.2004, 21:56 Uhr
~Benny
Gast


Ne das ist ein Level. Gerastert in Koordinaten. Die unterste Zeile gibt spieler infos wie leben und punkte wieder darum nur 24 Zeilen.
24 Zeilen und 1000 oder mehr "x-koordinaten"
ich arbeite mit den koordinaten 1-1000 nicht 0-1000.

mit dem speichern klappt ja, wenn es nicht so lange Zeichenketten sind.
Wenn ich es nur kommagetrennt schreibe gleiches problem. Nur mit NewLine auch selbes problem.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
06.01.2004, 22:06 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


man du betreibst ja komisches speichermanagment...

dann sag mal nochmal wie genau deine datei aussehen soll
am besten ein beispiel und beschreiben

wie meinst du das mit dem zu langen zeichenketten.. Bisher warens doch nur ints...

wenn du probleme mit nem chararray hast dann nimm std::string oder darfst du kein c++ verwenden?
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
06.01.2004, 22:43 Uhr
~Benny
Gast


Ich darf kein c++ benutzen, dauert noch mehr als n Jahr.

ich glaub ich hab ne Idee.

Speichern ist mir egal wie wenn ich weiß wie ichs wieder raushohlen kann.

Ein Array[26][1001] bzw. Array[26][x] muss es halt sein.
Oder du lieferst mir eine andere Lösung für mein Spiel.

Ich arbeite mir Rastern für die aktuellen koordinaten die farben und die art von bausteinen. dann noch anfangs und endpunkt vom bildschirm, d.h.
wenn ich weiter nach rechts geh ändert sich der anfang und end punkt und die bausteine und farben ein oder mehrere weiter rechts werden angezeigt.
verstanden?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: