|
Lisp : Bat-Datei starten
autocart am 23.12.2008 um 00:24 Uhr (0)
Hatte vor kurzem das selbe Problem mit einer cmd-Datei.Habs dann so gelöst: Die Datei Zeile für Zeile ausgelesen und diese Zeilen dann mit Code:(command "shell" (strcat """ Batch-Datei-Zeile """))abgearbeitet. Hat bei mir prima funktioniert.EDIT: Bei dieser Variante kann es aber ein Problem mit den Pfad-Angaben geben, falls darin Leerzeichen enthalten sind und der Pfad nicht in Anführungszeichen eingeschlossen ist.Übrigens: Falls ein anderes "working directory" zum abarbeiten der Batch-Datei-Zeilen gewünsc ...
|
| In das Form Lisp wechseln |
|
Lisp : Zeile lesen vo Datei
Nano am 04.01.2009 um 10:26 Uhr (0)
Frohes neues Jahr an Alle.Habe eine Datei die ich Zeile um Zeile lesen kann.Aber die Liste die ich erstelle ist jedoch FALSCH!!Befehl: (setq liste (list zeile))Das Ergebnis: (""H_HVL" "2393C3HEKK00" "23" "CONTINUOUS"")Wunsch-Resultat: ("H_HVL" "2393C3HEKK00" "23" "CONTINUOUS")Die erste Zeile in der Datei sieht so aus:"H_HVL" "2393C3HEKK00" "23" "CONTINUOUS"Gruss Nano
|
| In das Form Lisp wechseln |
|
Lisp : Zeile lesen vo Datei
Dorfy am 04.01.2009 um 11:10 Uhr (0)
hi,mal so ungetestet(princ liste) -- sollte Wunschresultat ergeben?!mfg heiko
|
| In das Form Lisp wechseln |
|
Lisp : Zeile lesen vo Datei
Nano am 04.01.2009 um 11:35 Uhr (0)
ja Heiko Resultat ergibt was ich will.Doch das Resultat möchte ich gerne als Variable speichern,"(setq Liste1 "RESULTAT")"Um in der Liste die einzelne Werte zu lesen, mit"(car Liste1)(cadr Liste1)(caddr Liste1)(cadddr Liste1)"Habe versucht mit:1. (setq liste1 (princ liste))2. (setq liste1 (progn (princ liste)(princ)))geht nicht!Kannst du mir weiter helfen?Gruss Nano
|
| In das Form Lisp wechseln |
|
Lisp : Zeile lesen vo Datei
Dorfy am 04.01.2009 um 12:02 Uhr (0)
Schau mal hiermfg heiko
|
| In das Form Lisp wechseln |
|
Lisp : Zeile lesen vo Datei
Dorfy am 04.01.2009 um 12:22 Uhr (0)
???(car(read(vl-princ-to-string liste)))(cadr(read(vl-princ-to-string liste)))...mfg heiko
|
| In das Form Lisp wechseln |
|
Lisp : Zeile lesen vo Datei
andi2050 am 04.01.2009 um 13:50 Uhr (0)
Müsste so funktionieren:(setq liste (read(strcat "(" zeile ")")))...praktisch die Liste als String bilden und dann mit read einlesen.GrüßeAndi
|
| In das Form Lisp wechseln |
|
Lisp : Lisp warten lassen
Theodor Schoenwald am 06.01.2009 um 18:14 Uhr (0)
Hallo,Bei ACAD konnte ich nicht feststellen, ob Dein Tipp gut ist oder nicht,Da das Überlaufen (warum auch immer) nicht immer auftritt.Bei BricsCad konnte ich mehr sehen, da kam es zu einer Fehlermeldung, weil die Datei nicht vorhanden war.Deine Tipps helfen auch nicht weiter.GrußTheodor
|
| In das Form Lisp wechseln |
|
Lisp : Lisp warten lassen
bu am 07.01.2009 um 08:18 Uhr (0)
Ein gutes neues Jahr wünsch ich allen ....Ich hab so einen Fall schon mal gelöst. Indem ich die .exe welche ja "extern" läuft, am Ende eine Datei rausschreiben lass. Diese Datei dient nur als Kenner ob die .exe fertig ist oder nicht. Dadurch dass diese Kenner-Datei eindeutig definiert und natürlich sehr klein ist, sind Performance Probleme minimal. Das Programm läuft auch nach einigen Jahren sicher. Fürs Erstellen der Kenner-Datei gibt es noch einen Time-out. Falls die .exe stehen bleibt. Wie ihr seht alle ...
|
| In das Form Lisp wechseln |
|
Lisp : Lisp warten lassen
autocart am 07.01.2009 um 10:52 Uhr (0)
Hallo bu!So groß ist das Problem der Einflussmöglichkeit auf die exe auch wieder nicht.Wenn man die exe selbst nicht manipulieren kann, dann läßt sich zumindest mit z.B. AutoIt3 (oder vielleicht auch mit einer anderen Windows-Programmierung/Automatisierung) relativ leicht eine zweite (eigene) exe basteln, die zuerst die gewünschte fremde exe aufruft, auf dessen Ende wartet und dann die "Kenner-Datei" erzeugt. Und jeder, der AutoLISP versteht, kann mit AutoIt3 auch umgehen.------------------Gruß, Stephanwww ...
|
| In das Form Lisp wechseln |
|
Lisp : Lisp warten lassen
autocart am 08.01.2009 um 01:53 Uhr (0)
Um mich heute mal von meiner spendierfreudigen Seite zu zeigen , hab ich mal so eine exe gebastelt, die eine andere ausführbare Datei (EXE, BAT, COM oder PIF) ausführt, auf deren Ende wartet und danach eine "Kenner-Text-Datei" erzeugt. Die selbst gebastelte exe zusammen mit dem Source-Code (AutoIt3) ist im zip-file zum Download zur Verfügung.Die exe erwartet 2 Befehlszeilenparameter:1) den Pfad+Namen(+Erweiterung) der auszuführenden Datei (der Pfad kann weggelassen werden, wenn sich die auszuführende ...
|
| In das Form Lisp wechseln |
|
Lisp : Lisp warten lassen
Theodor Schoenwald am 08.01.2009 um 18:39 Uhr (0)
Hallo Stefan,ich habe es Heute Abend noch getestet.Ob so:(startapp "C:Programme\_PGC
unWaitMakeFile.exe C:Programme\_PGCPGCPock.EXE C:TempPocketOUT.ARF")in AutoLispoder so: runWaitMakeFile.exe PGCPock.exe PocketOUT.ARFim DOS-Fenster und gleichem Ordner, die Datei "PocketOUT.ARF" hat 0 Byte.Normalerweise hat sie viel mehr.Scheinbar wartet das Programm "runWaitMakeFile.exe" nicht bis das Programm "PGCPock.exe" alles fertig hat.Die "PGCPock.exe" hat je nach Kontur viel zu rechnen, die Ergebnisse werden danach ...
|
| In das Form Lisp wechseln |
|
Lisp : Lisp warten lassen
alfred neswadba am 08.01.2009 um 19:33 Uhr (0)
Hi,könnte das nicht mit einem ganz normalen BAT-File erledigt werden (wenn schon Lisp in einer Schleife auf Dateiexistenz wartet), könnte so aussehen:Code:@echo offC:Programme\_PGCPGCPock.EXE C:TempPocketOUT.ARFecho ExeEnded C:TempCheckLoop.txt, die Datei C:TempCheckLoop.txt müsste dann halt schon vom Lisp aus vor Aufruf der BAT-Datei gelöscht sein.- alfred -
|
| In das Form Lisp wechseln |