Har gjort följade ut ifrån min VB kunskap och stor hjälp av SvenPon. Hej! I VB så behöver man inte sätta startvärde vid deklarering, nummer är alltid 0, strängar är alltid tomma och boolean-variabler är alltid false. <b>En liten anmärkning använd alltid Right$ resp Left$ och Format$ när du tilldelar String</b> Hej igen. >Varför "$"? Tack. Oki Har gjort ett specialdesignat exempel för dig. Programarkivet:En kurs i IniFil hantering .iniFeedback
Kan ni ge mig lite inputs på vad som är tänkbara faror och liknande
<code>
Option Explicit
'Lägg in en FileListBox och en CommandButton
'-----------------------------------------------------------------
'När programet startar
'-----------------------------------------------------------------
Private Sub Form_Load()
'Dim variabler
Dim oldArray() As String
Dim sPath As String
Dim sFileName As String
Dim sSuffix As String
Dim lAntal As Long
Dim i As Long
Dim sStartParameter As String
'Inställningar för File1 kontrollen
File1.Visible = False
File1.Pattern = "*.*"
'Tilldela start paramtetrar till en varaiabel
sStartParameter = Command
'Om vänster del av start parameter är = "-Dir "
If Left(sStartParameter, 5) = "-Dir " Then
'Ta höger del av start parametern
sStartParameter = Right(sStartParameter, Len(sStartParameter) - 5)
'Döp om Start paramrtern till sPath
sPath = sStartParameter
'Om Inte det finns ett "\" sist i sökvägen så sätt dit det
If Right$(sPath, 1) <> "\" Then sPath = sPath & "\"
'Sökvägen till File1 kontrollen
File1.Path = sPath
'När filen är skrivskyddad eller dold så hoppar vi över den
On Error Resume Next
'Loopa igenom alla filer i File1 kontrollen och döp om den från filnamn.txt
'till filnamnYYMMDDTTHHSS.txt
For i = 0 To File1.ListCount - 1
sFileName = File1.List(i)
oldArray = Split(sFileName, ".")
sSuffix = Format$(Now, "yymmddhhmmss")
Name sPath & sFileName As sPath & oldArray(0) & sSuffix & "." & oldArray(1)
lAntal = lAntal + 1
Next 'i
'Skriver ut hur många filer som är ändrade
Label1.Caption = lAntal & " filer ändrade"
'Om inte programtet är startat med "-Dir " som startparameter
Else
'Ge felmeddelande och stäng av
MsgBox "Programmet måste startas med ett in argument" & vbCrLf _
& vbCrLf & "F:\Program\Renamer.exe -Dir C:\Mapp\", vbInformation, "into Renamer"
Unload Me
End If
End Sub
'Knapp för att avsluta
Private Sub Command1_Click()
Unload Me
End Sub
</code>
/TorfiSv: Feedback
Initiera dina variabler med ett startvärde.
I ditt fall sätt lAntal = 0.
//HåkanSv:Feedback
ThomasSv: Feedback
<code>
If Left$(sStartParameter, 5) = "-Dir " Then
'Ta höger del av start parametern
sStartParameter = Right$(sStartParameter, Len(sStartParameter) - 5)
</code>
'Loopa igenom alla filer i File1 kontrollen och döp om den från filnamn.txt
'till filnamnYYMMDDTTHHSS.txt
Det här förbryllar mig.Du har aldrig svarat ordentligt på detta.
<b>Är Det Bara . txt</b> filer som skall döpas om ?
Om inte kommer du ju att även döpa om .exe med denna kod
<b> Har tryckfelsnisse varit framme när du skriver "YYMMDDTTHHSS" ? </b>
Du kan/skall specialdesigna File1.Pattern till vilka filer som är tillåtet att döpa om.
Annars är det snyggt och ordentligt ,gillar alla dina förklarande anmärkningar.Sv:Feedback
Det är bara text filer men de kan ha olika ändelser.
Varför "$"?
Tryckfelsnisse har varit framme! YYMMDDHHMMSS skall det vara
Menar du att jag skall ange typ
<code>
File1.Pattern *.txt, *.pol..........
</code>
Håller på att lära mig så jag antar att jag är överambitiös. Men det är roligt.... Jag lär mig mest av att leka med färdiga koder och läsa och förstå dem!
Var kan man hitta referens till de funktioner som finns i VB? ingående förklaringar, gärna på svenska men inget måste
/TorfiSv: Feedback
Där för att då får du en DataTyp String i retur,annars blir det Variant som är en styggelse
Jag tycker att du skall lägga in ett korrekt filter i File1.Pattern. Då kan det bli så här i Form_Load
<code>
'Inställningar för File1 kontrollen
File1.Visible = False
File1.Pattern = "*.txt;*.pol;*.ini;*.log" 'osv.
</code><b> Obs ; är avskiljare</b>
>Var kan man hitta referens till de funktioner som finns i VB?
>ingående förklaringar, gärna på svenska men inget måste .
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon98/html/vbstartpage.asp
Kör sökning på en function eller vad du vill, testa sökning på "Split" och kolla på det som gäller VB.
Du klarar dig inte utan engelska om du skall programmera,det är bara att bita ihop och lära sig.
Stupar på nått ord kan du gå in och kolla eller fråga här i Forumet här finns det mycket expertis.
http://lexikon.nada.kth.se/sve-eng.shtmlSv:Feedback
Men om jag skall ha en lösning som är dynamisk och skall ha ett filter som bara tar de filer som är specat så är de väl bäst att läsa in inställningar via en ini fil
typ
[Prefs]
Path=f:\mapp
Extentions=*.txt;*.pol
låter detta som den bästa lösningen?
det är väl svårt om man har dessa variabler hårdkodade?
hur kan man enklast hämta dessa värden från ini filen?
//TorfiSv: Feedback
Låter bra att att du låser på .ini filer ,besserwisserna här kräks när dom hör .ini fil
bara för dom aldrig har lärt sig detta kanon verkty.
Men jag vidhåller att det är ett av dom bästa verktyg som finns för att lagra dynamiska data.
.ini är ett väl beprövat gammalt verktyg som funkar optimalt.
Skall strax lägga upp ett exempel på hur du uppdaterar och läser .inifiler riktat mot ditt ex.
.ini filen skall alltid ligga i samma mapp som din Vb.exe och övrig data ligger i.
Dvs lägg den inte i Windows där dom stora pojkarna normalt tror att dom får dribbla med !Sv: Feedback
Där får du lite hjärngymnastik att implementera koden i ditt projekt.
Du har allt som behövs så det är bara att använda det mor skickade med dig.
Ni andra som är intresserade kan lätt ändra efter Era behov.