Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Document Path

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Document Path (1253 / mal gelesen)
Sylas
Mitglied



Sehen Sie sich das Profil von Sylas an!   Senden Sie eine Private Message an Sylas  Schreiben Sie einen Gästebucheintrag für Sylas

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von roccat an!   Senden Sie eine Private Message an roccat  Schreiben Sie einen Gästebucheintrag für roccat

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Sylas 10 Unities + Antwort hilfreich

Hallo Sylas,

ich hoffe ich habe dich richtig verstanden. Es gibt sicherlich mehrere Lösungen.

mfG
Mario

Code:

Option Explicit

Sub 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



Sehen Sie sich das Profil von Sylas an!   Senden Sie eine Private Message an Sylas  Schreiben Sie einen Gästebucheintrag für Sylas

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von roccat an!   Senden Sie eine Private Message an roccat  Schreiben Sie einen Gästebucheintrag für roccat

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Sylas 10 Unities + Antwort hilfreich

Das könnte z.B. so aussehen. Je nach dem wie variabel du sein willst...

mfG
Mario

Aufruf:

Code:

Option Explicit

Sub 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 String

Dim 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



Sehen Sie sich das Profil von Sylas an!   Senden Sie eine Private Message an Sylas  Schreiben Sie einen Gästebucheintrag für Sylas

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von roccat an!   Senden Sie eine Private Message an roccat  Schreiben Sie einen Gästebucheintrag für roccat

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Sylas 10 Unities + Antwort hilfreich

Oh sry, da hast du Recht.

Ging aber komischerweise bei mir trotzdem...

mfG
Mario

------------------
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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz