Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  CATIA V5 Programmierung
  Aufruf externes Programm: Übergabe von Strings mit Leerzeichen

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
  
CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48
  
Dassault PLM Integrationen mit der 3DViewStation, eine Pressemitteilung
Autor Thema:  Aufruf externes Programm: Übergabe von Strings mit Leerzeichen (1889 mal gelesen)
PyroX82
Mitglied



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

Beiträge: 30
Registriert: 07.10.2005

erstellt am: 16. Aug. 2006 13:58    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 Leute,

Ich möchte mit CATScript ein Programm aufrufen, dem ich Parameter übergebe. Die Parameter werden als Variablen angeben. Die Strings enthalten z.T. auch Leerzeichen. Mein Problem ist hierbei, dass das Leerzeichen eigentlich auch die Parameter trennt. So ist dann z.B. der Wert "C:\Dokumente und Einstellungen" in diesem Fall Parameter1=C:\Dokumente, Parameter2=und Parameter3=Einstellungen. Das ist natürlich unpraktisch. Aufrufen tu ich das in etwa so:

Code:

params = param1 & " " & param2 & " " & param3 & " " & param4& " " &  param5 & " "
CmdLine = sMacroPath & sSep & "programm.bat " & params

Ergebnis = CATIA.SystemService.ExecuteProcessus(CmdLine)


Ich gehe den Web über die Variablen, da ich zur Laufzeit des Makros die Parameter vom Benutzer abfrage.

Weiß da jemand eine Lösung? Ich kann ja die Variablen leider nicht mehr in "" packen, da sie ja sonst nicht mehr als solche erkannt werden, sondern als String.

Das Programm wird gestartet, allerdings sind die Parameter dann Müll. Wenn keine Leerzeichen drin sind, funktioniert alles.

Vielen Dank schonmal,

Gruß PyroX82

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

Jens Hansen
Mitglied
CAx-Spezialist


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

Beiträge: 1056
Registriert: 05.08.2000

CATIA V5 R32
VB.Net
C#
WPF

erstellt am: 16. Aug. 2006 14: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 PyroX82 10 Unities + Antwort hilfreich

Hallo proxy;
kannst du nicht ein anderes Zeichen für die Variablentrennung benutzen? Ich habe das zumindest so oft bei mir gelöst.

Jens Hansen

------------------
Inoffizielle CATIA-Hilfeseite
http:\\catia.cad.de

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

okl
Mitglied
Wirtsch-Ing (Maschbau)


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

Beiträge: 157
Registriert: 21.04.2006

2x3,6 GHz, 2 GB RAM, NVIDIA Quadro FX 1800, Delmia V5R16 SP1, Win XP Prof SP2, Office, VS 2005, VB 6, Inventor (Test), VBExpress .NET 2005
Adminrechte

erstellt am: 16. Aug. 2006 14:11    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 PyroX82 10 Unities + Antwort hilfreich

Hallo PyroX82,

hab's nicht getestet, aber versuch doch mal in deinem Parameter c:\Dokumente und Einst... die Leerzeichen mit %20 zu ersetzen oder nutze die gute alle 7.3-Notation, also c:\Dokume~\Progr~1\Mein~1.exe
Keine Ahnung, ob's funzt. Ist nur ne Idee von mir.
okl

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

PyroX82
Mitglied



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

Beiträge: 30
Registriert: 07.10.2005

erstellt am: 16. Aug. 2006 14:25    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

Hi Danke für die Tips, werde sie mal ausprobieren. Einige Variablen les ich ja auch von den Systemvariablen aus. Insofern müsste ich erst den gesamten String durchgehen und alle Leerzeichen durch %20 ersetzen.

Die andere Variante mit dem Kürzen....muss da erst noch schauen...denn wenn es 2 Ordner gibt, wo die ersten 8 Zeichen gleich sind, dann hab ich ein Problem.

Gruß PyroX82

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

PyroX82
Mitglied



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

Beiträge: 30
Registriert: 07.10.2005

erstellt am: 16. Aug. 2006 14:46    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

Gibt es eigentlich eine Funktion in CATScript, mit dem man Zeichen ersetzen kann?

Ich find in der blöden v5automation.chm nichts gescheites.

Danke im Voraus,

Grüße,
PyroX82

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

PyroX82
Mitglied



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

Beiträge: 30
Registriert: 07.10.2005

erstellt am: 16. Aug. 2006 14:48    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

@Jens Jansen

Wie kann ich sowas lösen? Ich übergebe die Parameter an eine Batchdatei, die wiederum ein Programm aufruft. Das muss doch wissen, wie die Variablen getrennt sind und ich glaube, das kapiert es nicht, wenn ich statt dessen Kommas verwende.

Eigentlich will ich ja direkt aus dem Makro ein Java Jar File aufrufen, aber das geht irgendwie nichtgescheit (die java.exe ist nicht immer am gleichen Ort installiert), deswegen der Umweg über die Batch-Datei.

Grüße,

PyroX82

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

AlexE78
Mitglied
Ing.


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

Beiträge: 49
Registriert: 29.08.2005

erstellt am: 16. Aug. 2006 14:58    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 PyroX82 10 Unities + Antwort hilfreich

Hallo PyroX82,

versuch's mal damit

stringmitquotes = chr(34) & stringohnequotes & chr(34)

oder

stringmitquotes = """" & stringohnequotes & """"


mfg Alex

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

Tapani.
Mitglied



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

Beiträge: 56
Registriert: 12.05.2006

erstellt am: 16. Aug. 2006 15: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 PyroX82 10 Unities + Antwort hilfreich

moin,

wenn man in CATIA die zusätzlichen Double-Quotes (") als chr(34) in den String einbettet funktionierts.

Hier noch ein kleines Beispiel:

Code:
sub CATMain()
  CmdLine = "f:\tmp\doit.bat " & chr(34) & "f:\tmp\a b\" & chr(34)
  Ergebnis = CATIA.SystemService.ExecuteProcessus(CmdLine)
end sub

und in doit.bat:

Code:
dir %1 > f:\tmp\bla.txt

CUSee You
    Tapani

------------------
Don't take life so seriously....
it's not a permanent  condition

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

PyroX82
Mitglied



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

Beiträge: 30
Registriert: 07.10.2005

erstellt am: 16. Aug. 2006 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

Hi Alex,

danke das mit dem chr(34) hat funktioniert. Vielen Dank :-)

Gruß,

PyroX82

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

Stoffel
Mitglied
Student


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

Beiträge: 322
Registriert: 09.10.2002

R6/V2010

erstellt am: 25. Aug. 2006 13:22    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 PyroX82 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von PyroX82:
Gibt es eigentlich eine Funktion in CATScript, mit dem man Zeichen ersetzen kann?
Ich find in der blöden v5automation.chm nichts gescheites.

Nein, in CATScript findest du nix in dieser Richtung. Es handelt sich ja auch nicht um eine CATIA Funktion, sondern eher um eine VBScript Funktion. Dafür, dass du an der falschen Stelle suchst, kann die "blöde" V5Automation gar nix. Meiner Meinung nach ist das eine ziemlich gute Dokumentation über die CATIA API.
Aber gegen DAUs kann sie auch nix machen.

TIPP: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnanchor/html/scriptinga.asp
Da findest du dann auch die Doku über VBScript!

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