När jag kör med koden nedan får jag: Du får inte ha -(bindestreck i filnamn) > Är "Name" en funktion du gjort själv eller? Du kan inte använda paranteser där då vb tror att name är en funktion när name är ett statement... så... ta bort paranteserna. ;) >> Är "Name" en funktion du gjort själv eller? > Du kan inte använda paranteser där då vb tror att name är en funktion när name är ett statement... så... ta bort paranteserna. ;) Samma här... Men om du använder den så fungerar den.. =) skumt... den strider också helt syntaxmässigt mot allt annat i Vb... =) När jag lägger in Call framför säger den bara Ang Name Har råkat ut för en liknande sak för länge sedan. >den strider också helt syntaxmässigt mot allt annat i Vb... Varför inte använda Dir() funktionen?Loop-problem med Name
Invalid procedure call or argument på
raden med Name. Jag vet inte varför och jag
har testat lite andra saker som inte heller fungerade.
Pelle hjälpte mig till koden som den ser ut nu, förut
var det tre loopar istället för en.
<code>
Private Sub RenameFiles()
Dim i As Integer
Dim OldName, NewName
File1.Path = dirPath.Path
For i = 0 To File1.ListCount - 1
File1.ListIndex = i
OldName = File1.Path & "\" & File1.Filename
NewName = LCase(OldName)
NewName = Replace(NewName, Chr(32), "_")
NewName = Replace(NewName, "_-_", "-")
Name (File1.Path & "\" & OldName) As (File1.Path & "\" & NewName)
Next i
File1.Refresh
MakeM3U
</code>Sv: Loop-problem med Name
Byt till "underscore" _
NewName = Replace(NewName, "_-_", "_") Sv: Loop-problem med Name
Nej, den finns inbyggd i VB.Sv: Loop-problem med Name
Sv: Loop-problem med Name
>
>Nej, den finns inbyggd i VB.
Mitt VB vill inte kännas vid den funktionen...
/JohanSv: Loop-problem med Name
Funkade inte, samma felmeddelande.Sv: Loop-problem med Name
Sv: Loop-problem med Name
Expected: end of statement.Sv: Loop-problem med Name
Name oldfilespec As newfilespec
Name fName1 As TestDir & "\" & fName2Sv: Loop-problem med Name
Jag hadde en rutin för att döpa om filer på liknande sätt du gör.
Den fungerade utmärkt på ett mindre antal filer men då man körde på ett stort antal uppstod ett fel.
Har för mig att windows hann göra en refresh på katalogen då man körde många filer och det gjorde att det hände konstiga saker.
/JensSv: Loop-problem med Name
VB är definitivt inte syntaxkonsekvent. Kolla på PSet, line, open as, osv. osv.
Det är alltså inget som är specifikt för Name.Sv: Loop-problem med Name
Jag skulle skriva en generellfunktion:
<code>
Private Sub RenameFiles(ByVal Path As String)
Dim File As String
Dim Start As Long
Dim Files As Collection
Dim vTemp As Variant
If Not Path Like "*\" Then
Path = Path & "\"
End If
Start = Len(Path)
Set Files = New Collection
File = Dir$(Path & "*.mp3")
Do While Len(File)
Files.Add Path & File
File = Dir$()
Loop
For Each vTemp In Files
File = LCase(vTemp)
File = Replace(File, " ", "_", Start)
File = Replace(File, "_-_", "-", Start)
Name vTemp As File
Next
End Sub
</code>
Sedan anropa den såhär:
<code>
RenameFiles dirPath.Path
File1.Path = dirPath.Path
MakeM3U
</code>