Kjelt schreef: ↑03 sep 2020 15:56
Als ik weer als niet excel expert snel google wil het MID commando 3 parameters hebben.
De eerste de input string, bij jou is dat de filenaam.
De tweede is de startlocatie in de filenaam
De derde is het aantal karakters vanuit de startlocatie.
Dus als de tweede startlocatie niet meteen het begin is van de filenaam , dus groter dan 0 of 1 (ff checken) dan kun je nooit de hele lengte vd filenaam opgeven voor de derde parameter.
nogmaals als ik die eerste regel er inzet dan werkt het....
ExtractFileName = Mid(strFullName, s, Len(strFullName))
en wat ik al eerder zei, ik snap die lengte ook niet... ( ik heb dit stuk ook maar ergens van internet geplukt)... want
"C:\Users\asw\OneDrive\werk\ExcelLog\Log\Compressors.Compressor2.Data.Pressure\D2008010.csv" uit deze string komt hij terug met "D2008010.csv"
dus de totale string is 91 karakters lang (als ik goed geteld heb)
hij begint vooraan te zoeken naar "\" en als die hem gevonden heb, gaat hij weer zoeken, maar start dan 1 karakter verder dan het laatst gevonden "\"
als hij dan start na de laatste "\" , bij de D... zal hij niets meer vinden en valt hij uit de loop, met de positie van de laatst gevonden "\" in s
dan telt hij daar 1 bij op (positie van de D)
maar ik snap ook niet dan er dan een lengte staat van de met de lengte van de hele String.... maar dat zou geen kwaad kunnen...
dus met de
ExtractFileName = Mid(strFullName, s, Len(strFullName))
knipt hij een stuk, uit de totale string, vanaf de positie s, en dat de lengte van de total string lang
dus moet ik die s toch ook een andere waarde moeten kunnen geven....?
als ik zelf tel in die string is de positie na de laatste "\" positie 77
Code: Selecteer alles
Public Function ExtractFileName(ByVal strFullName As String) As String
Dim FoundPos As Integer
Dim SearchFromPos As Integer
Dim s As Integer
Dim q As Integer
Dim StrTest As String
' SearchFromPos = 1
' Do
' FoundPos = InStr(SearchFromPos, strFullName, "\", 1)
' If FoundPos = 0 Then Exit Do
' q = s
' s = FoundPos
' SearchFromPos = FoundPos + 1
' Loop
' s = s + 1
s=77
ExtractFileName = Mid(strFullName, s, Len(strFullName))
End Function
dit zou toch met het zelfde terug moeten komen?
zelfs als ik in het bovestaande s=1 zet, dan krijg ik een fout? dan kan hij nooit te lang/kort zijn
snap er geen reet van ... :-)
kheb even het te download gezet....
https://www.dropbox.com/s/ww6l3nlyvq6oa ... g.zip?dl=0