📄 data.cpp
字号:
// data.cpp: implementation of the data class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "AssocRule.h"
#include "data.h"
#include "Globals.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
data::data(char *filename)
{
#ifdef BINARY
fin = fopen(filename, "rb");
#else
fin = fopen(filename,"rt");
#endif
}
data::~data()
{
if(fin) fclose(fin);
}
int data::isOpen()
{
if(fin) return 1;
else return 0;
}
Transaction *data::getNextTrans(Transaction* Trans)
{
Trans->length = 0;
// read list of items
#ifndef BINARY
char c;
int item, pos;
do {
item=0;
pos=0;
c = getc(fin);
while((c >= '0') && (c <= '9')) {
item *=10;
item += int(c)-int('0');
c = getc(fin);
pos++;
}
if(pos)
{
if(Trans->length >= Trans->maxlength)
Trans->EnlargeTranSize(Trans->length, 2);
Trans->t[Trans->length] = item;
Trans->length++;
}
}while(c != '\n' && !feof(fin));
// if end of file is reached, rewind to beginning for next pass
if(feof(fin)){
rewind(fin);
return 0;
}
// Note, also last transaction must end with newline,
// else, it will be ignored
#else
int i, nitem, *buffer=new int;
fread((char*)buffer, sizeof(int), 1, fin);
if(feof(fin))
{
rewind(fin);
return 0;
}
// fread((char*)buffer, sizeof(int), 1, fin);
// fread((char*)buffer, sizeof(int), 1, fin);
nitem=*buffer;
if(nitem >= Trans->maxlength)
Trans->EnlargeTranSize(Trans->maxlength, nitem/Trans->maxlength+1);
i=fread((char*)Trans->t, sizeof(int), nitem, fin);
if (i<nitem)
{
rewind(fin);
return 0;
}
Trans->length = nitem;
#endif
return Trans;
}
void Transaction::EnlargeTranSize(int item, int m)
{
int* temp = new int[m*item];
maxlength = m*item;
for(int i=0; i<length; i++)
temp[i] = t[i];
delete []t;
t = temp;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -