Avatar
Kenzo Software
Redaktor
Avatar
Kenzo Software:

Jak mám udělat, aby se mi soubor s koncovkou txt načetl přímo do hry jako text? Jako příklad uvádím hru Czech F1 manager která je ke stažení zde: http://www.porse.cz/…ownload.html

(Když dáte novou hru a vyberete stáj tak dejte finance a vyberte sponzora. Všichni sponzoři kteří se vám nabízí jsou ve složce se hrou v souboru sponzoři.txt)

 
Odpovědět 28.4.2012 11:47
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kenzo Software
David Čápka:

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('fi­le.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.

Nahoru Odpovědět 28.4.2012 12:21
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kenzo Software
Redaktor
Avatar
Kenzo Software:

neumím

 
Nahoru Odpovědět 28.4.2012 13:26
Avatar
Kenzo Software
Redaktor
Avatar
Kenzo Software:

Ani mi to nefunguje. Když si vytvořím do složky se hrou soubor .txt tak to nereaguje a když ho smažu tak je tam error. Prosím poraď

 
Nahoru Odpovědět 28.4.2012 13:41
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kenzo Software
David Čápka:

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.

Nahoru Odpovědět 28.4.2012 17:00
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.