PDA

Επιστροφή στο Forum : Μετατροπή ονομάτων αρχείων και επεξεργασία σε MP3 tags



yiapap
30-04-05, 18:42
Ωθούμενος από αυτό το νήμα (http://www.adslgr.com/forum/showthread.php?t=16749) έφτιαξα ένα προγραμματάκι σε VB6 για τη μαζική μετατροπή ονομάτων αρχείων από Ελληνικά σε Αγγλικά και αντίστροφα.
Η εφαρμογή έχει επίσης τη δυνατότητα να κάνει edit τα ID tags αρχείων MP3 αλλά δεν την έχω ενεργοποιήσει ακόμη (to do). Αν σας ενδιαφέρει πείτε μου.

Βέβαια ομολογώ ότι ειδικά στη μετονομασία από Αγγλικά σε Ελληνικά δεν τα πάει πολύ καλά αφου τα greeklish δεν έχουν συγκεκριμένους κανόνες (π.χ. "πως γράφεις ξένοιαστος"="pws grafeis xenoiastos","pos grafeis kseniastos","pos grafis xeniastos" κτλ.κτλ.
Επισυνάπτω το προγραμματάκι, τον πηγαίο κώδικα και μετικά screenshots (πριν, κατά τη διάρκεια, μετά)

yiapap
30-04-05, 18:48
Για την παραμετροποίηση της μετατροπής (ώστε να ταιριάζει με το δικό σας στυλ greeklish) δείτε το module Global

Public Function ConvertString(sValue As String, Optional bReverse As Boolean = False)
'Convert sFrom chars in sValue to sTo
Dim tmp As String, sFrom As String, sTo As String, sVar As String
Dim k As Integer, pos As Byte

sFrom = "Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω ΕΙΟΙΟΥΑΥΕΥΟΪΑΪΕΪ Ά Έ Ή Ί Ό Ύ Ώ "
sFrom = sFrom & LCase(sFrom) & "ς "
sTo = "A V G D E Z I THI K L M N X O P R S T I F CHPSO I I OUAVEVOIΑΙΕΙ A E H I O Y W "
sTo = sTo & LCase(sTo) & "s "

'Reverse strings if needed
If bReverse Then
sFrom = "A B C D E F G H I K L M N O P Q R S T U V W X Y Z J CHPSKSSH"
sFrom = sFrom & LCase(sFrom)
sTo = "Α Β Σ Δ Ε Φ Γ Η Ι Κ Λ Μ Ν Ο Π Κ Ρ Σ Τ ΟΥΒ Ω Ξ Υ Ζ ΤΖΧ Ψ Ξ Σ "
sTo = sTo & LCase(sTo)
End If

tmp = ""
sVar = sValue

For i = 1 To Len(sVar) + 1
If Mid(sVar, i, 1) = "" Then Exit For
If InStr(sFrom, Mid(sVar, i, 2)) > 0 And (InStr(sFrom, Mid(sVar, i, 2)) Mod 2 <> 0) Then 'Δίφθογγος
tmp = tmp & Mid(sTo, InStr(sFrom, Mid(sVar, i, 2)), 2)
i = i + 1
Else
If InStr(sFrom, Mid(sVar, i, 1) & " ") > 0 Then
tmp = tmp & Trim(Mid(sTo, InStr(sFrom, Mid(sVar, i, 1)), 2))
Else
tmp = tmp & Mid(sVar, i, 1)
End If
End If
Next i

If bReverse Then
'Correct ς
For i = 1 To Len(tmp)
If Mid(tmp, i, 1) = "σ" Then
If i = Len(tmp) Then
Mid(tmp, i, 1) = "ς"
Else
If Asc(Mid(tmp, i + 1, 1)) < 193 Then Mid(tmp, i, 1) = "ς"
End If
End If
Next i
End If



If Right(tmp, 1) = " " Then tmp = Left(tmp, Len(tmp) - 1)
ConvertString = tmp
End Function

Το πρώτο ζευγάρι sFrom,sTo μετατρέπει Ελληνικά σε Αγγλικά ενώ το 2ο Αγγλικά σε Ελληνικά.
Για να αλλάξετε τη μετατροπή απλά βρείτε το γράμμα που δε σας "κάθεται" και αλλάξτε τη μετατροπή του. Π.χ. για να αλλάξετε το "C" από "Σ" σε "Κ" πηγαίνετε στο 2ο ζζευγάρι (Αγγλικά->Ελληνικά) βρείτε το "C " και στην αντίστοιχη θέση αλλάξτε το "Σ " σε "Κ "
Προσέξτε μόνο ότι οι μονοί χαρακτήρες πρέπει να ακολουθούνται από κενό σε αντίθεση με τους δίφθογγους (π.χ. "Α ","Β " και "ΑΙ","ΕΙ")

tvelocity
30-04-05, 18:58
Βέβαια ομολογώ ότι ειδικά στη μετονομασία από Αγγλικά σε Ελληνικά δεν τα πάει πολύ καλά αφου τα greeklish δεν έχουν συγκεκριμένους κανόνες (π.χ. "πως γράφεις ξένοιαστος"="pws grafeis xenoiastos","pos grafeis kseniastos","pos grafis xeniastos" κτλ.κτλ.

Είχα γράψει παλαιότερα ένα μικρό προγραμματάκι σε python για μετατροπή απο greeklish σε ελληνικά, που προσπαθούσε να αναγνωρίσει τις λέξεις ολόκληρες, αντί να αντικαθιστά έναν έναν τους χαρακτήρες (με χρήση dictionary). Ήταν γραμμένο στα γρήγορα, και πολύ πρόχειρο και hacky, αλλα παρ'όλα αυτά έχει ικανοποιητικό ποσοστό επιτυχίας στην αναγνώριση λέξεων. Αν σε ενδιαφέρει, μπορώ να στο δώσω, να ρίξεις ένα βλέφαρο, όταν άνοίξουν οι σχολές και πάω Ηράκλειο :P

123456789
30-04-05, 19:29
Kαι ένα ακόμα ελληνικό http://users.sch.gr/adamopou/mp3lister/index.html

HaPagan
11-05-05, 12:03
Έχω να σας προτείνω άλλα 3 προγραμματάκια υλοποιημένα από έλληνες προγραμματιστές .

1. http://www.greekcoders.gr/showprog.php?progid=1
2. http://www.greekcoders.gr/showprog.php?progid=95
3. http://www.greekcoders.gr/showprog.php?progid=174

Ελπίζω να σας αρέσουν ! ;)

yiapap
16-12-06, 13:11
Back by popular demand ( :cool: )
Epeidh epikoinwnhse mazi moy filos apo to ekswteriko me problhma stoys Ellhnikoys Xarakthres, kanw mia eksairesh ston kanona twn Greeklish gia na postarw nea ekdosh thw efarmoghs poy xrhsimopoiei Agglika captions gi aytoys poy den mporoyn na doyn Ellhnikoys xarakthres.

Epanalambanontas thn perigrafh, h efarmogh exei skopo na metonomazei mazika arxeia apo Ellhnikoys xarakthres se Greeklish kai antistrofa.

Doyleyei kala sth metatroph apo Agglika se Ellhnika dystyxws oxi toso kala gia to antistrofo logw twn pollwn kai diaforwn eidvn (permutations) twn Greeklish.

Epanalambanw kai tis odhgies gia customisation an de sas "kathetai" kala h metafrash:
To prwto zeygari sFrom, sTo metatrepei Ellhnika se Agglika, enw to 2o Agglika se Ellhnika. Gia na allajete th metatroph apla breite to gramma poy den sas "kathetai" kai allaxte th metatroph toy. P.x. gia na allaxete to "C" app "ellhniko S" se "K" phgainete sto 2o zeygari (Agglika->Ellhnika) vreite to "C " kai sthn idia thesh allaxte to "S " se "K ".
Prosoxte, mono oti oi monoi xarakthres prepei na akoloythoyntai apo keno se antithesi me toys difthoggoys (p.x. "A ", "B " kai "AI", "EI")

@ ADSLgr.com All rights reserved.