[vb6] filename met - teken *

Pagina: 1
Acties:

  • erwink
  • Registratie: December 2000
  • Laatst online: 19-08 18:12
ik heb een programma gemaakt waarmee je de film op een video kaart kan afspelen en op de 2e video kaart is de controlpanel zichtbaar.

hier in kan je een playllist samen stellen, en verplaatsen van items in de playlist.

Nu heb ik het volgende probleem. Als ik bv als filename james bond - golden gun.avi heb crashed mijn programma hierop. haal ik het - teken uit het bestands naam dan werkt het wel.

Hoe kan ik er voor zorgen dat het - teken wel werkt?

items staan als tring in een variabele bv film1="james bond - golden gun.avi"

Hier onder de procedure die ik aan roep:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Public Function ReadIni(KeySection As String, KeyKey As String) As String
    Dim lngResult As Long
    Dim strFileName
    Dim strResult As String * 250
    
    ' Get the full path to the ini-file.
    AppPath = App.Path
    If Right(AppPath, 1) = "\" Then
        strFileName = AppPath & "syskar.ini"
    Else
        strFileName = AppPath & "\syskar.ini"
    End If
    
    ' Read the ini-file
    lngResult = GetPrivateProfileString(KeySection, KeyKey, strFileName, _
                                        strResult, Len(strResult), strFileName)
    
    ' Check if the read was successful
    If lngResult = 0 Then
        ' If an error occured, return "error".
        ReadIni = "error"
    Else
        ' Return the value.
        ReadIni = Left(strResult, lngResult)
    End If
End Function

en in het programma doe ik het volgende om het in te laden:

Visual Basic:
1
player.temp2.Caption = ReadIni("Playlist", player.track.Caption - 1)


De fout die ik krijg is type mismatch, runtime error 13

ik hoop dat iemand mij kan helpen

modbreak: Waarom moet ik bij iemand die hier 3+ jaar rondloopt nog steeds de post editen om [code]-tags toe te voegen? Waarom moet ik nog steeds je topictitel fixen? Waarom ken je blijkbaar P&W FAQ - De "quickstart" nog steeds niet straal uit je hoofd? :/

[ Voor 17% gewijzigd door curry684 op 26-09-2003 00:22 ]


  • erwink
  • Registratie: December 2000
  • Laatst online: 19-08 18:12
Sorry, ik zal er op letten de volgende keer excus.

Verwijderd

't Is nog niet helemaal duidelijk (je zou een gedeelte van je .ini file erbij kunnen posten) maar ik schat zo dat player.track.Caption -1 je probleem is. Dat lijkt me geen string (dus Type Mismatch) en dat is wel wat de functie ReadIni (KeyKey as String) verwacht.

Verwijderd

Visual Basic:
1
player.track.Caption -1

Ja dat wilde ik ook net zeggen.
Je kan van een string geen getal aftrekken.

  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 03:21

RayNbow

Kirika <3

Verwijderd schreef op 26 September 2003 @ 09:20:
Visual Basic:
1
player.track.Caption -1

Ja dat wilde ik ook net zeggen.
Je kan van een string geen getal aftrekken.
Het kan wel (probeer maar eens ?"3"-1 te typen in de debug window), maar dan moet de string een getal (=combinatie van cijfers en een decimale punt/komma... 1000-seperator (komma/punt) wordt genegeerd) bevatten. De string mag whitespace voor en na het getal bevatten. ;)

[ Voor 17% gewijzigd door RayNbow op 26-09-2003 16:12 . Reden: Addendum ]

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Verwijderd

Dit kan inderdaad omdat VB voor jou op de achtergrond een cast uitvoert van string naar getal (int, float, hangt van het getal af). Dit werkt dan inderdaad bij "3"-1. VB gaat kijken wattie ervan kan maken, en zodra blijkt dat 3 een getal kan maken net zoals 1 kan de bewerking worden uitgevoerd. Als hetgeen tussen haakjes niet om te zetten valt naar een getal kan de bewerking niet worden uitgevoerd.

Dit gedrag van VB is normaal vrij handig, je hoeft niet 'type-safe' te programmeren zoals je dat in b.v. C++ wel moet doen. Echter bij problemen zoals jij die nu tegenkomt kan het gevaarlijk zijn omdat je niet weet wat er precies gebeurt. Ik begreep de werking van VB pas veel beter nadat ik (later) was begonnen met het proggen in C++ :) .

  • erwink
  • Registratie: December 2000
  • Laatst online: 19-08 18:12
Het probleem is al opgelost.

in player.track.Caption zou alleen een cijfer moeten staan. in gevallen van een bestandsnaam met een - er is plaats vb de gehele tekst in player.track.Caption.

Hierdoor kreeg ik dus deze error omdat je idd van een string gen getal kan halen.

bedankt voor het mee denken
Pagina: 1