Autor
|
Thema: Ergebnisse in Textdatei übertragen (1643 mal gelesen)
|
HarleKinX Mitglied Student
Beiträge: 32 Registriert: 20.02.2011 Intel Core 2 Duo, 3Gb Ram Graka: Win XP Pro SP3 CATIA V5 R19 SP8
|
erstellt am: 01. Mrz. 2011 09:50 <-- editieren / zitieren --> Unities abgeben:
Guten Tag, im gesamten Forum finde ich immer wieder, dass die meisten Parameter und Werte einer Textdatei ins Makroprogramm übertragen wollen. Jedoch den umgekehrten Weg finde ich garnicht. Ich habe ein Berechnungsprogramm, wo ich am Ende die Ergebnisse nochmal zusammen in einerTextdatei übertragen lassen möchte um sie dann für andere (unwichtige Dinge wie Drucken, Speichern als Textdatei) zu benutzen. Ich habe leider keine Ahnung wie ich da vorgehen müsste und hoffe das sich vllt jemand findet, der mir weiterhelfen kann. Die Berechnung handelt von einer Gelenkverbindung. Danke im vorraus. Harle Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HarleKinX Mitglied Student
Beiträge: 32 Registriert: 20.02.2011 Intel Core 2 Duo, 3Gb Ram Graka: Win XP Pro SP3 CATIA V5 R19 SP8
|
erstellt am: 01. Mrz. 2011 11:51 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 01. Mrz. 2011 12:17 <-- editieren / zitieren --> Unities abgeben: Nur für HarleKinX
|
HarleKinX Mitglied Student
Beiträge: 32 Registriert: 20.02.2011 Intel Core 2 Duo, 3Gb Ram Graka: Win XP Pro SP3 CATIA V5 R19 SP8
|
erstellt am: 01. Mrz. 2011 12:54 <-- editieren / zitieren --> Unities abgeben:
Hey, blicke da irgendwie nicht durch. Habe jetzt den Befehl für eine Textdatei erstellen: Open saveInBox.Text + "Ergebnisse.txt" For Output As #1 ' Datei zur Ausgabe öffnen. Print #1, "Nur ein Test" ' Text in Datei schreiben. Close #1 ' Datei schließen. Wie schaffe ich jetzt aber die genauen ergebnisse dort hineinzubringen? Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 01. Mrz. 2011 12:58 <-- editieren / zitieren --> Unities abgeben: Nur für HarleKinX
Servus Schau mal in der V5Automation. Beispiel daraus: This example write a string in the the TextStream TestStream. TestStream.Write("This is a test")
Gruß Bernd
------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HarleKinX Mitglied Student
Beiträge: 32 Registriert: 20.02.2011 Intel Core 2 Duo, 3Gb Ram Graka: Win XP Pro SP3 CATIA V5 R19 SP8
|
erstellt am: 01. Mrz. 2011 13:09 <-- editieren / zitieren --> Unities abgeben:
Ok, dass funktioniert. Set fs = CreateObject("Scripting.FileSystemObject") Set A = fs.CreateTextFile(saveInBox.Text + "testfile.txt", True) A.WriteLine ("Dies ist ein Test.") A.WriteLine Label45.Caption A.Close Kann sogar einzelne Labels einfach aufrufen. Ich probier das mal so und wenn würde dann mal das Ergebniss bzw eventuelle fragen dann verkünden. Danke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HarleKinX Mitglied Student
Beiträge: 32 Registriert: 20.02.2011 Intel Core 2 Duo, 3Gb Ram Graka: Win XP Pro SP3 CATIA V5 R19 SP8
|
erstellt am: 01. Mrz. 2011 13:30 <-- editieren / zitieren --> Unities abgeben:
Ok, nun hab ich das Problem, das er alles macht, nur nich die Datei direkt gleich öffnet. habe das versucht If instr(datei.name , "Auslesedatei") <> 0 then Set mydatei = CATIA.FileSystem.CreateFile(saveInBox.Text + "Ergebnisse.txt", True) msgbox mydatei.name Set t = mydatei.OpenAsTextStream("ForReading") Exit For end if Next und dann meckert er immer die Zeile "Exit for" an. Hab ich da komplett was falsch?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tberger Mitglied Application Manager CATIA V5 / V6
Beiträge: 1385 Registriert: 13.01.2007 WIN 7 64bit V5R21SP3HF49 3DX/V6 R2016x
|
erstellt am: 01. Mrz. 2011 13:32 <-- editieren / zitieren --> Unities abgeben: Nur für HarleKinX
Wenn er "Exit For" anmeckert fehlt vielleicht davor im Code ein "For" aus dem er aussteigen könnte. ------------------ Grüße aus dem Thurgau Thomas +++++++++++++++++++++++++++++++++ CATIA - eine Laune der Natur ... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HarleKinX Mitglied Student
Beiträge: 32 Registriert: 20.02.2011 Intel Core 2 Duo, 3Gb Ram Graka: Win XP Pro SP3 CATIA V5 R19 SP8
|
erstellt am: 01. Mrz. 2011 13:41 <-- editieren / zitieren --> Unities abgeben:
Ja genau das hat gefehlt, nun meckert er aber das End if an. Habe mal das Öffnen der Datei auf ein Extra Button gelegt: For Each datei In ordner.Files If InStr(datei.Name, "Ergebnisse") <> 0 Then Set mydatei = CATIA.FileSystem.CreateFile(saveInBox.Text + "Ergebnisse.txt", True) MsgBox mydatei.Name Set t = mydatei.OpenAsTextStream("ForReading") Exit For End If Next Wie muss ich die Zeile mit For Each datei In deklarieren bzw erfassen, damit das Programm den genauen Pfad hat?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 01. Mrz. 2011 13:50 <-- editieren / zitieren --> Unities abgeben: Nur für HarleKinX
Servus Warum so kompliziert? Du kannst doch mittels FileExists (siehe Doku) direkt prüfen ob die Datei schon existiert. Gruß Bernd
------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HarleKinX Mitglied Student
Beiträge: 32 Registriert: 20.02.2011 Intel Core 2 Duo, 3Gb Ram Graka: Win XP Pro SP3 CATIA V5 R19 SP8
|
erstellt am: 01. Mrz. 2011 13:55 <-- editieren / zitieren --> Unities abgeben:
|
HarleKinX Mitglied Student
Beiträge: 32 Registriert: 20.02.2011 Intel Core 2 Duo, 3Gb Ram Graka: Win XP Pro SP3 CATIA V5 R19 SP8
|
erstellt am: 01. Mrz. 2011 14:43 <-- editieren / zitieren --> Unities abgeben:
Zum öffnen Funktioniert nicht mal eine Shell funktion. Was mach ich falsch? Beispiel: Dim TaskID As Long TaskID = Shell(saveInBox.Text + "Ergebnisse.txt", vbNormalNoFocus) ------------------ Grüße aus Köthen HarleKinX Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 01. Mrz. 2011 16:59 <-- editieren / zitieren --> Unities abgeben: Nur für HarleKinX
|
HarleKinX Mitglied Student
Beiträge: 32 Registriert: 20.02.2011 Intel Core 2 Duo, 3Gb Ram Graka: Win XP Pro SP3 CATIA V5 R19 SP8
|
erstellt am: 01. Mrz. 2011 22:36 <-- editieren / zitieren --> Unities abgeben:
Hey, also habe folgende Datie erstellt: 'Anlegen einer Textdatei Set fs = CreateObject("Scripting.FileSystemObject") Set A = fs.CreateTextFile(saveInBox.Text + Textname + ".txt", True) A.writeLine "_______________Übersicht der Ergebnisse für die Gelenkverbindung________________" A.writeLine A.writeLine A.writeLine " Eingabewerte:" A.writeLine A.writeLine " " + Label1.Caption + ": " + ComboBox1.Value A.writeLine A.writeLine " " + Label25.Caption + ": " + ComboBox6.Value A.Close Nun erstellt er ja die Datei. Diese finde ich im angebenen Ordner. Aber kann ich sie nicht direkt durch ein Befehl öffnen lassen? Also das die Textdatei sich öffnet und man sie gleich einsehen kann? Oder muss es immer manuell gemacht werden? Grüße ------------------ Grüße aus Köthen HarleKinX Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 01. Mrz. 2011 23:09 <-- editieren / zitieren --> Unities abgeben: Nur für HarleKinX
Servus Also deine Idee mit der Shell scheint zu funktionieren, allerdings fehlt noch die Angabe des Programms. zB (ungetestet) Code: Sub Test() Const DATEI = "C:\temp\test.txt" Dim TaskId As Double TaskId = Shell("notepad.exe " & DATEI, vbMaximizedFocus) If TaskId = 0 Then MsgBox "Konnte notepad nicht starten" End Sub
Quelle: hierGruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. [Diese Nachricht wurde von bgrittmann am 01. Mrz. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HarleKinX Mitglied Student
Beiträge: 32 Registriert: 20.02.2011 Intel Core 2 Duo, 3Gb Ram Graka: Win XP Pro SP3 CATIA V5 R19 SP8
|
erstellt am: 02. Mrz. 2011 09:40 <-- editieren / zitieren --> Unities abgeben:
Muss ich irgendwie die Shell funktion anders auslegen? Wenn ich das so auf ein Button lege, bekomme ich nur eine Fehlermeldung und die Zeile Const DATEI = saveInBox.Text + Textname + ".txt" wird als Fehler angezeigt. Quelltext: Private Sub CommandButton22_Click()
Const DATEI = saveInBox.Text + Textname + ".txt" Dim TaskId As Double TaskId = Shell("notepad.exe " & DATEI, vbMaximizedFocus) If TaskId = 0 Then MsgBox "Konnte notepad nicht starten" End Sub ------------------ Grüße aus Köthen HarleKinX Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 02. Mrz. 2011 10:43 <-- editieren / zitieren --> Unities abgeben: Nur für HarleKinX
Servus Und wie lautet die Fehlermeldung? (bei mir läuft dein Beispiel) Ist der Pfad korrekt? (lass dir mal die Konstante DATEI in einer MsgBox ausgeben) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HarleKinX Mitglied Student
Beiträge: 32 Registriert: 20.02.2011 Intel Core 2 Duo, 3Gb Ram Graka: Win XP Pro SP3 CATIA V5 R19 SP8
|
erstellt am: 02. Mrz. 2011 10:51 <-- editieren / zitieren --> Unities abgeben:
Hey, Fehlermeldung: Fehler beim Kompilieren - Konstanter Ausdruck erforderlich Gelb-makiert ist das CommandButton22_Click () Blau-Unterlegt ist .Text bei saveInBox.Text saveInBox.Text ist ja ein Bezug auf ein Eingabefeld mit den namen "saveInBox" und Textname wurde vorher deklariert wie die normale Textdatei auch mit: 'Bezeichnung der Textdatei If b_type = 1 Then Zusatz = "B" If b_type = 2 Then Zusatz = "A" Textname = "GV-" + Str(F) + "N_Bolzen" + Str(d1N) + "_Typ" + Zusatz Bei der Erstellung der Textdatei gibt es da keine Probleme bei der PFadzuweisung bzw Namensgebung. ------------------ Grüße aus Köthen HarleKinX Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HarleKinX Mitglied Student
Beiträge: 32 Registriert: 20.02.2011 Intel Core 2 Duo, 3Gb Ram Graka: Win XP Pro SP3 CATIA V5 R19 SP8
|
erstellt am: 02. Mrz. 2011 11:10 <-- editieren / zitieren --> Unities abgeben:
Hey, also wenn ich als Pfad ein direktes Verzeichnis angebe, klappt es wirklich. Aber eigentlich müsste es doch genauso über das Einleseverzeichnis gehen. ------------------ Grüße aus Köthen HarleKinX Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HarleKinX Mitglied Student
Beiträge: 32 Registriert: 20.02.2011 Intel Core 2 Duo, 3Gb Ram Graka: Win XP Pro SP3 CATIA V5 R19 SP8
|
erstellt am: 02. Mrz. 2011 11:26 <-- editieren / zitieren --> Unities abgeben:
ok, habs. Man muss die Const entfernen und dafür einen neue Variable einbinden: Ergebniss:
Speicherpfad_Textdatei = saveInBox.Text + Textname + "Ergebnissetest.txt" Dim TaskId As Double TaskId = Shell("notepad.exe " & Speicherpfad_Textdatei, vbMaximizedFocus) If TaskId = 0 Then MsgBox "Konnte notepad nicht starten" Danke euch
------------------ Grüße aus Köthen HarleKinX Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |