这样翻译一个函数正确吗? 谢谢!(100)

  • 主题发起人 主题发起人 冰力不足
  • 开始时间 开始时间

冰力不足

Unregistered / Unconfirmed
GUEST, unregistred user!
const DE_maxL = 128;
//ASCII文本每行最字符数设置//在header文件(ascii)中跳过一个组号标识void gotoNextGroup(char *group, FILE *fp) { char g[13];
//"GROUP"信息缓存 char buf[DE_maxL + 1];
fgets(buf, DE_maxL, fp);
//读空行 fgets(buf, DE_maxL, fp);
//读 "GROUP 组号/n" strncpy(g, buf, 12);
g[12] = '/0';
if(strncmp(g,group,12) != 0) { printf("头文件有误;%s未找到./n", group);
exit(1);
} fgets(buf, DE_maxL, fp);
//读空行}【对译】const DE_maxL = 128;
//ASCII文本每行最字符数设置procedure gotoNextGroup(group: PChar;
var fp: TFilestream);var g: array [0..12] of char;
//"GROUP"信息缓存 //buf: array [0..DE_maxL] of char;
buf: Pchar;
begin
GetMem(buf, DE_maxL);
// 申请字符指针内存 fp.Readbuffer(buf^, DE_maxL);
//读空行 在流里读出DE_maxL大小的字符串到字符指针 fp.Readbuffer(buf^, DE_maxL);
//读 "GROUP 组号/n" StrLCopy(g, buf, 12);
//12 g[12] := Chr(0);
if (StrLComp(g, group, 12) <> 0) then
begin
Form1.Memo1.Lines.Add('头文件有误 ' + group + ' 未找到');
exit;
end;
fp.Readbuffer(buf^, DE_maxL);
//读空行 freemem(buf);
// 释放内存end;
各位大佬, 请教, 这样翻译可以吗?谢谢!
 
可以呀。有什么问题吗?
 
来自:草原骏马, 时间:2009-4-30 14:08:10, ID:3956414可以呀。有什么问题吗? 谢谢!自己总是不敢相信自己能翻译准确, 感觉好象翻译得太C++了, 如果用delphi写, 貌似这样不太合理.
 
char buf[DE_maxL + 1];不知道该翻译成:GetMem(buf, DE_maxL);还是GetMem(buf, DE_maxL + 1);?
 
char buf[DE_maxL + 1];//下标从0..de_maxL,总长为 demaxl+1应当翻译为GetMem(buf, DE_maxL + 1);//下标也是0..de_maxL,总长为 demaxl+1
 
来自:枝上柳绵, 时间:2009-4-30 15:22:59, ID:3956439char buf[DE_maxL + 1];//下标从0..de_maxL,总长为 demaxl+1应当翻译为GetMem(buf, DE_maxL + 1);//下标也是0..de_maxL,总长为 demaxl+1谢谢!
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
905
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
842
import
I
后退
顶部