2016-08-05 3 views
0

を使用してDWGにファイル名からいくつかの特定のテキストは、私が唯一W1A-R1私のDWGファイルにマルチテキストを使用して印刷したい534-W1A-R1.dwgです。正規表現を使用して印刷マルチテキスト

答えて

0
System.IO.Path.GetFileNameWithoutExtension("534-W1A-R1.dwg").Substring(fileName.IndexOf('-') + 1) 

リターン "W1A-R1"

をまたは、:

Regex.Match("534-W1A-R1.dwg", @"-(.+)\.").Groups[1].Value 
+0

「W1A-R1」を与えると、最初のコードによれば、私はW1AとR1で再び分割できますか? –

0

あなたはそれがファイル名だ抽出するためにDatabseクラスを使用することができます。その後、いつものように新しいMTextを作成し、ModelSpaceBlockTableRecordに追加します。

[CommandMethod("AddFileNameText")] 
public static void AddFileNameText() 
{ 
    Document acDoc = Application.DocumentManager.MdiActiveDocument; 

    var db = acDoc.Database; 
    using (Transaction transaction = db.TransactionManager.StartTransaction()) 
    { 
     ObjectId idModelSpace = SymbolUtilityServices.GetBlockModelSpaceId(db); 

     BlockTableRecord modelSpace = 
      transaction.GetObject(idModelSpace, OpenMode.ForWrite) as 
      BlockTableRecord; 

     MText acMText = new MText(); 
     acMText.SetDatabaseDefaults(); 

     string strFilePath = db.Filename; //c:\534-W1A-R1.dwg 
     strFilePath = 
      System.IO.Path.GetFileNameWithoutExtension(strFilePath); //534-W1A-R1 

     //Do ANY text processing    
     if (strFilePath.IndexOf('-') > 0) 
      strFilePath = strFilePath.Substring(
       strFilePath.IndexOf('-') + 1); //W1A-R1 

     acMText.Contents = strFilePath; 

     modelSpace.AppendEntity(acMText); 
     transaction.AddNewlyCreatedDBObject(acMText, true); 

     transaction.Commit(); 
    } 
} 
+0

プロジェクトによってファイル名が変わるのはどうですか? –

+0

@Ajjagsどういう意味ですか? –