Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Grösste Zahl in einer Liste

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
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Grösste Zahl in einer Liste (1293 mal gelesen)
Steff179
Mitglied
Geomatiker


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

Beiträge: 266
Registriert: 09.08.2007

AutoCAD 2014

erstellt am: 08. Mrz. 2009 20: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

Hallo zusammen

Ich habe mal das hir zusammen gebastelt:

-------------------------------------------------
(defun c:gg()
(setq vSET (ssget))
(setq vLaenge (sslength vSET))
(setq vLaenge (- vLaenge 1))
(setq vPosit 0)

(while (<= vPosit vLaenge)
(setq vEintrag (cdr (assoc 1 (entget (ssname vSET vPosit)))))
(setq vEintrag (atoi vEintrag))
(setq vListe (cons vEintrag vListe))
(setq vPosit (+ vPosit 1))
)

(setq Groesste (max vListe))
)
-------------------------------------------------

was ich damit erreichen will ist das mir die grösste zahl der gewählten ausgegeben wird.
die liste kommt zu stande ect. aber das mit dem (max blabla) haut irgendwie nicht hin.

kann mir einer den fehler sagen?

gruss steff

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 08. Mrz. 2009 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 Steff179 10 Unities + Antwort hilfreich

(apply 'max '(9 8 4 12 7 0 -1 2))

------------------
  - Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

Steff179
Mitglied
Geomatiker


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

Beiträge: 266
Registriert: 09.08.2007

AutoCAD 2014

erstellt am: 08. Mrz. 2009 21:06    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

hey besten dank das apply hat mir gefehlt....

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

Steff179
Mitglied
Geomatiker


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

Beiträge: 266
Registriert: 09.08.2007

AutoCAD 2014

erstellt am: 08. Mrz. 2009 21: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

und schon wider plagt mich eine unbeantwortete frage auf die ich nichts gefunden habe...

ich würde gerne eine liste nach doppelten zahlen durchsuchen... habe auch nach 30min suchen keinnen passenden befehl gefunden... und bevor ich jetzt die liste eins nach dem anderen lese und mit jedem eintrag vergleiche muss ich doch nochmal fragen ob das einfacher geht...


beispiel:

liste: 11 22 33 44 55 44 66

also haben wir den eintrag 4 und 6 dopplet... ergebniss 44 irgendwie so...

gruss steff

ps.: so wie es aussieht muss man die wohl ausslesen nach anderen forentreads 

[Diese Nachricht wurde von Steff179 am 08. Mrz. 2009 editiert.]

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

Dorfy
Mitglied
Double-Dipl.-Ing. Bleistiftanspitzer


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

Beiträge: 900
Registriert: 21.07.2006

AutoCad2007, ProE, HiCad

erstellt am: 09. Mrz. 2009 06:26    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 Steff179 10 Unities + Antwort hilfreich

Hi,
nach einer Suche mit deinen Schlagworten kam
das

Beispiel:
Liste: 11 22 33 44 55 44 66
also haben wir den eintrag 3 und 5 dopplet... ergebniss 44 irgendwie so...
mfg heiko

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 09. Mrz. 2009 08: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 Steff179 10 Unities + Antwort hilfreich

Hallo,
folgende Funktion passt zum Thema finde ich, es wird eine Liste zurückgegeben, die jeweils die Anzahl der vorhandenen Listenelemente mit wiedergibt:
Code:

(defun test  (/ LISTE LISTE1)
  (setq liste '(11 22 33 44 55 44 66))
  (mapcar '(lambda (A)
            (if (not (assoc A liste1))
              (setq liste1
                      (cons (list A
                                  (length (vl-remove-if
                                            '(lambda (B)
                                              (/= A B))
                                            liste)))
                            liste1))))
    liste)
  liste1)


=>'((66 1) (55 1) (44 2) (33 1) (22 1) (11 1))

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

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

Steff179
Mitglied
Geomatiker


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

Beiträge: 266
Registriert: 09.08.2007

AutoCAD 2014

erstellt am: 09. Mrz. 2009 08:03    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

danke euch das habe ich gestern gefunden ist aber für meinen kopf noch zu kompliziert muss mich da erst mal durchwühlen 

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

Steff179
Mitglied
Geomatiker


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

Beiträge: 266
Registriert: 09.08.2007

AutoCAD 2014

erstellt am: 09. Mrz. 2009 08: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

hmmm ich beanspruche dieses forum ja gerade ein wenig intesnsiv ich hoffe nicht zu intensiv...

(nentsel) "gewährt Zugriff auf die Definitionsdaten, die in einem komplexen Objekt enthalten sind."

(ssname) leider nicht wie ich das sehe...
das heisst ich lege mir ein set an mit (ssget) und würde dann aber gerne wie mit (nentsel) auf die einzelnen elemente zugreifen...

