Συνάρτηση η οποία διαβάζει το xml αρχείο και σε κάθε λήμμα καλεί μία άλλη. Στην καλούμενη συνάρτηση είναι γνωστά (γιατί είναι public) το λήμμα και το κείμενο οπότε μπορούμε να επεξεργαστούμε το κείμενο και να βρούμε ότι θέλουμε.

PUBLIC prTrexonLimma AS STRING
PUBLIC prTrexonLimmaSQL AS STRING
PUBLIC prTrexonKeimeno AS STRING


PUBLIC SUB Button1_Click()
 DIM prAnagnostis AS XmlReader
 DIM prCounterHere AS Integer
 DIM prTimePassedHere AS Integer 
 DIM prdbfilename AS String
 DIM prXMLfilename AS String 

 prdbfilename = "wiki.db"
 prXMLfilename = "latest.xml"
 
  IF NOT Exist(Application.path &/ prdbfilename) THEN
    Message.Info("db file not found. will be created!")
    prTempFile = OPEN Application.path & "/MakeData.sql" FOR CREATE  
    PRINT #prTempFile, "create table wikipages (w_title text,w_lang text );create table wikitrans (t_word text,t_lang text );CREATE INDEX mainindex on wikipages (w_title ASC);CREATE INDEX wordindex on wikitrans (t_word ASC);"
    prTempFile.Close
    SHELL "sqlite3 " & Application.Path &/ prdbfilename & "<" & Application.path & "/MakeData.sql" WAIT 
  ENDIF
  WITH pubConnToDB
      .Type = "sqlite3"
      .Name = Application.Path &/ prdbfilename
  END WITH

 prAnagnostis = NEW XmlReader
 TRY prAnagnostis.Open(prXMLfilename)
 IF ERROR THEN 
   Message.Error("Error when trying to open the latest.xml file!")
   RETURN 
 ENDIF
 TRY pubConnToDB.Exec("DELETE FROM wikipages;")
 IF ERROR THEN 
  TextArea1.Text = TextArea1.Text & Chr(13) & "DELETE FROM wikipages; FAILED." & Chr(13) & error.Text 
 END IF
 pubConnToDB.Exec("DELETE FROM wikitrans;")
 'pubConnToDB.Exec("DELETE FROM unprocessed;")
 'pubConnToDB.Exec("DELETE FROM specialpages;")
 'pubConnToDB.Exec("DELETE FROM redirections;")
 mycounter = 0
 prCounterHere = 0
 prTimePassedHere = 0
 DO WHILE TRUE
    'refresh every 100
    IF prTimePassedHere < prCounterHere - 99 THEN
      'ενημέρωση του GUI για πόσα έχουν γίνει
      lblcounter2.text = prCounterHere
      lblcounter2.Refresh
      TextArea1.Refresh
      LangProblems.Refresh
      WAIT 0.1
      prTimePassedHere = prCounterHere
    END IF

   TRY prAnagnostis.Read()
   IF prAnagnostis.Eof THEN BREAK
   'για όση ώρα το όνομα του κόμβου δεν είναι page διάβαζε συνέχεια
   DO WHILE prAnagnostis.Node.Name <> "page"
     TRY prAnagnostis.Read()
     'φυσικά αν για κάποιο λόγο φτάσεις στο τέλος βγες από το Loop. 
     '(για να είμαστε εξασφαλισμένοι και να μην σκάει το πρόγραμμα)
     IF prAnagnostis.Eof THEN BREAK  
   LOOP
   'Αφού έφτασες εδώ πάει να πει ότι βρήκες έναν κόμβο με το όνομα page.
   'Μέσα σε αυτόν τον κόμβο υπάρχουν άλλοι κόμβοι.
   'Ας ψάξουμε για τον κόμβο title για να έχουμε τον τίτλο (της wiki σελίδας).
   'Προφανώς είναι ο επόμενος κόμβος αλλά καλού κακού...
   DO WHILE prAnagnostis.Node.Name <> "title"
     TRY prAnagnostis.Read()
     IF prAnagnostis.Eof THEN BREAK  
   LOOP
   'Βάλε το όνομα-τίτλο της σελίδας σε μια τοπική μεταβλητή για να το έχουμε    
     TRY prAnagnostis.Read()
     IF prAnagnostis.Eof THEN BREAK  
     prTrexonLimma = prAnagnostis.Node.Value
     'ετοίμασε και μία εκδοχή για SQL
     prTrexonLimmaSQL = Replace$(prTrexonLimma, "'", "''")
     'αν θέλω σημείο debug σε μια λέξη
      ' IF prTrexonLimma = "pan" THEN
      '  Message.Info("ops")
      ' END IF
       'πάμε να βρούμε το κείμενο της σελίδας του wiki που βρίσκεται στον κόμβο text
       DO WHILE prAnagnostis.Node.Name <> "text"
         TRY prAnagnostis.Read()
         IF prAnagnostis.Eof THEN BREAK  
       LOOP
       'φτάσαμε στον κόμβο text αλλά το πραγματικό περιεχόμενο είναι στο επόμενο διάβασμα
       TRY prAnagnostis.Read()
       IF prAnagnostis.Eof THEN BREAK  
       'βάλε το κείμενο σε μια τοπική μεταβλητή
       prTrexonKeimeno = prAnagnostis.Node.Value
        'κάνε ότι θέλεις με αυτό το λήμμα
        processWordPage()
        
       prCounterHere = prCounterHere + 1
 LOOP
 'φυσικά κλείνουμε το αρχείο για να μην μείνει "ξεκρέμαστο"
 prAnagnostis.Close
