Autor
|
Thema: Document Path (1253 / mal gelesen)
|
Sylas Mitglied
Beiträge: 322 Registriert: 19.11.2012 Dell Precision T3500 Intel Xeon W3550 @ 3,07 GHz 12 GB RAM CATIA V5 R28
|
erstellt am: 22. Nov. 2016 08:50 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen Ich möchte ganzte Path von Dokument durchsuchen und unter richtige Unterordner das Part speichern: Code: ...\RM_2_190FX001\0000000__A__1__A__190FX001\0000095__A__1__A__UNIT13
dann untere Code funktioniert: Code:
If InStr(1, Splitnametemp(UBound(Splitnametemp) - 1), "FX") <> 0 Then Sub_folder = Replace(doc_path, (Right(doc_path, (Len(doc_path) - InStrRev(doc_path, "\")))), "Sub_folder\") End If
Also, wenn vor dem letzten Backslash gibt es "FX" Zeichen, dann tausch das was nach letzten Backslash ist mit "Subfolder\" ;) Wie kann ich jetzt meinem Code ergänzen, wenn doc_path enthält so etwas wie
Code:
...\RM_2_190FX001\0000000__A__1__A__190FX001\etwas_mehr_zwischen\0000095__A__1__A__UNIT13
? Wie kann ich das doc_Path rückwärts durchgehen und jedes Segment zwischen Backslashe prüfen? Wie immer - sorry für mein Deutch. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
roccat Mitglied Konstrukteur
Beiträge: 172 Registriert: 19.02.2010 WinXP/Win7 Office XP/2007 Catia V5 R16-R19, VB6.0, VBA, BASCOM-AVR VB .Net 2010
|
erstellt am: 22. Nov. 2016 09:37 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
Hallo Sylas, ich hoffe ich habe dich richtig verstanden. Es gibt sicherlich mehrere Lösungen. mfG Mario Code:
Option ExplicitSub CATMain() Dim OldPath As String Dim NewPath As String Dim SubFolder As String Dim sSplit Dim i As Integer Dim FXFound As Boolean OldPath = "C:\RM_2_190FX001\0000000__A__1__A__190FX001\0000095__A__1__A__UNIT13" SubFolder = "Neuer_Ordner" sSplit = Split(OldPath, "\") FXFound = False For i = UBound(sSplit) To 0 Step -1 If InStr(1, sSplit(i), "FX", vbTextCompare) <> 0 Then FXFound = True End If If FXFound = True Then NewPath = sSplit(i) & "\" & NewPath End If Next NewPath = NewPath & SubFolder Debug.Print OldPath Debug.Print NewPath End Sub
------------------ Wenn das die Lösung sein soll, will ich mein Problem zurück !! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sylas Mitglied
Beiträge: 322 Registriert: 19.11.2012 Dell Precision T3500 Intel Xeon W3550 @ 3,07 GHz 12 GB RAM CATIA V5 R28
|
erstellt am: 22. Nov. 2016 11:01 <-- editieren / zitieren --> Unities abgeben:
Hallo roccat Das ist genau was ich brauche! Viellen dank! Noch eine kleine Sache: wie kann ich deinen Code als Funktion nutzen? Soll ich das als noch ein Modul machen? MfG Lucas [Diese Nachricht wurde von Sylas am 22. Nov. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
roccat Mitglied Konstrukteur
Beiträge: 172 Registriert: 19.02.2010 WinXP/Win7 Office XP/2007 Catia V5 R16-R19, VB6.0, VBA, BASCOM-AVR VB .Net 2010
|
erstellt am: 22. Nov. 2016 11:42 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
Das könnte z.B. so aussehen. Je nach dem wie variabel du sein willst... mfG Mario Aufruf: Code:
Option ExplicitSub CATMain() Dim OldPath As String Dim NewPath As String OldPath = "C:\RM_2_190FX001\0000000__A__1__A__190FX001\0000095__A__1__A__UNIT13" 'Aufruf Variante1 ohne optionale Parameter NewPath = ModifyPath(OldPath) Debug.Print "----VARIANTE 1-----" Debug.Print OldPath Debug.Print NewPath 'Aufruf Variante2 mit optionale Parameter NewPath = ModifyPath(OldPath, "Neuer_Ordner_mit_Parameter", "FX001") Debug.Print "----VARIANTE 2-----" Debug.Print OldPath Debug.Print NewPath End Sub
Funktion:
Code:
Function ModifyPath(OldPath As String, Optional ByVal SubFolder As String = "Neuer_Ordner", Optional ByVal SearchString = "FX") As StringDim sSplit Dim i As Integer Dim FXFound As Boolean sSplit = Split(OldPath, "\") FXFound = False For i = UBound(sSplit) To 0 Step -1 If InStr(1, sSplit(i), SearchString, vbTextCompare) <> 0 Then FXFound = True End If If FXFound = True Then ModifyPath = sSplit(i) & "\" & ModifyPath End If Next ModifyPath = ModifyPath & SubFolder End Function
------------------ Wenn das die Lösung sein soll, will ich mein Problem zurück !! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sylas Mitglied
Beiträge: 322 Registriert: 19.11.2012 Dell Precision T3500 Intel Xeon W3550 @ 3,07 GHz 12 GB RAM CATIA V5 R28
|
erstellt am: 22. Nov. 2016 12:57 <-- editieren / zitieren --> Unities abgeben:
Das ist echt super! Danke! Danke! Danke! aber Deinen Code funktioniert nur wenn ich ändere das:
Code: Function ModifyPath(OldPath As String, Optional ByVal SubFolder As String = "Neuer_Ordner", Optional ByVal SearchString = "FX") As String
so: Code: Function ModifyPath(ByVal OldPath As String, Optional ByVal SubFolder As String = "Neuer_Ordner", Optional ByVal SearchString = "FX") As String
frag mir nicht warum :P Sowieso noch Mal: viellen Dank! MfG Lucas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
roccat Mitglied Konstrukteur
Beiträge: 172 Registriert: 19.02.2010 WinXP/Win7 Office XP/2007 Catia V5 R16-R19, VB6.0, VBA, BASCOM-AVR VB .Net 2010
|
erstellt am: 22. Nov. 2016 13:13 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|