Zdravím, potřeboval bych zjistit způsob jak zapisovat na začátek souboru. Napadlo mě si celý soubor přečíst, uložit do řetězce, na začátek přidal to, co potřebuji a potom znovu zapsat. Ale to je na nic, protože se jedná o logy. Našel jsem funkci fseek, která by měla posunout kurzor v souboru na určitý znak, ale to mi nějak blbne.
Jedná se tedy o ukládání logu, když použiju io_append, vše funguje, akorát je to obráceně. Zkoušel jsem to fseek dávat i do cyklu, ale nemělo to žádný vliv.
savePlayerLog(playerid){
format(infoText, sizeof(infoText), "playerLogs/%s.log", players[playerid][playerName]);
new File: f = fopen(infoText, io_readwrite);
fseek(f, 0, seek_start); //tenhle řádek by měl posunout kurzor na začátek souboru
for (new i = (players[playerid][myLogline] - 1); i >= 0; i --){
fwrite(f, playerLogs[playerid][i]);
}
fclose(f);
players[playerid][myLogline] = 0;
}
Pro testování se mi log ukládá po každých 2 řádcích, co hráč napíše a tohle se zapíše do souboru při prvním uložení(vše v pořádku):
Dotaz
Franta95 0
Zdravím,
potřeboval bych zjistit způsob jak zapisovat na začátek souboru. Napadlo mě si celý soubor přečíst, uložit do řetězce, na začátek přidal to, co potřebuji a potom znovu zapsat. Ale to je na nic, protože se jedná o logy. Našel jsem funkci fseek, která by měla posunout kurzor v souboru na určitý znak, ale to mi nějak blbne.
Jedná se tedy o ukládání logu, když použiju io_append, vše funguje, akorát je to obráceně. Zkoušel jsem to fseek dávat i do cyklu, ale nemělo to žádný vliv.
Pro testování se mi log ukládá po každých 2 řádcích, co hráč napíše a tohle se zapíše do souboru při prvním uložení(vše v pořádku):
Druhé uložení(měli by být 4 řádky):
Celkově by to mělo vypadat takhle:
Řádky ze serveru jsou správně, protože v modu append vše funguje, akorát se to zapisuje v opačném pořadí(nejnovější řádek je na konci).
Link to comment
Share on other sites
4 odpovědí na tuto otázku
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now