'κλείνουμε και την public σύνδεση με τη βάση
 pubConnToDB.Commit 
 pubConnToDB.close  
 'δείχνουμε στο χρήστη ότι τελείωσε
        TextArea1.Text = TextArea1.Text & Chr(13) & "ΤΕΛΟΣ"
        TextArea1.Refresh
END

Επιμέρους

επεξεργασία

Πολωνικά χωρίς γένος

επεξεργασία

Αναζήτηση πολωνικών που δεν έχουν γένος.

PUBLIC SUB sCheckPlgenos()
  DIM prhPLstart AS Integer
  DIM prhPLkeimeno AS String
  DIM prhNextLangstart AS Integer
  DIM prhPLOYSstart AS Integer
  DIM prhNextReturn1 AS Integer
  
  'μην ψάχνεις εκτός κύριου namespace
  IF String.InStr(prTrexonLimma, ":") THEN RETURN

  prhPLstart = String.InStr(prTrexonKeimeno, "=={{-pl-}}==")
  IF prhPLstart > 0 THEN 
    prhNextReturn1 = String.InStr(prTrexonKeimeno, "\n", prhPLstart + 1)
    prhNextLangstart = String.InStr(prTrexonKeimeno, "=={{-", prhNextReturn1 + 1)
    IF prhNextLangstart > 0 THEN 
      prhPLkeimeno = String.Mid(prTrexonKeimeno, prhNextReturn1 + 1, prhNextLangstart - prhNextReturn1)
    ELSE 
      prhPLkeimeno = String.Mid(prTrexonKeimeno, prhNextReturn1 + 1)  'ας έχει και τα iw  
    END IF
    prhPLOYSstart = String.InStr(prhPLkeimeno, "=={{ουσιαστικό|pl")
    IF prhPLOYSstart > 0 THEN 
      'βρήκαμε 
      IF NOT fexeigenos(prhPLkeimeno, prhPLOYSstart) THEN txtT1.Text &= ", " & prTrexonLimma
' ή txtT1.Text &= "\n[[" & prTrexonLimma & "]]"
'αλλά αυτό γίνεται και με αναζήτηση και αντικατάσταση μετά στο gedit.
'Για την ώρα ας τα βλέπω όλα εύκολα.
    END IF
    prhPLOYSstart = String.InStr(prhPLkeimeno, "=={{κύριο όνομα|pl")
    IF prhPLOYSstart > 0 THEN 
      'βρήκαμε 
      IF NOT fexeigenos(prhPLkeimeno, prhPLOYSstart) THEN txtT1.Text &= ", " & prTrexonLimma
    END IF
    prhPLOYSstart = String.InStr(prhPLkeimeno, "=={{πολυλεκτικός όρος|pl")
    IF prhPLOYSstart > 0 THEN 
      'βρήκαμε 
      IF NOT fexeigenos(prhPLkeimeno, prhPLOYSstart) THEN txtT1.Text &= ", " & prTrexonLimma
    END IF
    
  END IF
  
  
END

