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 ?
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.
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[][]
Moniulotteisessa taulukossa täytyy antaa ainakin muiden kuin ensimmäisen suunnan pituudet valmiiksi:
std::string tekstit[][2] = { {"suomi", "englanti"}, {"sana", "word"}, {"valikko", "menu"} };
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);
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.
Käsitin että tämä oli C++ vasta alkajille tarkoitettu oppaassa ainakin mainitsit niin.
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ä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.