Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Konfigurationsdatei einbinden

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
  
Die Gewinne der Zukunft werden mit intelligenten, autonomen Elektrofahrzeugen eingefahren. (3DEXPERIENCE)
Autor Thema:   Konfigurationsdatei einbinden (197 mal gelesen)
Lionel Hutz
Mitglied



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

Beiträge: 202
Registriert: 26.03.2014

CATIA V5 R20

erstellt am: 20. Okt. 2020 08:19    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

Ich habe ein Makro, das mehrere und gelegentlich wechselnde Parameter verarbeitet.
Jetzt möchte ich eine Konfigurationsdatei in mein Makro einbinden, aus der ich die Parameter und ihre Werte einlese.
Ich habe da eine Datei wie die Enviroment-Datei vor Augen.
Dadurch möchte ich vermeiden, dass der Anwender in meinen eigentlichen Quelltext editieren zu muss, um neue Parameter zu verwenden.

Meine Frage lautet nun:
Wie kann ich es elegant realiseren, dass meinen Parametern im Makro die Werte aus der Konfigurationsdatei zugeordnet werden?

Die primitivste Lösung wäre, wenn ich ohne Abfrage die Parameter in einer vorgegebenen Reihenfolge in die Konfigurationsdatei schreibe. Dabei geht aber Flexibiltät verloren.
Und egal, ob ich eine Textdatei oder eine Excel-Tabelle verwenden, bleibt das Kernproblem, dass ich einen Variablenwert als String vorliegen habe, den ich einer Variablen zuweisen möchte, deren Name mir ebenfalls nur als String vorliegt.

Anbei zwei Lösungsansätze, denen es für meinen Geschmack an Eleganz, Einfachheit und Flexibiltät fehlt.

Inhalt Konfigurationsdatei.txt

Code:
Parameter1=Datei eins
Parameter2=Datei zwei
Parameter3="Datei drei"

Code:

Option Explicit

Sub CATMain()
ZuordnungFesteReihenfolge
ZuordnungCaseAbfrage

End Sub

Sub ZuordnungFesteReihenfolge()
Dim ConfigFile As File
Dim sConfigFilePath As String
Dim oStreamIn As TextStream
Dim FileContent() As String
Dim Linecontent As String
Dim Parameter As String
Dim Parameter1 As String
Dim Parameter2 As String
Dim Parameter3 As String
Dim sParameterName As String
Dim i As Integer

sConfigFilePath = "C:\Temp\Konfigurationsdatei.txt"
Set ConfigFile = CATIA.FileSystem.GetFile(sConfigFilePath)
Set oStreamIn = ConfigFile.OpenAsTextStream ("ForReading")

i=-1
Do While Not (oStreamIn.AtEndOfStream)
    i = i+1
Linecontent = oStreamIn.ReadLine
    Linecontent = Split(Linecontent,"=")
    Parameter = Linecontent(1)
ReDim Preserve FileContent(i)
FileContent(i) = Parameter
Loop

Parameter1 = FileContent(0)
Parameter2 = FileContent(1)
Parameter3 = FileContent(2)

MsgBox Parameter1 & Chr(13) & Parameter2 & Chr(13) & Parameter3

oStreamIn.Close
End Sub


Sub ZuordnungCaseAbfrage()
Dim ConfigFile As File
Dim sConfigFilePath As String
Dim oStreamIn As TextStream
Dim Linecontent As String
Dim Parameter As String
Dim Parameter1 As String
Dim Parameter2 As String
Dim Parameter3 As String
Dim sParameterName As String
Dim sParameterName1 As String
Dim sParameterName2 As String
Dim sParameterName3 As String

sConfigFilePath = "C:\Temp\Konfigurationsdatei.txt"
Set ConfigFile = CATIA.FileSystem.GetFile(sConfigFilePath)
Set oStreamIn = ConfigFile.OpenAsTextStream ("ForReading")

sParameterName1 = "Parameter1"
sParameterName2 = "Parameter2"
sParameterName3 = "Parameter3"

Do While Not (oStreamIn.AtEndOfStream)
    Linecontent = oStreamIn.ReadLine
    Linecontent = Split(Linecontent,"=")
    sParameterName = Linecontent(0)
    Parameter = Linecontent(1)
    Select Case sParameterName
        Case "Parameter1"
            Parameter1 = Parameter
        Case sParameterName2
            Parameter2 = Parameter
        Case sParameterName3
            Parameter3 = Parameter
    end select
Loop
MsgBox Parameter1 & Chr(13) & Parameter2 & Chr(13) & Parameter3

oStreamIn.Close

End Sub


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11144
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 20. Okt. 2020 17:08    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 Lionel Hutz 10 Unities + Antwort hilfreich

Servus

Du könntest eine ini-Datei verwenden (siehe zB hier oder hier)

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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)2020 CAD.de | Impressum | Datenschutz