本文只要介绍通过IBM提供的库读/写sav文件格式。
在github上有.net版本和python版本,本文主要介绍用C读写sav文件。
参考文档:Input-Output Module.pdf,该文档为IBM官方文档,在文档第5部分【I/OModuleprocedurereference】中有描述接口的详细参数和使用,有些还有示例,示例是C语言的。
通过上述文档就可以完成读写sav文件的功能,此文介绍引用相关包和环境,以便让示例可以跑起来。
1. 需要的动态库
2. 需要的头文件
3. 在C工程中引用.lib文件,并添加头文件,即可调用接口函数。
3.1 在vs中新建项目
3.2 选择C++,win32项目
3.3 【下一步】选择Windows应用程序,如果想封装成dll给其他项目用,则可以选择dll,本例以控制台应用程序演示。
3.4 添加头文件,添加->现有项
3.5 添加动态库引用
工程---属性---配置属性---链接器---输入---附加依赖项:加上lib文件名。
然后在头文件`stdafx.h` 中添加 `#pragma comment(lib,"spssio32.lib")`。然后就可以直接调用接口函数了。
#include "stdafx.h"
#include <stdlib.h>
#include"spssdio.h"
int _tmain(int argc, _TCHAR* argv[])
{
// 示例spssOpenRead,spssCloseRead
int fH; /*file handle*/
int error; /*error code*/
error = spssOpenRead("test.sav", &fH);
printf("spssOpenRead error: %d \n", error);
if (error == 0)
{
printf("open file success! \n");
error = spssCloseRead(fH);
printf("spssCloseRead error: %d \n", error);
}
else
{
printf("open file fail! \n");
}
system("pause");
return 0;
}
3.6 运行结果
3.7 其他接口的调用同类。
4. 所需动态库:spssiolib.rar
5. demo工程文件:CSavDemo.rar。注:该工程文件是通过vs2013运行。
6. 记录到此结束。