Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: VB: kappaleen pituus

Freeze [12.11.2006 10:35:15]

#

Moi.

Tässä tuli semmonen huomio, että kun sovelsin tuota esimerkkiä (https://www.ohjelmointiputka.net/keskustelu/1021-mp3-sen-pituus-selville), ettei tuolla tavalla voi selvittää erikoismerkkejä(jopa välimerkkiä) sisältävien kappaleiden pituuden selvitystä. Miten pitäis muokata että toimis?

nipasenmaki [12.11.2006 11:01:26]

#

Kopioi soitettava kappale väliaikaiseen tiedostoon pituuden lukemiseksi.

Esimerkiksi, [asema]:\gappale.mp3:ksi niin ei välilyöntejä, eikä erikoismerkkejä esiinny.

FileCopy "C:\omat musiikit\j33j33\kipale.mp3", "c:\gappale.mp3"

Freeze [12.11.2006 11:07:34]

#

Nipasenmaki: Liian hidas ja aika 'purkka' tapa :D

Antti Laaksonen [12.11.2006 11:42:38]

#

Tiedoston nimi pitää muuttaa lyhyempään muotoon.

Tässä on esimerkki:

Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long

Private Sub Form_Load()
    Dim nimi As String * 255
    Dim tiedosto As String
    Dim pituus As String * 255

    ' selvitetään tiedoston lyhyt nimi
    GetShortPathName "c:\musa\Tässä on tiedoston nimi.mp3", nimi, 255
    tiedosto = Left(nimi, InStr(nimi, Chr(0)) - 1)

    MsgBox "Lyhyt nimi: " & tiedosto

    ' haetaan kappaleen pituus millisekunteina
    mciSendString "open " & tiedosto & " alias musa", 0, 0, 0
    mciSendString "set time format milliseconds", 0, 0, 0
    mciSendString "status musa length", pituus, 255, 0
    mciSendString "close musa", 0, 0, 0

    ' muutetaan aika minuuteiksi ja sekunneiksi
    Dim minuutit As Integer, sekunnit As Integer
    sekunnit = pituus \ 1000
    minuutit = sekunnit \ 60
    sekunnit = sekunnit Mod 60

    MsgBox "Kappaleen kesto: " & minuutit & ":" & sekunnit

End Sub

Freeze [12.11.2006 15:29:48]

#

Antti Laaksonen: Tarkemmin tutkittuna huomasin, että koodisi nollaa koko tiedostonimen. Tulee vaan ilmotus että nimi on nyt:

Milläs ton saa korjatuks?

Vastaus

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

Tietoa sivustosta