小编Kai*_*Kai的帖子

将列表值传递给t4模板

我在这里使用代码将参数传递给模板文件.

List<string> TopicList = new List<string>();
TopicList.Add("one");
TopicList.Add("two");
TopicList.Add("three");
TopicList.Add("four");
TopicList.Add("five");
PreTextTemplate1 t = new PreTextTemplate1();
t.Session = new Microsoft.VisualStudio.TextTemplating.TextTemplatingSession();
t.Session["TimesToRepeat"] = 5;
foreach (string s in TopicList)
{
    t.Session["Name"] = s;
}
t.Initialize();
string resultText = t.TransformText();
Run Code Online (Sandbox Code Playgroud)

但每次,我得到的都是Topic列表中的最后一个值("5").

<#@ template language="C#" #>
<#@ parameter type="System.Int32" name="TimesToRepeat" #>
<#@ parameter type="System.String" name="Name" #>

<# for (int i = 0; i < TimesToRepeat; i++) { #>
Line <#= Name #>
<# } #>

Actual Output:Line five
              Line five
              Line …
Run Code Online (Sandbox Code Playgroud)

c# t4

3
推荐指数
1
解决办法
1995
查看次数

使用ostream :: write将char*写入二进制文件

我正在尝试将char*写入二进制文件.

这就是我现在拥有的.

void Write(char* fileName, char* pData)
{

    ofstream binFile (fileName, ios::out | ios::binary);
    if (binFile.open())
    {
        binFile.write((char*)&pData,         sizeof(pData));
        binFile.close();
    }
}


void Read(char* fileName, char* pData)
{
    ifstream binFile(fileName, ios::in | ios::binary);
    if(binFile.open())
    {
        binFile.read(char*)&pData, sizeof(pData));
        binFile.close
    }
}

int main()
{
    char* testData = "ABCdEFG"; // not real data
    char* getTestData;
    char* file = "C:\\testData.dat";
    Write(file, testData);
    Read(file, getTestData);
}
Run Code Online (Sandbox Code Playgroud)

测试数据的长度未知.可能并不总是一样的.

当我运行程序一次,并写和读.我可以找回测试数据.

但是当我停止程序并再次运行时,这次没有写入.只是阅读,我无法取回测试数据.

我真的不明白这里发生了什么.有人可以向我解释一下吗?

c++ binaryfiles ofstream

1
推荐指数
1
解决办法
6986
查看次数

标签 统计

binaryfiles ×1

c# ×1

c++ ×1

ofstream ×1

t4 ×1