公司签合同不给我一份:如何用循环读下面数据:

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/10 09:15:31
如何用循环读下面数据:
id date value
a 6/6/2006 12
a 6/7/2006 3
a 6/8/2006 21
b 6/9/2006 56
b 6/10/2006 4
b 6/11/2006 23
c 6/12/2006 5
c 6/13/2006 32
c 6/14/2006 23
并转换成如下格式:
a=0,0,0,0,0,12,3,21,0,0,0,0,0,0,0,0,....
也就是说当月该ID没有数据的一天用0代替
谢谢大侠,我忘了,上面的数据是用SQL分类汇总得出,我想用ASP语言写,并且ID是有N个项目的,
可以分类转换吗
三楼的你误解了,我的日期是按天来算的,不是按月,我的记录已经是分类汇总出来的不能再分类了.

VB:
________________________________________
Dim a(1 To 31) As Integer
Dim id As String, idate As Variant, ivalue As Integer
Dim iday As Integer, TableCaption As String

' 打开数据文件
Open "filename.dat" For Input As #1

' 读取标题
Line Input #1, TabelCaption

' 将数组置零,可以省略此步
For i=1 To 31
a(i)=0
Next

读取数据并置入数组
Do Until Eof(1)
Input #1, id, idate, ivalue
iday=Day(idate)
a(iday)=ivalue
Loop

Close #1
______________________________________
结果将存在a()数组中

你数据的储存方式是什么?数据库还是文本?
按数据库方式
先把所有不重复的ID都取出来做大循环
Sql="select distinct id from table"
大循环里面用这个
(暂时有点麻烦,不过还没有想到更好方法)
set rs=server.createobject("adodb.recordset")
rs.open ("select * from TABLE where id=a order by date"),conn,1,1
for i=1 to 12
if month(rs("date"))=i then
respponse.write rs("value")&","
rs.movenext
else
response.write("0,")
end if
next
rs.close
Set Rs=nothing

C 语言.
数据存文件 a.dat

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
FILE *fin;

main (int argc, char *argv[])
{
char namein[80];
int a[31],b[31],c[31];
char abc[2];
int dm,dd,dy,v;
char *buff;
int buff_size=50,i;

buff = (char *) malloc(buff_size * sizeof(char));

strcpy(namein,"a.dat");
if ( (fin = fopen(namein,"r") ) == NULL ) {
printf("\007Cann't open input file: %s ", namein);exit(1);
};

for (i=0;i<31;i++){ a[i] = 0; b[i]=0;c[i]=0;
}

fgets( buff, buff_size, fin); // skip first line

while (fgets( buff, buff_size, fin) !=NULL){
sscanf(buff,"%s %d/%d/%d %d",&abc[0],&dm,&dd,&dy,&v);
if (strncmp(&abc[0],"a",1 ) == 0) {
a[dd-1] = v;
} else if (strncmp(&abc[0],"b",1 ) == 0) {
b[dd-1] = v;
} else if (strncmp(&abc[0],"c",1 ) == 0) {
c[dd-1] = v;
} else {
printf("error id=%s : id must be a,b,c!\n",abc);
};

}; // end while

printf("a=");
for (i=0;i<31;i++){
printf("%d,",a[i]);
}
printf("\n");

printf("b=");
for (i=0;i<31;i++){
printf("%d,",b[i]);
}
printf("\n");

printf("c=");
for (i=0;i<31;i++){
printf("%d,",c[i]);
}
printf("\n");
fclose(fin);
exit(0);
}

结果:
a=0,0,0,0,0,12,3,21,0,0,。。。b=0,0,0,0,0,0,0,0,56,4,23,0,0,。。。c=0,0,0,0,0,0,0,0,0,0,0,5,32,23,0,0,。。。