Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Makro über txt-Datei steuern ?

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:  Makro über txt-Datei steuern ? (2606 mal gelesen)
3.1415926535
Mitglied



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

Beiträge: 59
Registriert: 20.02.2004

erstellt am: 11. Nov. 2004 12:29    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

Kann ich mit einem Makro bestimmte Werte aus einer Textdatei auslesen? Ich versuche so eine Art ConfigFile.Txt zu erstellen, in der ich bestimmte Werte von Variablen angebe.
Ich möchte dadurch erreichen, dass der Benutzer nicht mehr die Eingaben über Inputboxes tätigen muss, sondern den ConfigFile nach seinen Wünschen modifiziert und das Makro dann ohne Benutzerführung laufen kann.

Viele Grüße,
Pi

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

EmilioSanchez
Mitglied



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

Beiträge: 70
Registriert: 02.11.2003

Intel I7 4700MQQ
24GB
Win10 Pro 64-Bit
Catia V5 R19/R26/28/29

erstellt am: 11. Nov. 2004 16: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 Nur für 3.1415926535 10 Unities + Antwort hilfreich


ModIniDatei.zip

 
Hallo Pi,

mit dem Modul im Dateianhang kannst du .INI Dateien auslesen wie z.B. win.ini usw.

Voraussetzung: Du arbeitest mit CATVBA

Folgende vorgehensweise:

1. Modul ModIniDatei (siehe Anhang) in dein Projekt importieren

2. Eine INI Datei erstellen z. B. c:\temp\test.ini
  Inhalt der Datei z.B.:
 
  [Beispielkapitel]

  Beispielwert = 5

3. Mit diesem Code liest du dann den Wert vom Beispielwert aus dem Beispielkapitel auf eine Variable:

    Variable = ModIniDatei.GetIniValue("Beispielkapitel", "Beispielwert", "c:\temp\test.ini" )

Du kannst die INI Datei auch beschreiben:

ModIniDatei.WriteIniValue "Beispielkapitel", "Beispielwert", Neuer Wert, "c:\temp\test.ini"

C4N

Bernd

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

Peter91
Mitglied



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

Beiträge: 39
Registriert: 12.10.2015

Catia V5-6R2014
Windows 7
VBA 7.1

erstellt am: 21. Nov. 2015 16:20    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 3.1415926535 10 Unities + Antwort hilfreich

Hallo zusammen,

versuche gerade ein INI Datei auszulesen. Was muss ich an folgendem Code ändern damit es funktioniert?

Code:
Sub CATMain()

Dim Variable As String

Variable = ModIniDatei.GetIniValue("Beispielkapitel", "Beispielwert", "C:\Users\Peter\Documents\test.ini")

Call MsgBox(Variable)

End Sub


Gruß
Peter

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

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 21. Nov. 2015 16: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 3.1415926535 10 Unities + Antwort hilfreich

Hallo Peter,

Inis haben eine fest vorgegebene Struktur.
Wenn die nicht eingehalten wird, klappt's nicht.

Poste bitte  mal den Inhalt der Ini.

Tschau,
Joe

------------------
Inoffizielle Catia Hilfeseite

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

Peter91
Mitglied



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

Beiträge: 39
Registriert: 12.10.2015

Catia V5-6R2014
Windows 7
VBA 7.1

erstellt am: 21. Nov. 2015 22:47    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 3.1415926535 10 Unities + Antwort hilfreich

Der Inhalt der INI ist:

[Beispielkapitel]

Beispielwert = 5


Das müsste doch so stimmen oder?


Gruß
Peter

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

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 21. Nov. 2015 22:52    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 3.1415926535 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Peter91:
Der Inhalt der INI ist:

[Beispielkapitel]

Beispielwert = 5

Das müsste doch so stimmen oder?


Leider nein.
Inis ohne Leerstellen, also

[Beispielkapitel]
Beispielwert=5

Leerzeilen sind OK. Die werden ignoriert.

Warum machst Du's nicht über die Registy (SaveSetting)?

Tschau,
Joe

------------------
Inoffizielle Catia Hilfeseite

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

Peter91
Mitglied



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

Beiträge: 39
Registriert: 12.10.2015

Catia V5-6R2014
Windows 7
VBA 7.1

erstellt am: 23. Nov. 2015 16:04    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 3.1415926535 10 Unities + Antwort hilfreich

Hallo Joe,

Funktioniert leider immer noch nicht, es kommt immer der Fehler "Run-time error424: Object required

Was meinst du mit Registy (SaveSetting)?


Gruß
Peter

[Diese Nachricht wurde von Peter91 am 23. Nov. 2015 editiert.]

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

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 23. Nov. 2015 16:17    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 3.1415926535 10 Unities + Antwort hilfreich

Hi Peter,

Zitat:

Funktioniert leider immer noch nicht, es kommt immer der Fehler "Run-time error424: Object required


Bedeutet meistens, dass irgendwo ein 'Set' fehlt/zuviel ist.
Zitat:

Was meinst du mit Registy (SaveSetting)?


Programmierst Du mt dem VBA-Editor?
Dann such bitte in der Online-Hilfe nach 'SaveSetting'.

Tschau,
Joe

------------------
Inoffizielle Catia Hilfeseite

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

Peter91
Mitglied



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

Beiträge: 39
Registriert: 12.10.2015

Catia V5-6R2014
Windows 7
VBA 7.1

erstellt am: 23. Nov. 2015 17: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 Nur für 3.1415926535 10 Unities + Antwort hilfreich

Ja ich arbeite mit dem VBA-Editor, habe aber leider keine Online-Hilfe installiert.
Gibt es vielleicht irgendwo ein Code-Beispiel wie ich Daten aus einer Ini-Datei lesen kann?

Gruß
Peter

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

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 23. Nov. 2015 17:14    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 3.1415926535 10 Unities + Antwort hilfreich

Hi Peter,

VB ohne Online-Hilfe? Hab nicht gewusst, dass sich das unabhängig voneinander installieren läßt.

Warum versuchst Du nicht mal zuerst welche in eine ini zu schreiben?
Danach sollte das Format klar sein.

Ein Beispiel aus dem Api-Guide:
http://allapi.mentalis.org/

Code:

'This sample was submitted by Robin (rbnwares@edsamail.com.ph)
'Visit his site at http://members.fortunecity.com/rbnwares1
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
Private Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal nDefault As Long, ByVal lpFileName As String) As Long
Private Sub Form_Load()
'Sample for reading a numbers directly on the INI file

    'Write a number 55 on the sample.ini to be read
    WritePrivateProfileString "Sample", "Sample", "55", App.Path & "\sample.ini"

    'Then, read the stored number
    'No need to convert the value returned
    MsgBox GetPrivateProfileInt("Sample", "Sample", 0, App.Path & "\sample.ini")
End Sub



Das beispiel ist für VB6 gedacht.
Für VBA musst Du's ein wenig umschreiben.

Tschau,
Joe

------------------
Inoffizielle Catia Hilfeseite

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

Peter91
Mitglied



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

Beiträge: 39
Registriert: 12.10.2015

Catia V5-6R2014
Windows 7
VBA 7.1

erstellt am: 24. Nov. 2015 19:45    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 3.1415926535 10 Unities + Antwort hilfreich

Ich habe probiert das Beispiel umzuschreiben, jedoch hat es bis jetzt leider noch nicht richtig funktioniert. (VBA- Anfänger )

Code:
Sub CATMain()

Dim Datei As File
Set Datei = CATIA.FileSystem.GetFile("C:\Users\Peter\Documents\test.ini")

Dim Strom As TextStream
Set Strom = Datei.OpenAsTextStream("ForReading")

Dim Zeile1 As String


Zeile1 = Strom.ReadLine
MsgBox (Zeile1)

Strom.Close

End Sub



Mit diesem Code bekomme ich die erste Zeile ausgelesen, allerdings ist das nicht die richtige Art und Weise Ini's auszulesen.

Weiß jemand wie ich das "getprivateprofilestring" einbauen muss, bzw wie ich die Ini richtig auslesen kann?


Gruß
Peter

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

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 24. Nov. 2015 19: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 Nur für 3.1415926535 10 Unities + Antwort hilfreich

Hi Peter,

zu ändern war:

- der Name der Sub: FormLoad -> CatMain
- der Name der ini: "\sample.ini" -> "C:\Users\Peter\Documents\test.ini"
- eventuell müssen die Deklarationen angepasst werden: VBA6 -> VBA7

Für VBA6 müsst's so funktionieren:

Code:

'This sample was submitted by Robin (rbnwares@edsamail.com.ph)
'Visit his site at http://members.fortunecity.com/rbnwares1

Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
Private Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal nDefault As Long, ByVal lpFileName As String) As Long

Sub CatMain()
  dim strFName as string

  strFName = "C:\Users\Peter\Documents\test.ini"

