NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
IT rekvalifikace s podporou uplatnění. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Avatar
mmmm
Tvůrce
Avatar
mmmm:28.4.2012 11:47

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 Hartinger
Vlastník
Avatar
Odpovídá na mmmm
David Hartinger:28.4.2012 12:21

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
New kid back on the block with a R.I.P
Avatar
mmmm
Tvůrce
Avatar
mmmm:28.4.2012 13:26

neumím

 
Nahoru Odpovědět
28.4.2012 13:26
Avatar
mmmm
Tvůrce
Avatar
mmmm:28.4.2012 13:41

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 Hartinger
Vlastník
Avatar
Odpovídá na mmmm
David Hartinger:28.4.2012 17:00

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
New kid back on the block with a R.I.P
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.