Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Nummerierung automatisch hochzählen

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
  
PNY bietet das umfangreichste Ökosystem von B2B als auch B2C-Lösungen für IT-Akteure auf dem Markt, eine Pressemitteilung
Autor Thema:  Nummerierung automatisch hochzählen (1039 / mal gelesen)
Manuel486
Mitglied
Technischer Zeichner Elektro


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

Beiträge: 212
Registriert: 31.01.2020

Windows 11 Pro 64-Bit -
Corsair 7000D Airflow -
Asus ROG Maximus Z790 Hero -
Intel Core i9-13900KS -
Teamgroup T-Force 2x48GB DDR5 RAM @ 5600 MHz -
Crucial T700 SSD 2TB M2 -
Gainward NVIDIA GeForce RTX 4090 24GB -
Corsair HX1000i -
Corsair K55 RGB -
Corsair Dark Core Pro -
Corsair Void Elite Wireless -
Corsair ST100 RGB -
Elgato Stream Deck 15 Tasten -
AutoCAD MEP 2023 -
Revit 2021.1.9 + 2022.1.6
+ 2023.1.4 + 2024.2.1 + 2025.0.2

erstellt am: 29. Jul. 2021 15:28    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.
Was mache ich hier falsch?

Code:
Befehl: (setq INDEX (1+ INDEX))
Fehlerhafter Argumenttyp: numberp: "10"

Er müsste doch eigentlich 1+10 = 11 Rechnen 

------------------

Gruß
Manuel

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

CADwiesel
Moderator
CAD4FM UG




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

Beiträge: 1989
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 29. Jul. 2021 15:32    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 Manuel486 10 Unities + Antwort hilfreich

was ist denn der Wert von INDEX, bevor du 1 addierst?

------------------
Gruß
CADwiesel
Besucht uns im CHAT

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

Manuel486
Mitglied
Technischer Zeichner Elektro


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

Beiträge: 212
Registriert: 31.01.2020

erstellt am: 29. Jul. 2021 15:40    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

Der Wert von Index ist in diesem Fall 10.

------------------

Gruß
Manuel

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

CADwiesel
Moderator
CAD4FM UG




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

Beiträge: 1989
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 29. Jul. 2021 15:53    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 Manuel486 10 Unities + Antwort hilfreich

ach sorry jetzt seh ich es erst...
(+ 1 index)
so geht das

------------------
Gruß
CADwiesel
Besucht uns im CHAT

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

cadffm
Moderator
良い精神




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

Beiträge: 22275
Registriert: 03.06.2002

Alles

erstellt am: 29. Jul. 2021 17:10    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 Manuel486 10 Unities + Antwort hilfreich

Beides würde funktionieren wenn der Index Wert wirklich 10 wäre,
ist er aber nicht.
(er ist "10" - sieht man ja an der Fehlermeldung. Auch das eine Nummer erwartet aber nicht übergeben wird.
Prüfung (type index)
addieren kann man nur real und int, nicht aber Zeichenketten.


Editiert/Ergänzt

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

Manuel486
Mitglied
Technischer Zeichner Elektro


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

Beiträge: 212
Registriert: 31.01.2020

erstellt am: 30. Jul. 2021 08:41    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

Prüfung
Code:
Befehl: (type index)
STR

Habe danach INDEX "händisch" auf 10 gesetzt.

Code:
Befehl: (setq INDEX 10)
10

Befehl: (type index)
INT

Befehl: (setq INDEX (+ 1 INDEX))
11



Ich habe einen String und brauche einen Integer, verstehe.
Dazu habe ich das hier gefunden:

Zitat:
Converts a string into an integer
(atoi string)
Command: (atoi "97")
97
Command: (atoi "3")
3
Command: (atoi "3.9")
3

Converts a string into a real number
(atof string)
Command: (atof "97.1")
97.1
Command: (atof "3")
3.0
Command: (atof "3.9")
3.9


Code:
Befehl: (setq INDEX (+ 01 (atoi INDEX)))
11

funktioniert.
Wenn aber der Index 01 ist, passiert das.

Code:
Befehl: (setq INDEX (+ 01 (atoi INDEX)))
2

Er nimmt die null weg. Ergebnis sollte 02 sein.

Jetzt habe ich versucht es mit strcat zu lösen.
Ergebnis:

Code:
Befehl: (setq INDEX (+ 1 (atoi INDEX)))
2

Befehl: (itoa INDEX)
"2"

Befehl: (setq NULL "0")
"0"

Befehl: (setq INDEX (strcat NULL INDEX))
Fehlerhafter Argumenttyp: stringp 2


Wie bekomme ich es hin das er von 02 bis 09 eine 0 (NULL) davor setzt?

------------------

Gruß
Manuel

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

cadffm
Moderator
良い精神




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

Beiträge: 22275
Registriert: 03.06.2002

Alles

erstellt am: 30. Jul. 2021 09: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 Manuel486 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Manuel486:

>>"Wenn aber der Index 01 ist"
Der Index-Wert ist NIE 01
(setq index 01)
1

>>Jetzt habe ich versucht es mit strcat zu lösen.
ITOA und STRCAT ist genau richtig und du hast einfach nur zu früh gefragt - wärst sicher selber
zum Ziel gekommen (bin ich sicher). Jedes Mal wenn du den Bypass nimmst, fehlen dir dir Erfahrungen
und die Übung welche du durch die "verpassten" versuche und Recherche gemacht hättest ;)

Code:

(setq INDEX (+ 1 (atoi INDEX)))
2
(itoa INDEX)
"2"
(setq NULL "0")
"0"
(setq INDEX (strcat NULL INDEX))
Fehlerhafter Argumenttyp: stringp 2

STRCAT verkettet Zeichenketten, NUR Zeichenketten, die Meldung sagt das auch

>>Wie bekomme ich es hin das er von 02 bis 09 eine 0 (NULL) davor setzt?
Prüfe ob die Zahl kleiner 10 ist, falls ja - Ausgabe mit der Null davor, wenn nicht, dann ohne.

(if (< INDEX 10) (strcat "0" (itoa INDEX))(itoa INDEX))
oder
(strcat (if (< INDEX 10) "0" "") (itoa INDEX))


Slow down   

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

Manuel486
Mitglied
Technischer Zeichner Elektro


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

Beiträge: 212
Registriert: 31.01.2020

erstellt am: 30. Jul. 2021 10:27    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

Ich verstehe die Schreibweise nicht so ganz.

Befehl: (if (< INDEX 10) (strcat "0" (itoa INDEX)))
"01"

Befehl: (if (< INDEX 10) (strcat "0" (itoa INDEX))(itoa INDEX))
"01"

Warum 2x (itoa INDEX))?

Tue mich mit dem strcat echt schwer,
da muss man irgendwie ganz schön ums Eck denken.

------------------

Gruß
Manuel

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

cadffm
Moderator
良い精神




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

Beiträge: 22275
Registriert: 03.06.2002

Alles

erstellt am: 30. Jul. 2021 10:44    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 Manuel486 10 Unities + Antwort hilfreich

Wird Zeit Manuel  

<ich schreibe SO nur weil ich denke du würdest das lösen können>


(if (< INDEX 10) (strcat "0" (itoa INDEX))(itoa INDEX))

>>da muss man irgendwie ganz schön ums Eck denken.
Überhaupt nicht, es ist komplett "doof" und simpel - Der lauter Wald vor Bäumen - Effekt.
Ich dachte so auch schon, aber genau das Gegenteil ist der Fall! Man muß SIMPEL denken,
so simpel wie man es im eigentlichen Leben kaum noch gewohnt ist.

>>Ich verstehe die Schreibweise nicht so ganz. / Warum 2x (itoa INDEX))?
Simpler wie die Zeile hier wird es nicht mehr, du musst dir einfach mehr Zeit nehmen!

>>Tue mich mit dem strcat echt schwer,
statt strcat hätte hier auch irgendeine andere Funktion stehen können, ich denke nicht das 'strcat' dein Problem ist,
hier geht es entweder um IF oder die Fähigkeit Klammern zu lesen - also was gehört zusammen.


(if ; IF-Funktion, erwartet eine Bedingung, einen DANN Part und optional einen SONST Part WENN, DANN (Optionsl ,ANSONSTEN)
(< INDEX 10); WENN, Index kleiner 10 ist
(strcat "0" (itoa INDEX)); DANN, verkette die Zeichenketten "0" mit "Index als Zeichenkette" => "02" ((als Beispiel, wenn Index = 2))
(itoa INDEX); SONST, gebe den Wert von Index als Zeichenkette zurück
)

|(setq INDEX 2)
|(strcat "0" (itoa INDEX))
|(strcat "0" "2")
|"02"

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

cadffm
Moderator
良い精神




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

Beiträge: 22275
Registriert: 03.06.2002

Alles

erstellt am: 30. Jul. 2021 10:55    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 Manuel486 10 Unities + Antwort hilfreich

Hier noch mal die aufgeschlüsselte Schreibsweise mit dem ganzen IF-Ausdruck:

(if
(< INDEX 10)
(strcat "0" (itoa INDEX))
(itoa INDEX)
)
---
(if
T
(strcat "0" "2")
"2"
)
---
(if
T
"02"
"2"
)
---
(wenn nichtNil machdas ansonstendas)
(if  T        "02"    "2")

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