帮忙将C++ builder代码翻译成delphi 代码 (50分)

  • 主题发起人 主题发起人 agangr
  • 开始时间 开始时间
A

agangr

Unregistered / Unconfirmed
GUEST, unregistred user!
bool DownloadFile(const char *Port, const char *FileName)
{
int handle = link_open(Port, 19200, 0, 1);
char buf[300];
FILE *r;
int n;

if (handle < 0) {
ShowMessage("串口打开错误");
return false;
}
if ((r = fopen(FileName, "r")) == NULL) {
ShowMessage("下载的文件打开失败");
return false;
}

// 发送请求
link_write(handle, strBegin, strlen(strBegin) + 1);
Sleep(200);
while (!feof(r)) {
n = strlen(fgets(buf, sizeof(buf), r));
assert(n > 0);
if (buf[n - 1] == '/n') {
buf[n - 1] = '/0';
}
else {
n++; // 把 '/0' 一起输出
}
link_write(handle, buf, n);
Sleep(200);
}

link_close(handle);
return true;
}

//---------------------------------------------------------------------------
bool UploadFile(const char *Port, const char *FileName)
{
int handle = link_open(Port, 19200, 0, 1);
char buf[300];
FILE *w;
int n;

if (handle < 0) {
ShowMessage("串口打开错误");
return false;
}

if ((w = fopen(FileName, "w")) == NULL) {
ShowMessage("创建上传的文件打开失败");
return false;
}

// 发送请求
link_write(handle, strBegin, strlen(strBegin) + 1);
while (true) {
memset(buf, 0, sizeof(buf));
if (!link_read(handle, buf, sizeof(buf), 3000)) {
ShowMessage("连接超时,请检查");
link_close(handle);
fprintf(w, "[End]/n");
fclose(w);
return false;
}
fprintf(w, "%s/n", buf);
if (!stricmp(buf, "[End]")) break;
}
fclose(w);

link_close(handle);
return true;
}
 
后退
顶部