kann mir da einer einen tipp geben?

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 09. Mrz. 2009 09:36    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 Steff179 10 Unities + Antwort hilfreich

Hallo Steff,

wenn Du einen Auswahlsatz mit SSGET erstellst kann Du folgendermaßen auf die enthaltenen Elemente zugreifen:
(setq aws (SSGET))
(setq obj (SSNAME aws n))
wobei n der Index ist, angefangen bei Null.


------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

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

gmk
Mitglied
Dipl.-Ing.(FH) Vermessung


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

Beiträge: 667
Registriert: 23.10.2002

Autocad 2004, WS CadCompass, Normica V2000, WinXP Prof., AMD Athlon 64 X2, 2GB, NVIDIA GeForce 7600GS, HP1055CM

erstellt am: 09. Mrz. 2009 09:49    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 Steff179 10 Unities + Antwort hilfreich

Servus!

Schau' Dir mal in der Hilfe zu nentsel die Return Values an, da ist es eigentlich ganz gut beschrieben was der Unterschied zwischen nentsel und entsel (entspricht in Deinem Fall SSGET) ist. 

Die Elemente des "komplexen Elements" stehen in der Datenbank hintereinander. Mit einer Schleife bis sequend und entnext kommst Du an die Elemente des "komplexen Elements".

Im Auswahlsatz (SSGET) selbst stehen nur die "komplexen Elemente", nicht die "Unterelemente", wie z.B. Attribute oder Polylinienstützpunkte.

Ciao Georg


------------------
http://www.xx-tausend.info

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

Steff179
Mitglied
Geomatiker


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

Beiträge: 266
Registriert: 09.08.2007

AutoCAD 2014

erstellt am: 09. Mrz. 2009 09:51    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

besten dank ich schau mal ob ich damitt weiter komme....

yes yes yes

entnext war wirklich das zauberwort...
hey besten dank ich habe mich schon fast aufgegeben...

[Diese Nachricht wurde von Steff179 am 09. Mrz. 2009 editiert.]

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



BIM Ingenieur / Geoinformatiker (m/w/d)

Geoinformatiker / Ingenieur (m/w/d) als BIM Manager

Für die Abteilung GI-W ?Planung und Bau Werke? suchen wir unbefristet in Vollzeit -Teilzeit ist unter bestimmten Umständen möglich- einen

BIM Ingenieur / Geoinformatiker (m/w/d)

Wir bieten:

  • Bezahlung nach dem Tarifvertrag für Versorgungsbetriebe (TV-V)
  • 30 Tage Urlaub ...
Anzeige ansehenGeowissenschaften
archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 09. Mrz. 2009 21: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 Steff179 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Steff179:
hmmm ich beanspruche dieses forum ja gerade ein wenig intesnsiv ich hoffe nicht zu intensiv...

(nentsel) "gewährt Zugriff auf die Definitionsdaten, die in einem komplexen Objekt enthalten sind."

(ssname) leider nicht wie ich das sehe...
das heisst ich lege mir ein set an mit (ssget) und würde dann aber gerne wie mit (nentsel) auf die einzelnen elemente zugreifen...

kann mir da einer einen tipp geben?


Ein Auswahlsatz ist kein "komplexes Zeichnungsobjekt". Mit NENTSEL kannst Du Elemente innerhalb einer Blockreferenz oder innerhalb einer alten Polylinie auswählen. Auf die Elemente innerhalb eines Auswahlsatzes kannst Du mit (ssname <idx>) zugreifen.

Sehr viel "besser", weil LISP-gemäßer ist es, wenn Du statt mit Auswahlsätzen mit Listen von einzelnen Elementen arbeitest. Da kannst Du dann mit allen Listenfunktionen auf die einzelnen Elemente zugreifen und hast auch nicht mehr mit dummen Seiteneffekten der Auswahlsätze zu kämpfen (Auswahlsätze sind sowas wie Handles auf offene Dateien und keine echten Datenstrukturen).

Du benötigst zwei Funktionen - eine, um Auswahlsätze in Listen von Entities umzuwandeln, und eine andere, die das wieder rückgängig macht. Hier sind sie:

Code:

(defun ss2e (sset / eset counter)
  (if (= 'PICKSET (type sset))
    (repeat (sslength sset)
      (if (not counter)
        (setq counter 0)
        (setq counter (1+ counter))
      )
      (setq eset
            (cons (cdr (assoc -1 (entget (ssname sset counter)))) eset)
      )
    )
  )
  eset
)


(defun e2ss (eset / sset)
  (setq sset (ssadd))
  (if (= 'LIST (type eset))
    (mapcar '(lambda (x)
      (if (= 'ENAME (type x))
(setq sset (ssadd x sset))
      )
    )
    eset
    )
  )
  sset
)



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