C语言实现的百分比加进度条的显示程序
来源:互联网 发布:水产加工erp软件 编辑:程序博客网 时间:2024/05/01 05:27
项目中需要设计一个远程设备升级程序,程序优化时想在数字显示升级进度的同时用类似wget的进度条的形式显示升级进度,于是写了一个简单的数字+进度条显示升级进度的程序,以下为程序的核心部分,以达到抛砖引玉的效果。
/* The progress bar like this:
xx% [=======> ]
*/ int dlbytes_size = 1 + MAX (size_grouped_len, 11); int progress_size = bp->width - (4 + 2 + dlbytes_size + 8 + 14); /* The difference between the number of bytes used, and the number of columns used. */ int bytes_cols_diff = 0; if (progress_size < 5) progress_size = 0; /* "xx% " */ if (bp->total_length > 0) { int percentage = 100.0 * size / bp->total_length; assert (percentage <= 100); if (percentage < 100) sprintf (p, "%2d%% ", percentage); else strcpy (p, "100%"); p += 4; } else APPEND_LITERAL (" "); /* The progress bar: "[====> ]" or "[++==> ]". */ if (progress_size && bp->total_length > 0) { /* Size of the initial portion. */ int insz = (double)bp->initial_length / bp->total_length * progress_size; /* Size of the downloaded portion. */ int dlsz = (double)size / bp->total_length * progress_size; char *begin; int i; assert (dlsz <= progress_size); assert (insz <= dlsz); *p++ = '['; begin = p; /* Print the initial portion of the download with '+' chars, the rest with '=' and one '>'. */ for (i = 0; i < insz; i++) *p++ = '+'; dlsz -= insz; if (dlsz > 0) { for (i = 0; i < dlsz - 1; i++) *p++ = '='; *p++ = '>'; } while (p - begin < progress_size) *p++ = ' '; *p++ = ']'; } else if (progress_size) { /* If we can't draw a real progress bar, then at least show *something* to the user. */ int ind = bp->tick % (progress_size * 2 - 6); int i, pos; /* Make the star move in two directions. */ if (ind < progress_size - 2) pos = ind + 1; else pos = progress_size - (ind - progress_size + 5); *p++ = '['; for (i = 0; i < progress_size; i++) { if (i == pos - 1) *p++ = '<'; else if (i == pos ) *p++ = '='; else if (i == pos + 1) *p++ = '>'; else *p++ = ' '; } *p++ = ']'; ++bp->tick; }
0 0
- C语言实现的百分比加进度条的显示程序
- 在ProgressBar上加文字----显示百分比的进度条
- 在ProgressBar上加文字----显示百分比的进度条
- 在ProgressBar上加文字----显示百分比的进度条
- 在ProgressBar上加文字----显示百分比的进度条
- 在ProgressBar上加文字----显示百分比的进度条
- 在ProgressBar上加文字----显示百分比的进度条
- 在ProgressBar上加文字----显示百分比的进度条
- jquery实现拖拽进度条并显示百分比的特...
- C语言编写的进程进度条显示程序
- Matlab中的waitbar(进度条)的应用……(显示程序运行的百分比)
- JQuery和Servlet实现文件上传进度条,能显示上传速度,上传的百分比等
- 基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
- Canvas实现多个圆形进度条显示百分比,并绑定各自的click事件
- <canvas>+JS如何实现可拖拽并且显示百分比的环形进度条
- C语言简单的进度条实现
- 【C语言】实现一个变色的进度条
- 【C语言】实现彩色的进度条
- C++面试考点
- 使用spring @Scheduled注解执行定时任务
- sizeof
- javac compile java project and run
- Android UDP通信
- C语言实现的百分比加进度条的显示程序
- 利用ListView实现最简单的上滑悬停 (附源码)
- xen用FTP方式安装虚拟机系统
- 反射机制
- windows上caffe的编译
- Centos 6.4 python 2.6 升级到 2.7
- POJ 2051(最小堆/优先队列)
- C语言指针和文件笔记
- Android L APP 如何获取sys file system 中节点的写权限