'Sample for reading a numbers directly on the INI file

    'Write a number 55 on the sample.ini to be read
    WritePrivateProfileString "Sample", "Sample", "55", strFName

    'Then, read the stored number
    'No need to convert the value returned
    MsgBox GetPrivateProfileInt("Sample", "Sample", 0, strFName
End Sub


Die Inis wurden mit Windows eingeführt und irgendwann durch die Registry abgelöst.
Für VBA7 müssen die Deklarationen der Api-Funktionen noch angepasst werden.

Deshalb: Mit welcher VBA-Version programmierst Du?

Ausserdem:
Was willst Du eigentlich steuern bzw. abspeichern?

Tschau,
Joe

------------------
Inoffizielle Catia Hilfeseite

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

Peter91
Mitglied



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

Beiträge: 39
Registriert: 12.10.2015

Catia V5-6R2014
Windows 7
VBA 7.1

erstellt am: 24. Nov. 2015 20:12    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 3.1415926535 10 Unities + Antwort hilfreich

Ich benutze VBA 7.1. Wusste gar nicht, das es da so viele Unterschiede gibt.

Ich möchte zu Beginn eines Makros verschiedene Namen für Nullpunkte und verschiedene Pfade auslesen, die im ganzen Makro oft auftauchen.

Der obige Code von mir wäre ja schonmal eine Notlösung...


Gruß
Peter

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

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 24. Nov. 2015 21:02    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 3.1415926535 10 Unities + Antwort hilfreich


Reg_Settings.PNG

 
Peter,

ich würd' Dir zu Get/SaveSettings raten.

Gründe:

- keine extra Datei
- Inis sind veraltet
- wenn Du eine Ini beschreibst, beschreibst Du gleichzeitig auch die Registry


Kurz zu Get/SaveSettings:

Beispiel Lesen:

Code:

Sub ReadSettings()
 
  'read settings from regisry and adjust controls accordingly; if
  'the macro crashes, the cbo.listindex values are set to -1(none selected)

  cboDist.ListIndex = GetSetting(App.Title, "Settings", "LineDist", 3)
  If cboDist.ListIndex = -1 Then cboDist.ListIndex = 3
  cboFtSize.ListIndex = GetSetting(App.Title, "Settings", "FontSize", 2)
  If cboFtSize.ListIndex = -1 Then cboFtSize.ListIndex = 2
  cboFtName.ListIndex = GetSetting(App.Title, "Settings", "FontName", 1)
  If cboFtName.ListIndex = -1 Then cboFtName.ListIndex = 1
  cboLayer.ListIndex = GetSetting(App.Title, "Settings", "Layer", 0)
  If cboLayer.ListIndex = -1 Then cboLayer.ListIndex = 0
  ckBxFix.Value = GetSetting(App.Title, "Settings", "FixLines", 0)
  ckBxNoPick.Value = GetSetting(App.Title, "Settings", "NoPick", 0)
  optLead(1).Value = GetSetting(App.Title, "Settings", "LeadTrail")
  optLead(0).Value = Not optLead(1).Value

End Sub



Die ersten lesen/setzen den abgespeicherten Wert einer Conmbo-Box;
danach den Zustand von zwei CheckBoxen und zum Schluss die Einstellung der OptionButton.

Der prinzipielle Aufbau ist

Syntax:

GetSetting(appname, section, key[, default])

Also App-Name, Schlüssel, Unterschlüssel, Vorgabewert;
zurückgegeben wird der abgespeicherte Wert.
(eigentlich wie bei den Ini-Einträgen) :-)

Beispiel schreiben:

Code:

Sub WriteSettings()  'save all settings
 
  SaveSetting App.Title, "Settings", "LineDist", cboDist.ListIndex
  SaveSetting App.Title, "Settings", "FontSize", cboFtSize.ListIndex
  SaveSetting App.Title, "Settings", "FontName", cboFtName.ListIndex
  SaveSetting App.Title, "Settings", "Layer", cboLayer.ListIndex
  SaveSetting App.Title, "Settings", "FixLines", ckBxFix.Value
  SaveSetting App.Title, "Settings", "NoPick", ckBxNoPick.Value
  SaveSetting App.Title, "Settings", "LeadTrail", optLead(1).Value
 
  SaveSetting App.Title, "Settings", "MainLeft", Me.Left
  SaveSetting App.Title, "Settings", "MainTop", Me.Top
'---------------------------------------------------------------------------------------
End Sub


Zu den oben erwähnten Einstellungen kommen noch die Lagewerte des Hauptfensters der App.

Der prinzipielle Aufbau hier ist

Syntax

SaveSetting appname, section, key, setting

'Setting' ist der abzuspeichernde Wert.

Alle VB/VBA settings werden abgelegt in der Registry unter:

HKEY_CURRENT_USER\Software\VB and VBA Program Settings

