Hallo zusammen,
bin grade dabei eine größere Excel-Datei zu verarbeiten um Daten in Blöcke zu übertragen.
Dabei bekomme ich folgende Fehlermeldung:
;(VLAX-SAFEARRAY->LIST EXCEL_VARIANT)
; error : out of LISP 'String' memory at [gc]
Die Datenmenge ist wohl zu groß.
Mit anderen, kleineren, Excel-Dateien funktioniert es einwandfrei.
Mit diesem Codeschnipsel füttere ich die Variable excel-variant.
Code:
(setq excel_variant
(VLAX-VARIANT-VALUE
(vlax-get-property rngobj 'value2)
)
)
excel-variant enthält dann ein safearray.
Code:
(VLAX-SAFEARRAY->LIST
excel_variant
)
bringt dann die Fehlermeldung.
(vlax-safearray-get-u-bound excel_variant 1) bringt 483
(vlax-safearray-get-u-bound excel_variant 2) bringt 16384
Hier werden über 16000 Spalten (also alle) ins Array gewurschtelt obwohl ab Spalte "V" nichts mehr kommt (hab extra nochmal gelöscht)
Kann ja sein dass das für BricsCAD etwas viel ist (ich werds auch noch im ACAD probieren) aber wo finde ich denn die "Obergrenze" ?
Ich hab zwar schon eine "zu Fuß Lösung" aber die ist etwas langsamer.
Wenn ich "ausrechnen" könnte ab wo ich die langsamere aber sichere Programmvariante brauche wäre das hilfreich.
Wenn nicht muss ich komplett auf langsam umstellen und schauen ob und wie ich das Ding schneller bekomme.
Hab mich mit dem ganzen Speichergedöns noch nie beschäftigen müssen ... hat ja immer funktioniert.
------------------
Geht nicht, gibts nicht
Gruß
Andreas
http://kraus-cad.de
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP