Programování v Object pascal Vyřešeno

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

radekzatec
nováček
Příspěvky: 5
Registrován: srpen 16
Pohlaví: Muž
Stav:
Offline

Programování v Object pascal  Vyřešeno

Příspěvekod radekzatec » 11 led 2018 18:07

Dobrý den,
mám úkol, naprogramovat hru v object pascal (jde o hru šibenice) celou jí mam naprogramovanou jen si nevím rady dvěmi drobnostmi.

Zaprvé potřebuji v této podobě kódu, aby zmačknutí tlačítka akceptovalo "A" i "Á" nebo "E", "É" i "Ě" nevím jak to provést.

Kód: Vybrat vše

procedure TForm1.Button10Click(Sender: TObject);
begin
     Button10.Enabled := False;
     DostatZnak('e');
     AktualizaceObrazku;
end;


Druhý problém je při ukládání slov do souboru vždy mi data uložené v souboru přepíše a uloží nové - potřebuji slova přidávat.

Kód: Vybrat vše

procedure TForm1.Button2Click(Sender: TObject); //Tlačítko přidat slovo
Var
   Slovo: String;
begin                            // Vstupní dotaz
     MessageDlg('Slova s více než 10 písmeny a méně než 3 písmena se nebudou brát v úvahu.', mtWarning, [mbOK], 0);
     if InputQuery('Přidat slovo, zadejte slovo', 'které chcete přidat do seznamu: ', Slovo) = True then
     begin
      if (Length(Slovo) > 2) and (Length(Slovo) < 10) then   // Zkontrolujeme velikost
        begin
          ListBox1.Items.Add(Slovo);  // Slovo přidáme
          ListBox1.Sorted := False;
          ListBox1.Sorted := True;
          ListBox1.Items.SaveToFile(Dirr + 'seznam_slov.txt'); // Uložíme
          Label3.Caption := IntToStr(ListBox1.Items.Count);  // Změníme zobrazený počet slov
        end;
     end;
end;


Děkuji za pomoc Radek

Reklama
Uživatelský avatar
satik
Level 6
Level 6
Příspěvky: 3509
Registrován: leden 15
Bydliště: Krkonoše
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Programování v Object pascal

Příspěvekod satik » 11 led 2018 18:32

Co dela funkce dostatznak?

Seznam slov by bylo dobry asi nejdriv nacist, abys v seznamu mel ty slova, co jsou v souboru, takhle je v souboru prepises jen tim, co je v seznamu.
PC: MSI RTX 4090 Suprim X, AMD Ryzen 9 7950x3D, ASUS Crosshair HERO X6670E, 64GB RAM@6000CL30, Fractal Define Torrent, Seasonic PRIME TX 1600W, SSD Seagate Firecuda 530 M2 2TB +
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7356
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Programování v Object pascal

Příspěvekod faraon » 11 led 2018 18:45

radekzatec píše: ListBox1.Items.SaveToFile(Dirr + 'seznam_slov.txt'); // Uložíme

Neexistuje tam něco jako "AppendToFile"?

Znaky s diakritikou se ti nenačtou vůbec, nebo je potřebuješ převést na tvar bez nabodeníček?
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

radekzatec
nováček
Příspěvky: 5
Registrován: srpen 16
Pohlaví: Muž
Stav:
Offline

Re: Programování v Object pascal

Příspěvekod radekzatec » 11 led 2018 18:55

Načítá stisklé buton písmeno přímo ve hře.
Zde je screen hry https://ctrlv.cz/8ydA
Diakritiku Mi to načítá normálně jen nevím jak vyřešit že stisknuté "e" načte všechny "e" včetně diakritiky.

Kód: Vybrat vše

procedure TForm1.DostatZnak(C:Char);   // Postup, který skenuje slovo a přidá znak C, pokud je ve slově
Var
   I: Integer;
   Nalezeno: Boolean;
begin
     Nalezeno := False;
     for I := 1 to Length(PouziteSlovo) do  // Hledáme slovo
begin
     if UpperCase(PouziteSlovo[I]) = UpperCase(C) then begin StringGrid1.Cells[I - 1, 0] := C; Nalezeno := True; end;
end;
    if Nalezeno = False then StavZivota := StavZivota + 1;  // Pokud jsme znak nenašli, přidáme 1 do stavu života
end;


Tak práce se souborem je již vyřešena SATIK MOC díky

Řešení takto:

Kód: Vybrat vše

 ListBox1.Items.LoadFromFile(Dirr + 'seznam_slov.txt');


Celý kód pak takto:

Kód: Vybrat vše

procedure TForm1.Button2Click(Sender: TObject); //Tlačítko přidat slovo
Var
   Slovo: String;
begin                            // Vstupní dotaz
     MessageDlg('Slova s více než 10 písmeny a méně než 3 písmena se nebudou brát v úvahu.', mtWarning, [mbOK], 0);
     if InputQuery('Přidat slovo, zadejte slovo', 'které chcete přidat do seznamu: ', Slovo) = True then
     begin
      if (Length(Slovo) > 2) and (Length(Slovo) < 10) then   // Zkontrolujeme velikost
        begin
          ListBox1.Items.LoadFromFile(Dirr + 'seznam_slov.txt');
          ListBox1.Items.Add(Slovo);  // Slovo přidáme
          ListBox1.Sorted := False;
          ListBox1.Sorted := True;
          ListBox1.Items.SaveToFile(Dirr + 'seznam_slov.txt'); // Uložíme
          Label3.Caption := IntToStr(ListBox1.Items.Count);  // Změníme počet slov
        end;
     end;
end;

Uživatelský avatar
satik
Level 6
Level 6
Příspěvky: 3509
Registrován: leden 15
Bydliště: Krkonoše
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Programování v Object pascal

Příspěvekod satik » 13 led 2018 13:36

Asi bych si pro kazdy pismenko ulozil pole s znakama, co mu odpovidaji a pri kontrole vyzkousel vsechny z toho pole a az pokud se ani jedno nenajde, tak to oznacil ze tam neni.
PC: MSI RTX 4090 Suprim X, AMD Ryzen 9 7950x3D, ASUS Crosshair HERO X6670E, 64GB RAM@6000CL30, Fractal Define Torrent, Seasonic PRIME TX 1600W, SSD Seagate Firecuda 530 M2 2TB +
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Turbo Pascal (With DOSBox) je pomalý.
    od Kopusek » 01 pro 2023 11:00 » v Programování a tvorba webu
    2
    2006
    od Kopusek Zobrazit poslední příspěvek
    02 pro 2023 10:13
  • Výběr repasovaného notebooku na programování
    od HelFix » 13 bře 2024 10:59 » v Rady s výběrem hw a sestavením PC
    5
    1188
    od Zivan Zobrazit poslední příspěvek
    20 bře 2024 10:51
  • Vhodné materiály pro výuku programování
    od Zakk » 31 říj 2023 16:24 » v Programování a tvorba webu
    1
    1235
    od Gerete Zobrazit poslední příspěvek
    31 říj 2023 17:40
  • 2x 27" IPS vs 34" VA . programování, webdesign
    od Hakosuka » 26 úno 2024 13:12 » v Rady s výběrem hw a sestavením PC
    0
    399
    od Hakosuka Zobrazit poslední příspěvek
    26 úno 2024 13:12

Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 5 hostů