PUBLIC FUNCTION fexeigenos(poioKeimeno AS String, poioStart AS Integer) AS Boolean
  DIM prhNextReturn1 AS Integer
  DIM prhNextReturn2 AS Integer
  DIM prhText AS String
  
  prhNextReturn1 = String.InStr(poioKeimeno, "\n", poioStart + 1)
  prhNextReturn2 = String.InStr(poioKeimeno, "\n", prhNextReturn1 + 1)
  'θεωρητικά εδώ (ίσως) έχει το '''PAGENAME''' και το γένος
  'αν όχι ας μπει έτσι κι αλλιώς στη λίστα για να το δώ
  'μπορεί να γίνει πιο ακριβής έλεγχος για όλα τα πρότυπα (απλ, απληθ κλπ)
  'και για το αν υπάρχει το '''PAGENAME''' ακριβώς από κάτω αλλά δεν είναι της παρούσης:-)
  prhText = String.Mid(poioKeimeno, prhNextReturn1, prhNextReturn2 - prhNextReturn1)
  IF String.InStr(prhText, "{{α") > 0 OR String.InStr(prhText, "{{θ") > 0 OR String.InStr(prhText, "{{ο") > 0 THEN 
    RETURN TRUE
  ELSE
    RETURN FALSE
  END IF
END

Για online:
Αν υπάρχει ήχος στο Πολωνικό φτιάξε το ίδιο για το ελληνικό.

'Button5-κουμπάκι
'txtPoio - κουτί κειμένου (textBox)
'txtReturned - κουτί κειμένου (textArea)
PUBLIC SUB Button5_Click()

  DIM prhReturnString AS String
  DIM prhString AS String 
  
  'δουλεύει μόνο με απλές λέξεις χωρίς κενά, αποστρόφους κλπ.
  'και μόνο για λέξεις που έχουν ήχο το Pl-όνομαλήμματος.ogg
  prhString = "curl --retry 10 -s -f 'http://pl.wiktionary.org/w/api.php?action=query&prop=revisions&titles="
  prhString &= txtPoio.Text
  prhString &= "&rvprop=user|content' |grep '{{audio|Pl-"
  prhString &= txtPoio.Text
  prhString &= ".ogg'"
  SHELL prhString TO prhReturnString
  IF String.Len(prhReturnString) > 0 THEN
    IF String.InStr(prhReturnString, "{{audio|Pl-" & txtPoio.Text) > 0 THEN
      txtReturned.Text = "==={{προφορά}}===\n:{{ήχος|Pl-" & txtPoio.Text & ".ogg|Ήχος}}"
    END IF
  END IF
END

λέξεις ημέρας

επεξεργασία

Βρες λέξεις της ημέρας από επιλεγμένες

PUBLIC SUB Button8_Click()
  DIM xcounter AS Integer
  DIM prhEntoli AS String 
  DIM prhReturnString AS String 
  
  prLekseis.Clear
  prLekseis.add("διαβρώνω") '1
  prLekseis.add("λαμβδακισμός") '2
  prLekseis.add("προτίμηση") '3
  prLekseis.add("καλικούτσα") '4
  prLekseis.add("δυσμένεια") '5
  prLekseis.add("ευχέρεια") '6
  prLekseis.add("επαναπαύομαι") '7
  prLekseis.add("λεπτοδουλειά") '8
  prLekseis.add("λεμφαδένας") '9
  prLekseis.add("κομποσχοίνι") '10
  prLekseis.add("ανένδοτος") '11
  prLekseis.add("βαρκαρόλα") '12
  prLekseis.add("γαργαλητό") '13
  prLekseis.add("ξεζαλίζω") '14
  prLekseis.add("οργανόγραμμα") '15
  prLekseis.add("παραίσθηση") '16
  prLekseis.add("ροβόλημα") '17
  prLekseis.add("στριφογυρίζω") '18
  prLekseis.add("ταλάντωση") '19
  prLekseis.add("υπαλληλίκι") '20
  prLekseis.add("ψευτομάρτυρας") '21
  prLekseis.add("χάντρα") '22
  prLekseis.add("ημίλευκος") '23
  prLekseis.add("σάκος") '24
  prLekseis.add("σβουνιά") '25
  prLekseis.add("φεγγαρόφωτος") '26
  prLekseis.add("ζέβρα") '27
  prLekseis.add("ηλιοτρόπιο") '28
  prLekseis.add("θραύω") '29
  prLekseis.add("ίνδαλμα") '30
  prLekseis.add("μανεκέν") '31

  FOR xcounter = 1 TO 31
    prhEntoli = "curl --retry 10 -s -f 'http://el.wiktionary.org/w/api.php?action=query&prop=revisions&titles=Πρότυπο:ΛτΗ"
    prhEntoli &= xcounter
    prhEntoli &= "&format=xml&rvprop=user|content'"
    SHELL prhEntoli TO prhReturnString
    prhReturnString = fextractleksi(prhReturnString)
    prhEntoli = "curl --retry 10 -s -f 'http://el.wiktionary.org/w/api.php?action=query&prop=revisions&titles="
    prhEntoli &= prhReturnString
    prhEntoli &= "&format=xml&rvprop=user|content'"
    SHELL prhEntoli TO prhReturnString
    IF String.InStr(prhReturnString, "λείπει ο ορισμός") < 1 THEN 
      txtT1.Text &= "\n" & xcounter & "\t" & frandomleksi()
    END IF
    txtT1.Refresh
    WAIT 0.3
    
  NEXT
END

PRIVATE FUNCTION fextractleksi(poioKeimeno AS String) AS String
  DIM prhString1 AS String 
  DIM prhstring2 AS String 
  
  prhString1 = mdlIlias.OCPRealSplit(poioKeimeno, "<rev user")[1]
  prhstring2 = Split(prhString1, ">")[1]
  prhString1 = Split(prhString2, "<")[0]
  RETURN prhString1
END

PRIVATE FUNCTION frandomleksi() AS String
  DIM xcounter AS Integer
  DIM prhString AS String 
  
  xcounter = Rnd(0, prLekseis.Count)
  prhString = prLekseis[xcounter]
  prLekseis.Remove(xcounter)
  RETURN prhString
END

Υποκοριστικά

επεξεργασία
PUBLIC SUB bCreateIt_Click()

  DIM prhLemma AS String 
  DIM prhklisi AS String 
  DIM prhkat AS String 
  DIM prhGenos AS String 
  DIM prhTestMatch AS Boolean 
  DIM prhReturnString AS String
  DIM prhString AS String 
  DIM prhtayt AS String
  
  txtMoiazoun.Text = ""
  prhLemma = TextAreaaki.Text
  SELECT CASE String.Right(txtYpok.Text, 3)
    'Κύριο όνομα;
    'ζιλεδάκι-ζελεδάκι;
    'γαϊδουράκι-γαϊδαράκος;
    'Κατινάκι-Κατινούλα-Κατινίτσα
    CASE "άκι"
      prhklisi = "παιδάκι" 'πρότυπο κλίσης
      prhkat = "-άκι" 'κατάληξη υποκοριστικού
      prhGenos = "{{ο}}" 'γένος
      prhTestMatch = (mdlIlias.OCPkleidael(String.Left(txtYpok.Text, String.Len(txtYpok.Text) - 3)) = mdlIlias.OCPkleidael(String.Left(txtAplo.Text, String.Len(txtYpok.Text) - 3)))
    CASE "ύλα" 'προσοχή στα επίθετα -ούλης,-ούλα
      prhklisi = "πείνα"
      prhkat = "-ούλα"
      prhGenos = "{{θ}}"
      prhTestMatch = (mdlIlias.OCPkleidael(String.Left(txtYpok.Text, String.Len(txtYpok.Text) - 4)) = mdlIlias.OCPkleidael(String.Left(txtAplo.Text, String.Len(txtYpok.Text) - 4)))
    CASE "τσα"
      prhklisi = "πείνα"
      prhkat = "-ίτσα"
      prhGenos = "{{θ}}" 'μπορεί και να μπει στο κείμενο
      IF ChExeiOyla.Value = TRUE THEN 
        IF txt_OULA.text = "" THEN 
          txtMoiazoun.Text = "ΣΦΑΛΜΑ"
          RETURN
        ELSE
          prhtayt = txt_OULA.text
          prhLemma = TextAreaitsa.Text
        END IF
        
      END IF
      prhTestMatch = (mdlIlias.OCPkleidael(String.Left(txtYpok.Text, String.Len(txtYpok.Text) - 4)) = mdlIlias.OCPkleidael(String.Left(txtAplo.Text, String.Len(txtYpok.Text) - 4)))
    CASE ELSE 
      txtMoiazoun.Text = "ΣΦΑΛΜΑ"
      RETURN
  END SELECT

  prhLemma = Replace(prhLemma, "##1##", txtAplo.Text) 'από που προέρχεται
  prhLemma = Replace(prhLemma, "##2##", String.Left(txtYpok.Text, String.Len(txtYpok.Text) - 1)) 'χωρίς την κατάληξη για την κλίση
  prhLemma = Replace(prhLemma, "##3##", mdlIlias.OCPkleidael(txtYpok.text)) 'κλείδα
  prhLemma = Replace(prhLemma, "##4##", prhkat)
  prhLemma = Replace(prhLemma, "##5##", prhklisi)
  prhLemma = Replace(prhLemma, "##6##", prhGenos)
  prhLemma = Replace(prhLemma, "##7##", prhtayt)

  TextAreaLemma.Text = prhLemma
  txtMoiazoun.Text = IIf(prhTestMatch, "οκ", "ΔΕΝ ΜΟΙΑΖΟΥΝ!!!!")

  'δουλεύει μόνο με απλές λέξεις χωρίς κενά, αποστρόφους κλπ.
  prhString = "curl --retry 10 -s -f 'http://el.wiktionary.org/w/api.php?format=xml&action=query&prop=revisions&titles="
  prhString &= txtYpok.Text
  prhString &= "&rvprop=user|content'"
  SHELL prhString TO prhReturnString
  'μικρό μπέρδεμα με τα rev και τις αλλαγές από <text>  σε <rev>
  prhReturnString = String.Left(prhReturnString, String.InStr(prhReturnString, "</rev>") - 1)
  prhReturnString = String.Mid(prhReturnString, 1 + String.InStr(prhReturnString, ">", String.InStr(prhReturnString, "<rev ") + 1))
  TextAreainwiki.Text = prhReturnString
END

Ελληνική κλείδα

επεξεργασία
PUBLIC FUNCTION OCPkleidael(poialeksi AS String) AS String
  DIM grChar1 AS String
  DIM grChar2 AS String
  DIM grChar1array AS NEW String[]
  DIM grChar2array AS NEW String[]
  DIM xcounter AS Integer
  DIM ycounter AS Integer
  DIM prhKleida AS String 
  
  
  grChar1 = "Ά,Έ,Ή,Ί,Ό,Ύ,Ώ,ΐ,Α,Β,Γ,Δ,Ε,Ζ,Η,Θ,Ι,Κ,Λ,Μ,Ν,Ξ,Ο,Π,Ρ,Σ,Τ,Υ,Φ,Χ,Ψ,Ω,Ϊ,Ϋ,ά,έ,ή,ί,ΰ,α,β,γ,δ,ε,ζ,η,θ,ι,κ,λ,μ,ν,ξ,ο,π,ρ,ς,σ,τ,υ,φ,χ,ψ,ω,ϊ,ϋ,ό,ύ,ώ,ἀ,ἁ,ἂ,ἃ,ἄ,ἅ,ἆ,ἇ,Ἀ,Ἁ,Ἂ,Ἃ,Ἄ,Ἅ,Ἆ,Ἇ,ἐ,ἑ,ἒ,ἓ,ἔ,ἕ,Ἐ,Ἑ,Ἒ,Ἓ,Ἔ,Ἕ,ἠ,ἡ,ἢ,ἣ,ἤ,ἥ,ἦ,ἧ,Ἠ,Ἡ,Ἢ,Ἣ,Ἤ,Ἥ,Ἦ,Ἧ,ἰ,ἱ,ἲ,ἳ,ἴ,ἵ,ἶ,ἷ,Ἰ,Ἱ,Ἲ,Ἳ,Ἴ,Ἵ,Ἶ,Ἷ,ὀ,ὁ,ὂ,ὃ,ὄ,ὅ,Ὀ,Ὁ,Ὂ,Ὃ,Ὄ,Ὅ,ὐ,ὑ,ὒ,ὓ,ὔ,ὕ,ὖ,ὗ,Ὑ,Ὓ,Ὕ,Ὗ,ὠ,ὡ,ὢ,ὣ,ὤ,ὥ,ὦ,ὧ,Ὠ,Ὡ,Ὢ,Ὣ,Ὤ,Ὥ,Ὦ,Ὧ,ὰ,ά,ὲ,έ,ὴ,ή,ὶ,ί,ὸ,ό,ὺ,ύ,ὼ,ώ,ᾀ,ᾁ,ᾂ,ᾃ,ᾄ,ᾅ,ᾆ,ᾇ,ᾈ,ᾉ,ᾊ,ᾋ,ᾌ,ᾍ,ᾎ,ᾏ,ᾐ,ᾑ,ᾒ,ᾓ,ᾔ,ᾕ,ᾖ,ᾗ,ᾘ,ᾙ,ᾚ,ᾛ,ᾜ,ᾝ,ᾞ,ᾟ,ᾠ,ᾡ,ᾢ,ᾣ,ᾤ,ᾥ,ᾦ,ᾧ,ᾨ,ᾩ,ᾪ,ᾫ,ᾬ,ᾭ,ᾮ,ᾯ,ᾰ,ᾱ,ᾲ,ᾳ,ᾴ,ᾶ,ᾷ,Ᾰ,Ᾱ,Ὰ,Ά,ᾼ,ῂ,ῃ,ῄ,ῆ,ῇ,Ὲ,Έ,Ὴ,Ή,ῌ,ῖ,ῗ,Ῐ,Ῑ,Ὶ,Ί,ῠ,ῡ,ῢ,ΰ,ῤ,ῥ,ῦ,ῧ,Ῠ,Ῡ,Ὺ,Ύ,Ῥ,ῲ,ῳ,ῴ,ῶ,ῷ,Ὸ,Ό,Ὼ,Ώ,ῼ,Ω"
  grChar2 = "α,ε,η,ι,ο,υ,ω,ι,α,β,γ,δ,ε,ζ,η,θ,ι,κ,λ,μ,ν,ξ,ο,π,ρ,σ,τ,υ,φ,χ,ψ,ω,ι,υ,α,ε,η,ι,υ,α,β,γ,δ,ε,ζ,η,θ,ι,κ,λ,μ,ν,ξ,ο,π,ρ,σ,σ,τ,υ,φ,χ,ψ,ω,ι,υ,ο,υ,ω,α,α,α,α,α,α,α,α,α,α,α,α,α,α,α,α,ε,ε,ε,ε,ε,ε,ε,ε,ε,ε,ε,ε,η,η,η,η,η,η,η,η,η,η,η,η,η,η,η,η,ι,ι,ι,ι,ι,ι,ι,ι,ι,ι,ι,ι,ι,ι,ι,ι,ο,ο,ο,ο,ο,ο,ο,ο,ο,ο,ο,ο,υ,υ,υ,υ,υ,υ,υ,υ,υ,υ,υ,υ,ω,ω,ω,ω,ω,ω,ω,ω,ω,ω,ω,ω,ω,ω,ω,ω,α,α,ε,ε,η,η,ι,ι,ο,ο,υ,υ,ω,ω,α,α,α,α,α,α,α,α,α,α,α,α,α,α,α,α,η,η,η,η,η,η,η,η,η,η,η,η,η,η,η,η,ω,ω,ω,ω,ω,ω,ω,ω,ω,ω,ω,ω,ω,ω,ω,ω,α,α,α,α,α,α,α,α,α,α,α,α,η,η,η,η,η,ε,ε,η,η,η,ι,ι,ι,ι,ι,ι,υ,υ,υ,υ,ρ,ρ,υ,υ,υ,υ,υ,υ,ρ,ω,ω,ω,ω,ω,ο,ο,ω,ω,ω,ω"
  grChar1array = Split(grChar1, ",")
  grChar2array = Split(grChar2, ",")
  
  FOR xcounter = 1 TO String.Len(poialeksi)
    FOR ycounter = 0 TO grChar1array.Count - 1
      IF String.Mid(poialeksi, xcounter, 1) = grChar1array[ycounter] THEN 
        prhKleida &= grChar2array[ycounter] 
        BREAK
      END IF
    NEXT
  NEXT
  RETURN prhKleida
END

σε -α μόνο με επίρρημα ή μόνο μορφή επιθέτου

επεξεργασία
    IF NOT (String.Right(prTrexonLimma, String.Len("α")) = "α") THEN RETURN 0
    IF String.InStr(prTrexonKeimeno, "={{επίρρημα|el}}=") > 0 XOR String.InStr(prTrexonKeimeno, "={{μορφή επιθέτου|el}}=") > 0 THEN 
      IF String.InStr(prTrexonKeimeno, "={{επίρρημα|el}}=") > 0 THEN
        txtT1.Text &= "\nεπ-" & prTrexonLimma 
      ELSE
        txtT1.Text &= "\nμε-" & prTrexonLimma 
      END IF
      RETURN 1
    END IF
    RETURN 0