Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Miten tehdään tekstitaulu?

Sivun loppuun

Jopoxi [16.04.2017 19:34:21]

#

Hei

Minulla on data taulu jonka haluan joko lisätä koodiin tai lukea koodin ulkopuolelta sekä myös tallentaa. Miten teen sen ?
Esimerkiksi kielien valinta taulu jolla vaihdan kokonaan kielen ohjelmalleni ?

Metabolix [16.04.2017 20:11:16]

#

Tee taulukko (tai vector tai map) string-olioista ja lue ja tallenna se tiedostoon silmukassa. Mikä kohta tässä tuottaa vaikeuksia?

Ohjelman kielen vaihtoon on myös muita vaihtoehtoja kuin omatekoinen tiedostoviritelmä, mm. gettext-kirjasto.

Jopoxi [17.04.2017 17:30:14]

#

Kuten varmasti huomasit olen vastaalkaja tässä koodauksessa.

kestää aikansa ennen kuin opin , perustaa harjoittelen että saan luotua teksti olion josta voin hakea kielen perusteella valikon tekstit. Yritin kovasti saada 2 dataa samaan tauluun kielet 0 ja 1 myöhemmin lisätä jopa paljon enemmän kieliä valikkoon.

Tarkemmin kirjoitettuna
Datatable tietue jonka laitan koodiin suoraan

strArr[][] = {{"English", "Suomi"},
              {"Menu", "Valikko"}}

yritin löytää tietoa miten teen datatablen

strArr[][]

Metabolix [17.04.2017 18:23:44]

#

Moniulotteisessa taulukossa täytyy antaa ainakin muiden kuin ensimmäisen suunnan pituudet valmiiksi:

std::string tekstit[][2] = {
	{"suomi", "englanti"},
	{"sana", "word"},
	{"valikko", "menu"}
};

Jopoxi [17.04.2017 19:48:32]

#

ongelmani ei ratkennut en voi laittaa tekstit[0][kieli] nimeksi suoraan

lisäsin string tablen ja alustavasti nappiin tekstin , teen jotain pahasti väärin näemmä :D

std::string tekstit[][2] = {{"Tervetuloa", "Welcome"},
                            {"Ohje", "Help"},
                            {"Aloitus", "Start"},
                            {"Yhteisö", "Community"},
                            {"Tuo/Vie", "Save/load"}};
tervetuloa = CreateWindow(TEXT("BUTTON"),
            TEXT(tekstit[1][kieli]),
            WS_VISIBLE | WS_CHILD | WS_BORDER,
            10, 400, 80, 25,
            hwnd, NULL, NULL, NULL);

Metabolix [17.04.2017 20:09:06]

#

Niin, TEXT-makron sisään voi laittaa vain tekstivakoita (tekstiä lainausmerkeissä), joten sinun pitää ensiksi selvittää, miten saat ohjelmasi tehtyä ilman TEXT-makron käyttöä. Käytännössä pitää siis päättää, käytätkö Unicodea vai et, ja määritellä tämä ohjelman alussa ja koodata ohjelma sen mukaan. Lisäksi pitää käyttää string-olioita (tai mahdollisesti wstring-olioita Unicoden kanssa) oikein eli käyttää niiden c_str-metodia, kun WinAPI tarvitsee tekstit char*-tyyppisinä eikä olioina.

WinAPI:ssa voisit käyttää kieliversioiden toteutukseen myös resurssitiedostoja. Tästä löytyy lisätietoa netistä.

WinAPI on yleensä aika vaikea tapa käyttöliittymien ohjelmointiin. Jos ei ole jotain erityistä syytä sen käyttöön, kannattaa valita jokin helpompi kirjasto (Qt, GTK, wxWidgets tms.). Nämä ihan varmasti vähentävät virheitä ja usein myös helpottavat kieliversioiden tekemistä.

Onko edes C++ nyt tarpeen? Monet muut kielet ovat helpompia ja turvallisempia esimerkiksi juuri käyttöliittymäohjelmoinnissa. Kannattaa valita kieli käyttötarkoituksen mukaan.

Jopoxi [17.04.2017 23:41:09]

#

Käsitin että tämä oli C++ vasta alkajille tarkoitettu oppaassa ainakin mainitsit niin.

Metabolix [18.04.2017 17:58:11]

#

Kyllä C++-opas sopii aloittelijalle, ja C++ on ihan mahdollinen kieli aloittelijalle. Silti C++ ei ole paras kieli kaikkeen, ja pitää valita projektit sen mukaan, mihin omat taidot riittävät.

Monikielinen graafinen ohjelma WinAPI:lla ei sovi aloittelijan projektiksi juuri millään kielellä. C++:lla se vaatii erityisen paljon vaivaa. Tarkkaan katsomalla ehkä huomaatkin, että aloittelijalle sopivassa C++-oppaassa ei käsitellä tuota aihetta ollenkaan.

Jos opettelet ohjelmointia vain huviksesi, mieti, mitä haluat tehdä, ja valitse jokin kieli, joka sopii hyvin juuri siihen tarkoitukseen.

Oppaan alussa selitetään kaikesta tästä.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta