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

Discussion in '请您翻译' started by 冰力不足, Apr 30, 2009.

  1. 冰力不足

    冰力不足 Member

    Apr 1, 2015
    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;
    各位大佬, 请教, 这样翻译可以吗?谢谢!
     
  2. 草原骏马

    草原骏马 Member

    Apr 1, 2015
    可以呀。有什么问题吗?
     
  3. 冰力不足

    冰力不足 Member

    Apr 1, 2015
    来自:草原骏马, 时间:2009-4-30 14:08:10, ID:3956414可以呀。有什么问题吗? 谢谢!自己总是不敢相信自己能翻译准确, 感觉好象翻译得太C++了, 如果用delphi写, 貌似这样不太合理.
     
  4. 冰力不足

    冰力不足 Member

    Apr 1, 2015
    char buf[DE_maxL + 1];不知道该翻译成:GetMem(buf, DE_maxL);还是GetMem(buf, DE_maxL + 1);?
     
  5. 枝上柳绵

    枝上柳绵 Member

    Apr 1, 2015
    char buf[DE_maxL + 1];//下标从0..de_maxL,总长为 demaxl+1应当翻译为GetMem(buf, DE_maxL + 1);//下标也是0..de_maxL,总长为 demaxl+1
     
  6. 冰力不足

    冰力不足 Member

    Apr 1, 2015
    来自:枝上柳绵, 时间: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谢谢!
     
  7. 冰力不足

    冰力不足 Member

    Apr 1, 2015
    多人接受答案了。