2011-07-15 18 views
0

特定のシェイプの.stlファイルを作成します。シェイプの各フェースのface1、face2などのパッチ名が異なります。これは、オープンカスケードのStlAPI_WriterクラスとRWStlクラスをオーバーライドすることによって実現されます。私はfile.Buildメソッドの代わりにfile.Appendメソッドを使用しています。 しかし、既存のファイルに.stlファイルを保存するときに問題があります。既存のファイルにデータを追加します。私は、ファイル内の既存のデータを削除し、与えられた図形のために新しいデータを1つずつ追加したいと思います。名前を付けて保存ダイアログボックスにファイルが存在していないか確認する - C++、opencascade

私にこれを手伝ってください。

答えて

0

あなたはthis簡単な関数を使用することができます

#include <sys/stat.h> 
#include <string> 

using namespace std;  

bool FileExists(string strFilename) { 
    struct stat stFileInfo; 
    bool blnReturn; 
    int intStat; 

    // Attempt to get the file attributes 
    intStat = stat(strFilename.c_str(),&stFileInfo); 
    if(intStat == 0) { 
    // We were able to get the file attributes 
    // so the file obviously exists. 
    blnReturn = true; 
    } else { 
    // We were not able to get the file attributes. 
    // This may mean that we don't have permission to 
    // access the folder which contains this file. If you 
    // need to do that level of checking, lookup the 
    // return values of stat which will give you 
    // more details on why stat failed. 
    blnReturn = false; 
    } 

    return(blnReturn); 
} 

を私はあなたがSaveFileDialogueクラスを使用すると仮定します。この場合、あなたはこのような対話の戻り値の結果を処理することができます:

if (saveFileDialog.ShowDialog() == ::DialogResult::OK) { 
    if (FileExist(saveFileDialog.FileName)) { 
     // erase the file 
    } 
    // write the code using the Append function 
    } 

これは動作するはずですあなたは(追加よりも、書くか、多分追加のようなしかしで何かを何か他のものを使用する場合は、しかし、簡単にバリアントがアクセス可能でなければなりませんファイルの書き換えを指定するパラメータ)

HTH、JP

+0

@gishu:私は今、それはあなたのために正常に動作する必要があり、を含めるとstd名前空間を使用するようにコードスニペットを変更しました。お楽しみください –

+0

ありがとうございます。今はうまくいく。 – gishara

関連する問題