Tips

4DLinkファイルを作成するメソッド

日付2010/06/25
ID76105 (英語原文参照)
バージョンv11
プラットフォームMac/Win

下記のメソッドは, 4DLinkファイルを手早く作成するためのものです。ストラクチャファイル(4DBまたは4DC)の場所を指定し, データファイル(4DD)の場所を指定し, リンクファイルの名前(拡張子を除く)を入力するだけで簡単に4DLinkファイルが作成できます。

  `*****************************************************************************
  `//
  `// Create4DLinkFile
  `//
  `// Purpose: To create a 4D .4DLink file
  `//
  `*****************************************************************************
C_TEXT($MethodName_T)
$MethodName_T:=Current method name
  `===================== Declare Variables ==================================
  `local_variable_declarations
C_TEXT($XML_T;$Path_Struct_T;$Path_Data_T;$Doc_T;$Folder_T;$Delim_T)
C_TIME($DocRef_T)
C_LONGINT($Platform_L)
  `====================== Initialize and Setup ================================

$Delim_T:=Get 4D folder[[length(Get 4D folder)]] `日本語チームによる互換性を高めるための変更

$XML_T:="<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r"
$XML_T:=$XML_T+"<database_shortcut structure_opening_mode=\"0\" "
$XML_T:=$XML_T+"structure_file=\"file:///Volumes/"

  `======================== Method Actions ==================================

  ` Get the path to the 4D Structure file
  `
$Path_Struct_T:=Select document("";"4DB;4DC";"Select structure";Package open )
If (OK=1)
   If (($Path_Struct_T="@.4DB") | ($Path_Struct_T="@.4DC"))
        `
        ` Use the 4D variable "document" to get the full document path
        `
      $Path_Struct_T:=Replace string(document;$Delim_T;"/")
      $XML_T:=$XML_T+$Path_Struct_T+"\" "
      $XML_T:=$XML_T+"data_file=\"file:///Volumes/"
      
        ` Get the path to the 4D data file
        `
      $Path_Data_T:=Select document("";".4DD";"Select the data file";Package open )
      If (OK=1)
         If ($Path_Data_T="@.4DD")
            $Path_Data_T:=Replace string(document;$Delim_T;"/")
            $XML_T:=$XML_T+$Path_Data_T+"\"/>"
            
              ` Get the name for the 4DLink file
              `
            $Doc_T:=Request("4DLink file name")+".4DLink"
            If (OK=1)
               $Folder_T:=Select folder("Select location to save the file")
               $Folder_T:=$Folder_T+$Doc_T
               
                 ` Create and write the file
                 `
               $DocRef_T:=Create document($Folder_T;"utf8")
               If (OK=1)
                  SEND PACKET($DocRef_T;$XML_T) ` Write one word in the document
                  CLOSE DOCUMENT($DocRef_T) ` Close the document
               End if 
            End if 
         End if 
      End if 
   End if 
End if