初学者!C小程序译delphi例题。(200分)(200分)

  • 主题发起人 主题发起人 sosmee
  • 开始时间 开始时间
S

sosmee

Unregistered / Unconfirmed
GUEST, unregistred user!
大侠!我不懂delphi,所以想把这个C程序翻译成Delphi程序用以学习,这个程序有记录
类型声明记录文件打开显示等我想学的内容,请您译详细些好吗?
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

typedef struct {
unsigned long date;
unsigned long open;
unsigned long high;
unsigned long low;
unsigned long close;
unsigned long travl;
unsigned long traca;
char unuse[12];

} RECORD;


RECORD reco;

int readrec(FILE *);


void main()
{
FILE *fp;

if((fp = fopen("01.day","rb")) == NULL)
{ printf("Error: Can't open 01.DAY !/n");
exit(0);
}
readrec(fp);

fclose(fp);

if(getch()==0) getch();
exit(0);

}

int readrec(FILE *fp)
{
float fn;

while (! feof(fp)) {
fread(&amp;reco,sizeof(RECORD),1,fp);
printf("%10lu ",reco.date);

fn=float(reco.open)/1000;
printf("%8.2f ",fn);

fn=float(reco.high)/1000;

printf("%8.2f ",fn);

fn=float(reco.low)/1000;

printf("%8.2f ",fn);

fn=float(reco.close)/1000;

printf("%8.2f ",fn);

printf("%8lu ",reco.travl);

printf("%8lu/n",reco.traca);

}
printf("/n");

return 0;

}
 
再给500分给你做.
 
大侠!你应该杀福济贫,我就这些了。(不会而贫的人)
 
呵呵,黑了点吧,ht99
不过200分是少了点。
建议sosmee把程序分成三段,发三个贴子,每个200,差不多了。嘿嘿。。。
 
大侠们!学DELPHI我为什么连门都找不到?先教我记录文件数据类型声明好吗?
 
建议sosmee找一本入门(c++builder,or delphi)的书来看,既然你会c
pascal,也难不倒你啊,
你可以先用c++builder来作,其实跟delphi是差不多的
你欠缺的,只是数据库的概念而已!!!
 
type
myrecord=record
data,open,high,low,close,travel,traca:Longword;
unuse:array[1..12] of char;
end;

其它的我不是不写,因为你的程序是标准C写的,dos模式下的标准输入输出比较多,
转成delphi的势必要改变方式,与原意不忠。但也没有什么难的地方。
 
大哥!给个例题是最好的帮助,这个例题是他人给的。从文件开始学对吗?
 
先从pascal学起。文件的操作对于标准C来说也许重要,但对于delphi就不见得了。
至于例子delphi目录下/demos下一堆堆。
如果你会C你还是用C++builder吧,对于你顺手一点。
windows下与dos下的概念不同了,很少有用到如printf(C语言),write(Pascal),scanf等等类标准输入输出了
如果你是要学,那么你不用改此题了,如果你是要改了它做急用,我可尽力为之
 
大哥!又麻烦你一次,我是希望得到在delphi下能运行的代码,然后修修这,修修那以理解
代码之间的关系,这样好吗?
 
先把你最简单的需求,表达出来,
你用delphi要作数据库,还是其它用途?,
因为你一开始可能方向不清,把简单的问题复杂化了,
搞得别人,不知怎幺回达你,或提出高分要求,
譬如你定义type 这要干吗呢?你也没讲清楚,?
在delphi 里,是不用像纯c一样,一一手工打造的
你在数据库sql2000或其它,先作连接,再加几作字段,
然后,一一拉到form,或再用dbgrid 组件显示…….,
总之一切不是你想的那幺难啦!!!
可是,要一封贴子就说明,可能旷日废时,你是不是要找一本
入门书呢?, 据我所知, 大陆的书很多很多都不错!!!
 
请simbasun帮忙吧!我还有188分,全给你了!还有HT99
不过我声明,这个问题我一点用处也没有,只是不想看到别人着急罢了!
搞定以后请sosmee通知我一声,我给他加分!
 
今天没空了,你自己看tstream或readfile,writefile的帮助或例子吧
 
我最近VC++ --> Delphi的工作作得比较多...以后干脆称翻译....
 
type
myrecord=record
date,open,high,low,close,travl,traca:Longword;
unuse:array[1..12] of char;
end;
function ReadRec(Const F:File):Integer;
var
fn:Single;
reco:MyRecord;
Str:String;
begin
while not eof(F)do
begin
BlockRead(F,reco,1);
Str:=Format('%10u ',[reco.date]);
fn:=reco.open/1000;
Str:=Str+Format('%8.2f ',[fn]);
fn:=reco.high/1000;
Str:=Str+Format('%8.2f ',[fn]);
fn:=reco.low/1000;
Str:=Str+Format('%8.2f ',[fn]);
fn:=reco.close/1000;
Str:=Str+Format('%8.2f ',[fn]);
Str:=Str+Format('%8u ',[reco.travl]);
Str:=Str+Format('%8u',[reco.traca]);
Form1.Memo1.Lines.Add(Str);
end;
Form1.Memo1.Lines.Add('');
Result:=0;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
F:File;
begin
FileMode:=fmOpenRead;
AssignFile(F,'01.day');
try
Reset(F,SizeOF(MyRecord));
except
ShowMessage('无法打开文件.');
exit;
end;
ReadRec(F);
CloseFile(F);
end;

Done!
 
谢谢你!谢谢朋友们!
 
creation-zy
到我提问的论坛拿分!
 
后退
顶部