Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API ListBox/Dateipfad und txt Datei füllen

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:   API ListBox/Dateipfad und txt Datei füllen (254 mal gelesen)
Lunik
Mitglied
Techn. Produktdesigner


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

Beiträge: 20
Registriert: 05.07.2017

Hardware
-Intel Xeon W 2123
-Nvidia Quadro P2000
-16GB RAM
Software
-Windows 10 Professional
-SolidWorks 2017 SP5.0
-Office 2010
Eingabe
-SpaceMousePro Wireless
-CadMouse Wireless

erstellt am: 10. Aug. 2018 15:00    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


Eigenschaften20180810CADDE.swp.txt


Lieferanten.txt

 
Hallo zusammen,

vorweg erst einmal bitte zerreißt das Makro nicht in der Luft, ich habe aus verschiedensten Makros Code übernommen und zusammengefügt, ggf. ergänzt. Daher kann man einiges bestimmt besser/kürzer schreiben aber so wie es ist funktioniert es zumindest.

Nun zu meinen eigentlichen Problemen. Ich bin momentan daran ein Schriftfeldmakro zu erstellen und bin auch schon recht weit gekommen.
Allerdings habe ich folgende Probleme, und ich hoffe ihr könnt mir helfen oder zumindest ansätze anbieten:

1. Einträge aus ListBox wieder in .txt Datei schreiben
Ich habe je eine ListBox unter „Auswahleigenschaften editieren“ > „Liste laden“. Dort werden alle Einträge aufgelistet, die in einer extra .txt Datei liegen. Mit dem Button „löschen“ kann ich auch einen Eintrag aus der ListBox entfernen, allerdings bekomme ich es nicht wieder hin die ListBox in die Textdatei zu schreiben, sodass der Eintrag gelöscht wurde.

2. Variabler Pfad für die .txt Dateien
Wie oben schon erwähnt greift das Makro auf einige .txt Dateien zu. Momentan habe ich den Pfad fix bei jedem Aufruf vergeben. Ich hätte aber gerne den Pfad einmal global angelegt, sodass ich später nur noch einen Variablen Aufruf + „\NamederTexdatei“ machen muss. Habe ich auch schon versucht, allerdings zeigt er immer an das der Pfad „leer“ ist.
Durch den variablen Pfad möchte ich später den Ordner mit dem Makro und den .txt Dateien verschieben können wie ich möchte ohne den Pfad überall neu definieren zu müssen.

3. Kalender optisch anpassen
Ich habe aus dem Englischen Forum, leider weis ich den Beitrag nichtmehr, einen Code für einen Kalender. Diesen habe ich auch erfolgreich eingefügt, allerdings sind mir die beiden oberen Textboxen zu klein. Wie kann ich diese verschieben + vergrößern. Bzw. wie kann ich allgemein die Optik des Kalenders anpassen? Muss ich dazu in cCalender alle einzelnen werte bearbeiten?
Der Kalender wird aufgerufen indem man in der UserForm „EigenschaftenUF“ in die TextBox von z.B. „Gezeichnet am“ klickt.


Anbei noch das Makro und eine .txt Datei, es dürfen gerne weiter Verbesserungsvorschläge gemacht werden wenn jemand Lust hat drüber zu schauen 
Danke jetzt schon einmal für eure Mühe!

Gruß

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

Christian_W
Ehrenmitglied V.I.P. h.c.
Konstrukteur (Dipl-Ing)


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

Beiträge: 2028
Registriert: 04.04.2001

SWX 2016sp5 WIN7-64
proAlpha6.2e/calinkV9
(Tactonworks)
(Medusa7, NesCAD2010,
solidEdge19) CSWP 12/2015

erstellt am: 10. Aug. 2018 17:54    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 Lunik 10 Unities + Antwort hilfreich

Hallo,

1 - ähm ... schau mal was freefile macht - bestimmt nicht 'Textdatei leeren, wie du dahinter geschrieben hast. 
    und append hängt immer hinten dran, wenn ich es recht in Erinnerung habe.
    Wie wäre es mit "file löschen" und einfach ein neues anlegen?

2 - hast du mal GetCurrentMacroPathFolder probiert?
    damit könntest du eine ini-Datei oder andere Dateien im gleichen Ordner ansprechen wie das Makro liegt.

3 - weiß auch nicht

Gruß, Christian

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

nahe
Mitglied



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

Beiträge: 1373
Registriert: 18.01.2001

arbeite mit:
HP Z440 Workstation
Xenon (12-Kern) 3.5GHz
32GB RAM
238GB SSD
------------------------
SWX-2016 SP5.0
DBWorks-R15 SP2.17
----------------
Windows 7 64 bit
----------------
VB
VBA
Lotus Notes Datenbanken
erste Schritte mit Swift

erstellt am: 13. Aug. 2018 07: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 Lunik 10 Unities + Antwort hilfreich

Hallo,

zu 1.
wie Christian schon geschrieben hat.
Wenn Du einen Text-Datei als "Konfigurations-Datei" hast und Einträge löschen möchtest
bleibt Dir nur, die komplette Datei neu zu erstellen.
Alternativen wären z.B: eine Excel-Datei, eine XML-Datei oder eine Datenbank zu verwenden
das ist dann allerdings etwas aufwendiger zu programmieren

zu 2.
wie Christian geschrieben hat
GetCurrentMacroPathFolder

zu 3.
geht es darum, das Erstellungsdatum der Zeichnung einzutragen?
Wenn ja, dann lässt sich das ja auch autom. ermitteln
z.B.:
Dim oFSO As Object
Dim oF As Object

Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oF = oFSO.GetFile(Dateiname inkl. Pfad)
Debug.Print oF.DateCreated
Debug.Print oF.DateLastModified


------------------
Grüße
Heinz

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

bk.sc
Ehrenmitglied V.I.P. h.c.
Maschinenbautechniker



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

Beiträge: 2116
Registriert: 18.07.2012

HP Z400 Workstaion
CPU: Intel Xeon 6x 3,33GHz
GPU: NVIDEA Quadro 2000
RAM: 12 GB DDR3
Win 7 x64
CAD Hauptberuflich
-Solid Works 2014 SP4
-Creo Elements Direct Drafting (ME10)
DMS/PDM
-Pro.File V8 (8.4)
Simulation
-Simufact Forming 11.0
CAD Nebenberuflich
-Pro Engineer WF 3+4
-Creo Parametric 2.0

erstellt am: 13. Aug. 2018 07:33    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 Lunik 10 Unities + Antwort hilfreich

Hallo,

zu 1.
Ich habe mal google bemüht und folgendes gefunden zum löschen von Einträgen in Text-Datein. Hier entlang
Ich bevorzuge für sollche Aufgaben aber das CSV Format, da es im Gegensatz zu Excel nicht geöffnet werden muss um es zu bearbeiten.

Gruß
Bernd

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete 

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

Christian_W
Ehrenmitglied V.I.P. h.c.
Konstrukteur (Dipl-Ing)


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

Beiträge: 2028
Registriert: 04.04.2001

SWX 2016sp5 WIN7-64
proAlpha6.2e/calinkV9
(Tactonworks)
(Medusa7, NesCAD2010,
solidEdge19) CSWP 12/2015

erstellt am: 13. Aug. 2018 15:30    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 Lunik 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von bk.sc:
... Ich bevorzuge für sollche Aufgaben aber das CSV Format, da es im Gegensatz zu Excel nicht geöffnet werden muss um es zu bearbeiten.
...

It's Magic ...
du löscht darin eine Zeile ohne die Datei zu öffnen? 


Gruß, Christian

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

Christoph Weise
Mitglied
Technischer Produktdesigner / Konstruktion / CAD-Admin


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

Beiträge: 99
Registriert: 22.03.2015

Fujitsu Celsius
Intel Xenon E5-1620
32 GB RAM
Nvidia P4000 8GB
Win 7 64-bit
SolidWorks 2016/2018
QickPress 2016<P>Home:
HP Z230
Intel Xenon E3-1225
16GB Ram
Nvidia K2000
Win 7 64-bit

erstellt am: 13. Aug. 2018 17: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 Lunik 10 Unities + Antwort hilfreich

Hallo Lunik,
zu 1.
Die Problematik wegen der Listbox habe ich ähnlich, allerdings gebe ich vor was die Kollegen eintragen können. Die Kollegen können allerdings nicht selbst die Vorlagen ändern.
Gesteuert wird das bei mir über eine einfache Text Datei. Bei Bedarf könnte man diese auch jedesmal neu erstellen wenn sich etwas ändert.
Ich habe das bei mir bei einer anderen Funktion so gelöst:
Code:
Open Replace(swApp.GetCurrentMacroPathName, "Dateieigenschaften_füllen.swp", "Fehlende Bezeichnung.txt") For Append As 1
Debug.Print cmdMARA_TEXT_DE.Text, ";", cmdMARA_TEXT_EN.Text
Print #1, cmdMARA_TEXT_DE.Text, ";", cmdMARA_TEXT_EN.Text

Das ganze hängt an die Text Datei einfach eine Zeile dran. Gesteuert wird das Verhalten über "for Append" (Wie Christian schon erwähnt hat).

zu 2. Da mache ich es in jedem Makro so wie es Christian geschrieben ist. Vorteil dabei ist, man kann das Makro(inkl. Text Dateien) so viel verschieben wie man will und es funktioniert immer.

zu 3.
Zum Kalender an sich habe ich keine Idee.
Bei uns ist es so das einfach das aktuelle Datum eingetragen wird, und sich keiner Gedanken um ein paar Stunden hin oder her macht.

Gruß Christoph

------------------
Wer einen Fehler findet darf ihn behalten,
wer zwei findet kann beide behalten,
ab fünf Fehler gibs Rabatt :-)

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

nahe
Mitglied



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

Beiträge: 1373
Registriert: 18.01.2001

arbeite mit:
HP Z440 Workstation
Xenon (12-Kern) 3.5GHz
32GB RAM
238GB SSD
------------------------
SWX-2016 SP5.0
DBWorks-R15 SP2.17
----------------
Windows 7 64 bit
----------------
VB
VBA
Lotus Notes Datenbanken
erste Schritte mit Swift

erstellt am: 13. Aug. 2018 18: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 Lunik 10 Unities + Antwort hilfreich

Hallo Bernd,

das Beispiel auf das Du hier verlinkst, erstellt aber auch nur die Datei einfach neu

Zitat:
Original erstellt von bk.sc:
Hallo,

zu 1.
Ich habe mal google bemüht und folgendes gefunden zum löschen von Einträgen in Text-Datein. Hier entlang


------------------
Grüße
Heinz

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

bk.sc
Ehrenmitglied V.I.P. h.c.
Maschinenbautechniker



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

Beiträge: 2116
Registriert: 18.07.2012

HP Z400 Workstaion
CPU: Intel Xeon 6x 3,33GHz
GPU: NVIDEA Quadro 2000
RAM: 12 GB DDR3
Win 7 x64
CAD Hauptberuflich
-Solid Works 2014 SP4
-Creo Elements Direct Drafting (ME10)
DMS/PDM
-Pro.File V8 (8.4)
Simulation
-Simufact Forming 11.0
CAD Nebenberuflich
-Pro Engineer WF 3+4
-Creo Parametric 2.0

erstellt am: 14. Aug. 2018 07:33    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 Lunik 10 Unities + Antwort hilfreich

Zitat:
It's Magic ...
du löscht darin eine Zeile ohne die Datei zu öffnen?

Zitat:
das Beispiel auf das Du hier verlinkst, erstellt aber auch nur die Datei einfach neu

Morgen Christian und Heinz,

ok hab eben mal in die Codes geschaut und die Datein werden ja doch entweder geöffnet oder ersetzt, nur eben nicht sichtbar. 

Gruß
Bernd

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete 

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

Christian_W
Ehrenmitglied V.I.P. h.c.
Konstrukteur (Dipl-Ing)


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

Beiträge: 2028
Registriert: 04.04.2001

SWX 2016sp5 WIN7-64
proAlpha6.2e/calinkV9
(Tactonworks)
(Medusa7, NesCAD2010,
solidEdge19) CSWP 12/2015

erstellt am: 14. Aug. 2018 09:43    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 Lunik 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von bk.sc:
... entweder geöffnet oder ersetzt, nur eben nicht sichtbar.  

Hallo Bernd,

der große Vorteil ist IMHO, dass sie direkt von VBA geöffnet werden, anstatt erst ein Application-Objekt aufzumachen (Excel) und dann mit den Excel-Funktionen da drin herumzumachen.
so hatte ich deine Bemerkung zumindest verstanden, aber sie war halt anders formuliert 

Das Beispiel mit dem komplett einlesen und split find ich persönlich sehr schön! Danke dafür 

Gruß, Christian

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