| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Text formatieren (1294 mal gelesen)
|
PBPaul Mitglied Konstrukteur
Beiträge: 48 Registriert: 28.09.2004 ACAD 2009, Vista 64
|
erstellt am: 17. Dez. 2005 20:48 <-- editieren / zitieren --> Unities abgeben:
Hallo, untenstehend ein Ansatz um ausgewählten Text, falls es eine Zahl ist, um eins zu erhöhen. Leider löscht das Programm vorangestellte Nullen aus 0005 wird 6 was jedoch nicht sein soll. Gibt es eine Möglichkeit ähnlich wie in Excel ein benutzerdefiniertes Format zu vergeben (Befehl Format kennt AcadVBA nicht)? Eine feste Vorgabe der vorangestellten Nullen (wie im Ansatz) hilft mir nicht weiter da diese variiert. Sub TextUmEinsErhoehen() Dim Punkt As Variant Dim TextObj As AcadText 'On Error Resume Next With ThisDrawing.Utility .GetEntity TextObj, Punkt, vbCr & "Text auswählen: " End With TextObj.TextString = TextObj.TextString + 1 TextObj.TextString = ("00" & TextObj.TextString) End Sub Mit freundlichen Grüßen Paul Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 17. Dez. 2005 21:16 <-- editieren / zitieren --> Unities abgeben: Nur für PBPaul
Bin irgendwie bissel raus, aber meinst Du sowas in der Art? Code:
Sub yxc() Dim txt as acadtext, p thisdrawing.utility.getentity txt, p, "Text wählen:" txt.textstring=format(str(txt.textstring +1), "0000") end sub
Gruss Nancy -- hoffentlich hab ich mich nicht vertippst;-) [Diese Nachricht wurde von startrek am 17. Dez. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stelli1 Moderator Verm.-Ing.
Beiträge: 1521 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign, MapGuide, Autodesk Topobase, VS6, VS.net 2013
|
erstellt am: 18. Dez. 2005 10:54 <-- editieren / zitieren --> Unities abgeben: Nur für PBPaul
Hallo Paul, folgendes Beispiel verwende ich zum Formatieren/Runden von Zahlen. Hierbei wird untersucht, ob als Dezimaltrennzeichen eine "." oder "," verwendet wurde. Entsprechend der Einstellung in dem Textfeld me.Nachkommastellen wird die Anzahl Nachkommastellen gesetzt. Zusätzlich wird eine Prefix und ein Suffix aus den entsprechenden Textfelden eingesetzt. Beispiel: Nachkommastellen=3 Prefix=Station_ Suffix=_m .123456 -> ,123456 -> Formatmuster(0.000)->0,123 -> "Station 0,123 m" Code:
strWert = Replace(TextObj.TextString, ",", ".") wert = Val(strWert) strWert = Format$(wert, "0." & String(Val(Me.Nachkommastellen.Text),"0")) TextObj.TextString = prefix.Text & strWert & suffix.Text TextObj.Update
Stelli [hoffe jetzt ist kein fehler mehr drin] ------------------ Warum lisp'eln wenn's auch anders geht.
[Diese Nachricht wurde von Stelli1 am 18. Dez. 2005 editiert.] [Diese Nachricht wurde von Stelli1 am 18. Dez. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Goofy007 Mitglied Vermessungstechniker
Beiträge: 578 Registriert: 06.11.2004 Map3D 2018 und Civil3D 2018
|
erstellt am: 18. Dez. 2005 13:35 <-- editieren / zitieren --> Unities abgeben: Nur für PBPaul
|
PBPaul Mitglied Konstrukteur
Beiträge: 48 Registriert: 28.09.2004 ACAD 2009, Vista 64
|
erstellt am: 18. Dez. 2005 15:58 <-- editieren / zitieren --> Unities abgeben:
Habe den Befehl Format zu schnell aufgegeben. Da beim probieren in dieser Zeile ein Fehler gemeldet wurde. Alles funktioniert jetzt so wie ich es mir vorgestellt habe. Vielen Dank und frohe Feiertage Paul Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|