Diskuze: Práce s txt
V předchozím kvízu, Online test znalostí GameMakeru, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 5 zpráv z 5.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí GameMakeru, jsme si ověřili nabyté zkušenosti z kurzu.
Mělo by fungovat toto:
file = file_text_open_read("soubor.txt");
while (!file_text_eof(file)) {
radka = file_text_read_string(file);
file_text_readln(file);
}
file_text_close(file);
Soubor je dobré otestovat na existenci pomocí if file_exists('file.txt'); Načtené řádky si uvnitř cyklu posčítej do jednoho řetězce, který poté vypíšeš, předpokládám, že umíš sloučit řetězce.
No to je jasné, že to nereaguje, když to ještě nic nedělá, musíš s tou hodnotou ještě pracovat, jsem ti to říkal. Když chceš parsovat textový soubor a neumíš spojit 2 řetězce, tak je to těžké. Pokusím se ti vysvětlit, jak výše uvedený kód funguje:
Do proměnné file si uložíme odkaz na soubor, se kterým chceme pracovat:
file = file_text_open_read("soubor.txt");
příkaz
radka = file_text_read_string(file);
Uloží do proměnné řádka vždy jednu řádku z textového souboru. Abychom nečetli pořád tu jednu řádku, musíme se v souboru posunout vždy na další, k tomu slouží
file_text_readln(file);
Soubor na konci manipulace musíme uzavřít, abychom uvolnili zdroje:
file_text_close(file);
Teď to hlavní: cyklus while opakuje čtení řádky do proměnné a posouvání tak dlouho dokud se nenarazí na konec souboru. Na konec souboru se ptáme
file_text_eof(file)
Před podmínkou je vykřičník, který ji neguje. Chceme, aby se příkazy prováděly tehdy, pokud NEplatí, že jsme na konci souboru.
Tohle si projeď, dokud tomu neporozumíš, nemá smysl pokračovat dále.
Abys obsah mohl poté vypsat akcí draw_text, potřebuješ si řetězce (řádky) pospojovat/posčítat (říká se tomu concaterace řetězců) do jednoho, který potom vypíšeš. Dva řetězce se sčítají takto:
retezec1 = "ahoj";
retezec2 = "svete";
retezec3 = retezec1 + " " + retezec2;
Nyní máš dostatek znalostí k tomu, aby jsi vždy řádku, kterou ze souboru načteš, přičetl k nějaké proměnné, kterou nakonec vypíšeš. Na začátku si ji nastav na prázdný řetězec a poté k ní přičítej řádku v každém průběhu (iteraci) cyklu.
EDIT: Mezi řádky vkládej #13, což je znak enteru, který způsobí, že je fce draw_text vykreslí podsebou.
Zobrazeno 5 zpráv z 5.