d.h. sie sind User/Rechner-abhängig.
Wenn Du mit den Einstellungen auf einen anderen Rechner umziehen willst,
musst sie vorher ex- und anschliessend importieren.
Das könnte so aussehen:

Zitat:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\VB and VBA Program Settings\DrawNet]

[HKEY_CURRENT_USER\Software\VB and VBA Program Settings\DrawNet\Settings]
"LineDist"="3"
"FontSize"="2"
"FontName"="1"
"Layer"="0"
"FixLines"="0"
"NoPick"="0"
"LeadTrail"="Wahr"
"MainLeft"="19590"
"MainTop"="7590"


In der Registry sieht das ganze so aus, wie auf dem Bild.

Tschau,
Joe

PS: Gut wäre, wenn Du die Online-Hilfe installieren würdest. Sollte auf der CD sein.

------------------
Inoffizielle Catia Hilfeseite

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

Peter91
Mitglied



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

Beiträge: 39
Registriert: 12.10.2015

Catia V5-6R2014
Windows 7
VBA 7.1

erstellt am: 25. Nov. 2015 14: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 Nur für 3.1415926535 10 Unities + Antwort hilfreich


Fehler.JPG


Reg_Editor.JPG

 
Hallo Joe,

ich denke mittlerweile auch das es besser ist über Get/SaveSettings zu gehen.

Bei mir taucht jedoch noch ein Fehler bei "optLead" auf. (Siehe Bilder im Anhang)


Gruß
Peter

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: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 25. Nov. 2015 15: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 3.1415926535 10 Unities + Antwort hilfreich

Servus
Wo hast du diese Variable (Array) definiert/deklariert?
Ist das eine globale/public Variable?
Kommt diese aus der Userform oder andere Routine?

Gruß
Bernd

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

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

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 25. Nov. 2015 15:18    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 3.1415926535 10 Unities + Antwort hilfreich


DrawNet.PNG

 
Hi Peter,

ich lese/speichere mit den Befehlen die Einstellungen diverser Controls ab
Wenn die Controls bei Dir nicht vorhanden sind, kann's nicht funktionieren.
(anbei Bild meines Makros - geschrieben mit VB)

Ich wollt' Dir mit den Code-Zeilen nur die Methode an sich  illustrieren.
Eins zu eins übernehmen kannst das aus obigem Grund nicht, ausser Du baust die Form nach.

Auf Deinen Anwendungsfall umgeschrieben müsste die Speicheranweisung:

Code:

SaveSetting strMacroName, "Settings", "NullPunkt01", strNullPunkt01


wobei zuvor
Code:

const strMacroName as string = "MyMacro"

Dim strNullPunkt01 as string

strNullPunkt01 = "MeinNullPunkt01"



irgendwo, für die Speicherroutine sichtbar, angegeben werden müssen.

Zum Auslesen dann:

Code:

strNullPunkt01 = GetSetting(strMacroName, "Settings", "NullPunkt01", "DefaultWertFürNullpunkt01")


wobei der Defaultwert optional ist.
Code:

strNullPunkt01 = GetSetting(strMacroName, "Settings", "NullPunkt01")


geht also auch.

Wie geht's mit der VBA-Online-Hilfe voran?

Tschau,
Joe

------------------
Inoffizielle Catia Hilfeseite

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

Peter91
Mitglied



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

Beiträge: 39
Registriert: 12.10.2015

Catia V5-6R2014
Windows 7
VBA 7.1

erstellt am: 26. Nov. 2015 18:02    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 3.1415926535 10 Unities + Antwort hilfreich

Vielen Dank für die ausführliche Antwort.
Werde es mal testen.  


Gruß
Peter

PS: Wegen der Onlinehilfe; CD gibt es keine, da es sich um eine Studentenversion von Catia handelt

[Diese Nachricht wurde von Peter91 am 26. Nov. 2015 editiert.]

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

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 26. Nov. 2015 19:41    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 3.1415926535 10 Unities + Antwort hilfreich

gibt's auch direkt zum Nachlesen:

https://msdn.microsoft.com/en-us/library/aa338032%28VS.60%29.aspx

Tschau,
Joe

Beispiel zu GetSetting:
https://msdn.microsoft.com/en-us/library/aa445019%28v=vs.60%29.aspx
Zu FSO:
https://msdn.microsoft.com/en-us/library/aa242706%28v=vs.60%29.aspx
Und noch ein Link zu VBA für Office 2013:
https://www.microsoft.com/en-us/download/details.aspx?id=40326
Und auf deutsch:
https://msdn.microsoft.com/de-de/library/office/gg264383.aspx

------------------
Inoffizielle Catia Hilfeseite

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