Zitat:
Original erstellt von darkfrei:
Wie kann ich es direkt mit eine lisp-Kommande in Annotation finden und ersetzen?
Das geht (fast) alles mit Standard LISP
Mit
Code:
(with-open-file (input-stream csl-file :direction :input :external-format external-format)
(loop
(setf input-line (read-line input-stream nil 'eof))
(when (eq input-line 'eof)
(return)) ;exit loop
....
liest du das MI file Zeilen weise
Mit
Code:
(with-open-file (out-stream filename :direction :output
:if-exists :supersede
:if-does-not-exist :create
:external-format :utf8)
(format out-stream "~A~%" the line)
....
schreibst du das MI file Zeilen weise
Beide kannst du kombinieren, also immer nur Zeile lesen und dann Zeile schreiben.
Dazwischen kommt die String Ersetzung, bzw ZEILEN Ersetzung.
Da gibt es in common LISP auch eine Hashmap, was sich dann bei grossen Wörterbüchern lohnt.
Wörterbuch lesen, wie oben, das MI file und dann die Hashmap füllen. Stichworte:
Code:
; create
(setq lexicon (make-hash-table :test #'equal :size 1024))
;; fill:
(setf (gethash german-string lexicon) english-string);; read
(Setq new-english-string (gethash german-string lexicon))
(if new-english-string
(format out-stream "~A~%" new-english-string)
(format out-stream "~A~%" german-string)
)
Alle 3 kombinieren und das funktioniert für ein unkomprimiertes MI file!
Fürs entzippen: modeling IKIT funktion (sd-sys-exec command)
Code:
(sd-sys-exec "unzip.exe x -d whereeverTEMPDIR c:/dir/packed.mi")
ein unzip.exe findest du in $SDINSTALLDIR/bin64 das kannst nutzen.
An das Verzeichnis kommst Du mit
Code:
(pprint (getf (oli::sd-inq-version) :base-directory))
Ob es eine gezipptes MI file ist, kannst Du am Magic Byte erkennen (siehe https://en.wikipedia.org/wiki/List_of_file_signatures ). ZIP files fangen mit "PK.." an .. Also erste Zeile lesen und diese mit den in der URL genannten Varianten die ersten 4 char checken. Wenn's passt den (sd-sys-exec "unzip.exe...") aufrufen.
Jetzt musst du die Mosaik Steinchen nur noch bischen geschickt kombinieren! 😏
------------------
● Firefox ESR ● Java Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en) ● NotePad++ ● BuFDi ●
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP