コード例 #1
0
ファイル: Skein.cpp プロジェクト: wyrover/Windows-Inform7
void Skein::Node::SaveNodes(FILE* skeinFile, const std::set<Node*>& tempNodes)
{
  fprintf(skeinFile,
    "  <item nodeId=\"%s\">\n"
    "    <command xml:space=\"preserve\">%s</command>\n"
    "    <result xml:space=\"preserve\">%s</result>\n"
    "    <commentary xml:space=\"preserve\">%s</commentary>\n"
    "    <played>%s</played>\n"
    "    <changed>%s</changed>\n"
    "    <temporary score=\"%d\">%s</temporary>\n",
    m_id,
    (LPCTSTR)TextFormat::ToXML_UTF8(m_line),
    (LPCTSTR)TextFormat::ToXML_UTF8(m_textTranscript),
    (LPCTSTR)TextFormat::ToXML_UTF8(m_textExpected),
    ToXML_UTF8(m_played),
    ToXML_UTF8(m_changed),
    m_score,
    ToXML_UTF8(m_temp));

  if (m_label.GetLength() > 0)
  {
    fprintf(skeinFile,
      "    <annotation xml:space=\"preserve\">%s</annotation>\n",
      (LPCTSTR)TextFormat::ToXML_UTF8(m_label));
  }

  CArray<Node*> children;
  for (int i = 0; i < m_children.GetSize(); i++)
  {
    if (m_children[i]->WillSaveNode(tempNodes))
      children.Add(m_children[i]);
  }

  if (children.GetSize() > 0)
  {
    fprintf(skeinFile,"    <children>\n");
    for (int i = 0; i < children.GetSize(); i++)
      fprintf(skeinFile,"      <child nodeId=\"%s\"/>\n",children[i]->m_id);
    fprintf(skeinFile,"    </children>\n");
  }
  fprintf(skeinFile,"  </item>\n");

  for (int i = 0; i < children.GetSize(); i++)
    children[i]->SaveNodes(skeinFile,tempNodes);
}
コード例 #2
0
ファイル: Skein.cpp プロジェクト: DavidKinder/Windows-Inform7
void Skein::Node::SaveNodes(FILE* skeinFile)
{
  fprintf(skeinFile,
    "  <item nodeId=\"%s\">\n"
    "    <command xml:space=\"preserve\">%s</command>\n"
    "    <result xml:space=\"preserve\">%s</result>\n"
    "    <commentary xml:space=\"preserve\">%s</commentary>\n"
    "    <changed>%s</changed>\n",
    (LPCTSTR)m_id,
    (LPCTSTR)TextFormat::ToXML_UTF8(m_line),
    (LPCTSTR)TextFormat::ToXML_UTF8(m_textTranscript),
    (LPCTSTR)TextFormat::ToXML_UTF8(m_textExpected),
    ToXML_UTF8(m_changed));

  if (m_label.GetLength() > 0)
  {
    fprintf(skeinFile,
      "    <annotation xml:space=\"preserve\">%s</annotation>\n",
      (LPCTSTR)TextFormat::ToXML_UTF8(m_label));
  }

  if (m_children.GetSize() > 0)
  {
    fprintf(skeinFile,"    <children>\n");
    for (int i = 0; i < m_children.GetSize(); i++)
    {
      fprintf(skeinFile,"      <child nodeId=\"%s\"/>\n",
        (LPCTSTR)m_children[i]->m_id);
    }
    fprintf(skeinFile,"    </children>\n");
  }
  fprintf(skeinFile,"  </item>\n");

  for (int i = 0; i < m_children.GetSize(); i++)
    m_children[i]->SaveNodes(skeinFile);
}