- Mes treball en lo dels arxius de dades

This commit is contained in:
2024-06-04 14:29:12 +02:00
parent eb34fcd41a
commit b74ad6254a
3 changed files with 30 additions and 12 deletions

View File

@@ -7,12 +7,12 @@ wall-texture: 0
door-texture: 0 door-texture: 0
under-door-texture: 0 under-door-texture: 0
actor: { actor{
template: box template: box
pos: 32 32 0 pos: 32 32 0
} }
actor: { actor{
template: box template: box
pos: 32 32 8 pos: 32 32 8
} }

View File

@@ -424,6 +424,8 @@ namespace file
saveConfigValues(); saveConfigValues();
} }
char tmp[255];
void ignoreWhitespace(const char **buffer, const bool stopOnLineEnd=false) void ignoreWhitespace(const char **buffer, const bool stopOnLineEnd=false)
{ {
if (!stopOnLineEnd) if (!stopOnLineEnd)
@@ -435,32 +437,48 @@ namespace file
// Llig una cadena de l'arxiu especificat. En cas de no poder, torna nullptr. // Llig una cadena de l'arxiu especificat. En cas de no poder, torna nullptr.
const char *readString(const char **buffer, const bool stopOnLineEnd=false) const char *readString(const char **buffer, const bool stopOnLineEnd=false)
{ {
ignoreWhitespace(buffer); ignoreWhitespace(buffer, stopOnLineEnd);
if (**buffer==0) return nullptr;
if (stopOnLineEnd && **buffer=='\n')
{
(*buffer)++;
return nullptr;
}
int i=0;
while (**buffer>32 && i<255)
{
tmp[i++] = *(*buffer++);
}
return tmp;
} }
// Llig un enter de l'arxiu especificat. En cas de no poder, torna 0. // Llig un enter de l'arxiu especificat. En cas de no poder, torna 0.
int readInt(const char **buffer) int readInt(const char **buffer)
{ {
ignoreWhitespace(buffer); ignoreWhitespace(buffer);
if (**buffer==0) return 0;
return atoi(readString(buffer)); return atoi(readString(buffer));
} }
// Escriu una cadena a l'arxiu especificat. // Escriu una cadena a l'arxiu especificat.
void writeString(const char **buffer, const char* str) void writeString(FILE *f, const char* str)
{ {
fprintf(f, "%s ", str);
} }
// Escriu un enter a l'arxiu especificat. // Escriu un enter a l'arxiu especificat.
void writeInt(const char **buffer, const int value) void writeInt(FILE *f, const int value)
{ {
fprintf(f, "%i ", value);
} }
// Escriu un salt de linea a l'arxiu especificat. // Escriu un salt de linea a l'arxiu especificat.
void jumpLine(const char **buffer) void jumpLine(FILE *f)
{ {
fprintf(f, "\n");
} }
} }

View File

@@ -76,14 +76,14 @@ namespace file
/// @brief Escriu una cadena a l'arxiu especificat. /// @brief Escriu una cadena a l'arxiu especificat.
/// @param buffer punter a l'arxiu on escriure /// @param buffer punter a l'arxiu on escriure
/// @param str la cadena a escriure /// @param str la cadena a escriure
void writeString(const char **buffer, const char* str); void writeString(FILE *f, const char* str);
/// @brief Escriu un enter a l'arxiu especificat. /// @brief Escriu un enter a l'arxiu especificat.
/// @param buffer punter a l'arxiu on escriure /// @param buffer punter a l'arxiu on escriure
/// @param value L'enter a escriure /// @param value L'enter a escriure
void writeInt(const char **buffer, const int value); void writeInt(FILE *f, const int value);
/// @brief Escriu un salt de linea a l'arxiu especificat. /// @brief Escriu un salt de linea a l'arxiu especificat.
/// @param buffer punter a'larxiu on escriure /// @param buffer punter a'larxiu on escriure
void jumpLine(const char **buffer); void jumpLine(FILE *f);
} }