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ž

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 5.5
Level 5.5
Příspěvky: 3032
Registrován: leden 15
Bydliště: Praha / Krkonoše
Pohlaví: Muž

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.
https://www.facebook.com/peasantsandcastles/
https://www.twitch.tv/satikcz/
https://www.youtube.com/c/SatikCZE
PC: Intel Core i7 8700K@5GHz+EK KIT L360, ASUS Maximus X HERO, 32GB RAM@3466, MSI RTX 2080Ti Trio, Fractal Define S, Seasonic P860, SSD 2TB celkem
Periferie: 3x AOC AG271QG (1440p 165Hz IPS), Razer Deathadder+Blackadder Chroma, Steelseries QcK+, Sennheiser PC360, DXRACER OH/KF06/NB

Uživatelský avatar
faraon
Master Level 8
Master Level 8
Příspěvky: 6390
Registrován: prosinec 10
Pohlaví: Muž

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?
"Pimonte, Pimonte, co jsi ty za pána, že za tebou padla ta majlandská brána, hop, hop, hop.
Ta majlandská brána a ty čtyři mosty, vystav si, Pi­monte, silnější forposty, hop, hop, hop!"

Píseň dobrého vojáka Švejka

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

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 5.5
Level 5.5
Příspěvky: 3032
Registrován: leden 15
Bydliště: Praha / Krkonoše
Pohlaví: Muž

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.
https://www.facebook.com/peasantsandcastles/
https://www.twitch.tv/satikcz/
https://www.youtube.com/c/SatikCZE
PC: Intel Core i7 8700K@5GHz+EK KIT L360, ASUS Maximus X HERO, 32GB RAM@3466, MSI RTX 2080Ti Trio, Fractal Define S, Seasonic P860, SSD 2TB celkem
Periferie: 3x AOC AG271QG (1440p 165Hz IPS), Razer Deathadder+Blackadder Chroma, Steelseries QcK+, Sennheiser PC360, DXRACER OH/KF06/NB


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • PASCAL:Podprogramy
    od Potr » 22 dub 2018 00:48 » v Programování a tvorba webu
    2
    628
    od faraon
    22 dub 2018 11:29
  • pascal pomoc zaseknutí v cyklu while
    od Akrej » 13 led 2018 23:01 » v Programování a tvorba webu
    4
    738
    od satik
    27 úno 2018 14:03
  • Tréning programovaní
    V tomto tématu je hlasování. od Mouse_cz » 30 říj 2017 16:49 » v Programování a tvorba webu
    9
    758
    od faraon
    07 lis 2017 00:39
  • Programování v C# - nová skupina
    od CallManyCZ » 11 lis 2017 19:12 » v Programování a tvorba webu
    3
    1311
    od Wojta
    11 črc 2018 21:36
  • Podnikání v programování webů
    od Eston » 07 kvě 2018 00:01 » v Vše ostatní (z oblasti IT)
    1
    425
    od Turion
    07 kvě 2018 10:14

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

Kdo je online

Uživatelé prohlížející si toto fórum: CommonCrawl [Bot] a 10 hostů