Sibenice-nacitani ze souboru – Delphi – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Sibenice-nacitani ze souboru – Delphi – Fórum – Programujte.comSibenice-nacitani ze souboru – Delphi – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Tom
~ Anonymní uživatel
419 příspěvků
14. 5. 2010   #1
-
0
-

Dobrý den, vytvářím si jednoduchou hru-šibenici. Žádám Vás o radu, slova načítám z textového souboru a samozřejmě potřebuji aby se pokaždé načetlo jiné slovo, nevím jak toho dosáhnout,nebo jak to indexovat,pokaždé mi to napíše chybu. Zkoušel jsem Randomem vygenerovat číslo,dát je do proměné a pomocí ní indexovat ale to mě též nešlo. Prosím poradte
...
AssignFile(f,'C:\...sporty.txt');
reset (f);
while not (eoln(f)) do begin Readln (f,slovo);
end;
Label3.Caption:=vypis;
CloseFile(f);
end;

procedure TForm2.Button3Click(Sender: TObject);
begin
Button3.top:=Button3.top+405;
pismeno:='a';
nasel:=0;
for n:=1 to 8 do
if pismeno=slovo[n] then begin
vypis[n]:=pismeno;
nasel:=1;
end;
...
Dále ještě prosím o radu,jakým příkazem (např.při stisku tlačítka) se dá obnovit formulář,jako aby to bylo jako na začátku při spuštění. Předem děkuji. T

Nahlásit jako SPAM
IP: 95.140.250.–
Reklama
Reklama
liborb
~ Redaktor
+18
Guru
14. 5. 2010   #2
-
0
-

Vzhledem k tomu, že slova z toho souboru používáš opakovaně (při další hře), tak si je při startu aplikace načti do pole (pokud znáš počet záznamů) nebo do seznamu. Následně vylosuj náhodné číslo a můžeš přímo přistupovat k hodnotě (pole) nebo tam "doskáčeš" (seznam) :smile1: .

A obnovu formuláře uděláš tak, že všem ovládacím prvkům nastavíš stejné vlastnosti/parametry jako měly při startu.

Nahlásit jako SPAM
IP: 85.207.166.–
Honzc0
Stálý člen
14. 5. 2010   #3
-
0
-

Zkus to třeba takto:
Načti si ten soubor se sportama (u mne sporty.txt) do Mema1.
Pokud nechceš aby ten soubor byl vidět (v tom Memu1), tak na Memo1 dej Memo1.Visible := False;
(upozorňuji, že nejdříve je nutné načíst soubor sporty.txt-tj.nejdříve kliknout na Button1)
Program
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Memo1: TMemo; //Memo pro načtení souboru sporty.txt
Button1: TButton; //tlačítko pro spuštění načtení souboru sporty.txt
Edit1: TEdit; //zobrazení č.řádku, který to vybralo
Label1: TLabel;
Label2: TLabel;
Edit2: TEdit; //zobrazení vybraného slova
Button2: TButton;//tlačítko pro provedení akce
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Clear;
Memo1.Lines.LoadFromFile('sporty.txt'); //načtení souboru sporty.txt
//musí být ve stejném adresáři jako program
end;

procedure TForm1.Button2Click(Sender: TObject);
var i,n: Integer;
begin
Randomize;
n := Memo1.Lines.Count; //zjištění počtu řádků-sportů
i := Random(n)+1; //vybrání náhodného řádku-jeho čísla
Edit1.Text := IntToStr(i);//výpis č.řádku
Edit2.Text := Memo1.Lines[i-1];//výpis, který to je (jméno sportu)
end;

end.

Nahlásit jako SPAM
IP: 85.207.57.–
Tom
~ Anonymní uživatel
419 příspěvků
14. 5. 2010   #4
-
0
-

To Honzc : Děkuji mooc, funguje to!!!

Nahlásit jako SPAM
IP: 95.140.250.–
MiMi
~ Anonymní uživatel
45 příspěvků
15. 5. 2010   #5
-
0
-

Zbytocne zlozite s memo a tlacidlom. Vyuzi dynamicke pole a vylosovanie indexu pola ako uz bolo spominane.

Nahlásit jako SPAM
IP: 217.145.199.–
Honzc0
Stálý člen
16. 5. 2010   #6
-
0
-

To MiMi
To tlačítko jsem tam dal pouze proto, aby viděl to načtení souboru.
Samozřejmě, že to jde načíst při FormCreate, aniž by tam muselo být nějaké
tlačítko.
Načtení do Mema (a může být neviditelné) má své výhody v tom, že se nemusíš
při načítání starat o to, kde je konec řádku a souboru. Navíc při změně souboru
se sporty (např.přidá se nový sport) se vůbec nic neděje.
Tvoje řešení s dynamickým polem - stejně to musiš do toho tvého dynamického
pole nějak nacpat.

Nahlásit jako SPAM
IP: 84.16.108.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 11 hostů

Podobná vlákna

Nacitani souboru — založil tester

Nacitani souboru v C — založil latis

Načítání dat ze souboru — založil GunSpawn

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý