FAQ-839 より多くのデータがインポートされるにつれてOriginが遅くなった場合はどうすればよいですか?

最終更新日:2022/02/20


(データ:ファイルからインポートで)多くのファイルをインポートすると、インポートデータが増えるにつれてOriginの動作が遅くなることがあります。これはLabTalkまたはOriginCスクリプトを使用して多数のデータファイルをインポートする場合によく発生します。原因は下記が挙げられます。

  • ワークシート内のスパークライン(表示や非表示)
  • 再インポートを有効にするために、ワークブックに記録されるファイル情報(インポート後にワークブックオーガナイザにリストされているすべてのインポートされたファイルパスと名前を見つけることができます)
  • インポートの取り消しを有効にするメカニズム(OriginCまたはLabTalkを使用してループ内の複数のファイルをインポートする場合)

動作を高速化するには、次の方法をお試しください。

スパークラインを削除する

FAQ1070 turnoff sparkline.png


LabTalkスクリプトを実行している場合、

次のオプションをインポートコードに追加します。

options.Sparklines:=0


既にスパークラインを有効にしてデータファイルをインポートしている場合

次のスクリプトを実行してすべてのスパークライングラフを削除してから、プロジェクトを再保存します。

StringArray sa;
doc -e P
{
	if (%H == "sparkline*")
		sa.Add(%H);
}
int nn = sa.GetSize();
for (int ii=1; ii<=nn; ii++)
{
	win -c %(sa.GetAt(ii)$);
}


ワークブック内のファイル情報の保存をオフにする

FAQ1070 turnoff save file info in wkb.png

または、

システム変数@npiを1に設定して、インポートファイル情報がワークブックに記録されないようにします。システム変数の値を変更する詳細な手順については、このページを参照してください。


LabTalkのコードを実行している場合、

次のオプションをインポートコードに追加します。

options.Miscs.SaveFileInfo:=0


Note:インポート情報を保存しないと、データ: 再インポートメニューを使用してデータを再インポートすることはできません。「ファイル情報をワークブックに保存」をオフにするときは、このことに注意してください。

一時的に「元に戻す」機能をオフにする

インポートする前にシステム変数@UNを0に設定し、後で復元します。

Origin Cのコードを実行している場合、

この例と同様の関数を使用します。

void DoImport()
{
    // このクラスはシステム変数の古い値を格納しておきながら、
    // システム変数を新しい値に設定します。
    // クラスのインスタンスがスコープ外になると、
    // インスタンスは破棄され、
    // システム変数は以前の値に復元されます。
 
   LTVarTempChange junk("@UN", 0);

   // 完了するまで上記のクラスインスタンスと同じスコープですべてのインポートを実行します。
}

LabTalkのコードを実行している場合、

// 現在の@UNの値を保存します。
int nOld = @UN;
// 「元に戻す」機能を無効にします。
@UN = 0;

// 完了まで全てのインポートを実行します。
// 最後に@UNを元の値に戻します。
@UN = nOld;



キーワード:impasc、 遅い、インポートファイル、フリーズ、時間がかかる、データインポート、ASCIIインポート、プロジェクト、遅さ、OPJ、保存、 開く、スパークライン、LT、OC、インポート、複数、 多い、ファイル、ループ、速さ、メモリ、インポート、再インポート