Millä koodilla saisin tehtyä mahd. lyhyen ohjelman joka lukisi tietokannasta tarvittavat tiedot. Ohjelman tulisi lukea jostain suomi-englanti -sanakirjasta ensin suomen kielinen sana ja sitten englanninkielinen ( mistä tällainen tietokanta olisi saatavilla?). Sen jälkeen sen tulisi sijoittaa sanat:
.replace("suomen", "englannin kielinen")
Ja tämän jälkeen tulostaa vaikka textbox1:een jokainen lause omalle riville.
Tämän tarvitsisi olla toteutettavissa Vb .net:illä
Tässä ratkaisu käännöskoneeksi.
Formilla tulee olla textbox1 ja 2 joilla multiline ja vertical scroll. Sanakirja tiedosto on oletettu teksi tiedostoksi, jossa on ";" erottimena suomen ja englannin sanan välissä. Kaikki suomen kielen taivutusmuodot tulee olla tiedostossa. Silti kielioppi mättää.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim al1(100) As String Dim al2(100) As String Dim s() As String Dim i As Long Dim k As Long Dim k_max As Long Dim m As Integer Dim n As Integer Dim st1 As String Dim st2 As String Dim ss As String Dim sss As String Dim ff As Integer Dim fname As String 'esimerkki teksitiedoston koodauksesta: 'tämä;this 'on;is 'minun;my 'uusi;new 'sanakirja;dictionary 'teksti;text 'suomeksi;with Finnish 'tähän;to here 'luetaan tekstitiedosto Dim TextLine As String FileOpen(1, "C:\suomeksi.txt", OpenMode.Input) ' Open file. k = 0 While Not EOF(1) ' Loop until end of file. TextLine = LineInput(1) ' Read line into variable. s = Split(TextLine, ";") ' split al1(k) = s(0) ' laitetaan listaa 1 al2(k) = s(1) ' laitetaan listaa 2 k = k + 1 End While FileClose(1) ' Close file. k_max = k - 1 'Kännettävä teksti 'TextBox1.Text = "tämä on minun uusi sanakirja" TextBox2.Text = "" 'Käännetään For k = 0 To UBound(TextBox1.Lines) sss = "" s = Split(TextBox1.Lines(k), " ") ' pilkotaan rivi sanoiksi taulukkoon s() 'kaikki rivillä olevat sanat käydään läpi For m = 0 To UBound(s) ' poistetaan pilkku ja piste ss = Replace(s(m), ".", "") ss = Replace(ss, ",", "") ss = Replace(ss, ":", "") For n = 0 To k_max 'huomioidaan myös isolla alkavat st1 = al1(n).ToUpper st1 = st1.Chars(0) + al1(n).Substring(1, al1(n).Length - 1) st2 = al2(n).ToUpper st2 = st2.Chars(0) + al2(n).Substring(1, al2(n).Length - 1) 'pienellä alkavat If (ss = al1(n)) Then sss = sss & al2(n) 'lisätään pisteet takaisin If s(m).Chars(s(m).Length - 1) = "." Then sss = sss & "." If s(m).Chars(s(m).Length - 1) = "," Then sss = sss & "," If s(m).Chars(s(m).Length - 1) = ":" Then sss = sss & ":" If (m <> UBound(s)) Or (k <> UBound(TextBox1.Lines)) Then sss = sss & " " End If ' isolla alkavat If (ss = st1) Then sss = sss & st2 'lisätään pisteet takaisin If s(m).Chars(s(m).Length - 1) = "." Then sss = sss & "." If s(m).Chars(s(m).Length - 1) = "," Then sss = sss & "," If s(m).Chars(s(m).Length - 1) = ":" Then sss = sss & ":" If (m <> UBound(s)) Or (k <> UBound(TextBox1.Lines)) Then sss = sss & " " End If Next Next If k = UBound(TextBox1.Lines) Then TextBox2.Text = TextBox2.Text & sss 'viimeiseen riviin ei rivinvaihtoa. Else TextBox2.Text = sss & TextBox2.Text & Chr(13) & Chr(10) 'rivinvaihto End If Next End Sub
Tiedän että kielioppi mättää mutta sen saa jos jaksaa korjattua suurinpiirtein oikein jos haluu...
Niin tämä koodi ei siis lue mitään mistään tietokannasta... vaan tekstitiedostosta "Suomeksi.txt"
mutta sehän tarkoittaa että minun pitää kuitenkin kirjoittaa sanakirjasta kaikki koneelle... vai onko jostakin saatavilla valmiina oleva???
Enpä usko, että tuollaisia sanalistoja on olemassa, ainakaan ilmaiseksi. Sanakirjoissakin tapaa olla tekijänoikeudet. Muutenkaan kääntäminen ei valitettavasti ole niin helppoa, että yksittäinen sana korvataan toisenkielisellä vastineella.
No jaa... taidan sitten vaihtaa ideaa... vai keksisikö kukaan aloittelevalle ohjelmoijalle hyvää "projektia" -jossa saisi harjoiteltua vähän kaikilta osa-alueilta.
:D
ainakin sulla on vaatimattomat aloitusideat.
mitä jos tekisit half-life 3:sen?
tee perinteinen cd-kansiohjelma winapi-käskyillä.
älä luo yhtään objektia ide:n avulla vaan puhtaalla koodilla.
käytä esikatselussa bitblt:ta ja muita kivoja juttuja..
ja lisää siihen sitten pieni tietokanta, mitä cd:n kansio on jo tehty.. sitten tuki, että se osaa hakea netistä kansia. ja sitten siihen voisi tulla kovalevyn skannausjuttu, joka etsii kovolta imageja ja sitten se yrittäis arpoa niihin oikeat kannet nimen perusteella.. ja sitten vielä..
Aihe on jo aika vanha, joten et voi enää vastata siihen.