一个将当前目录下HEX文件的第一行数据删除的程序...
生活随笔
收集整理的這篇文章主要介紹了
一个将当前目录下HEX文件的第一行数据删除的程序...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
為什么要寫這樣一個函數
在使用SoftConsole開發M3程序時,生成的hex文件,必須要把第一行數據刪除,才能在Libero中使用,所以寫了這個小工具,這是2.0版本了,第一版是直接刪除第一行數據,有可能會導致誤操作。
實現原理
主要使用到了bat批處理命令和文件IO操作。
運行環境
Code::Blocks 17.12
代碼實現:
#include "stdio.h"#include "stdlib.h"#include "unistd.h"#include "string.h"#include "conio.h"#include<windows.h>int main() {FILE *fin,*fout, *fbat, *fhexname;int c, i=0;char bat_cmd[] = "dir *.hex /b>hex_file_name.txt";char hex_name[50];char cmd_in;printf("\n\n功能:將當前目錄下SoftConsole所生成的hex文件刪除第一行數據,文件名不限——v1.3\n\n");printf("當前目錄下的hex文件是新生成的嗎? y/n");while(1){cmd_in = getch();if (cmd_in == 'y'){system("cls");break;}elsereturn 0;}fbat=fopen("get_hex_filename.bat","w");fprintf(fbat, "dir *.hex /b>hex_file_name.txt"); //將bat文件內容寫入文件fclose(fbat);system("get_hex_filename.bat"); //運行bat,得到存儲hex文件名稱的txt文件fhexname = fopen("hex_file_name.txt", "r"); //打開txt文件while (1){hex_name[i++] = fgetc(fhexname);//讀取每一個字符if ('\n'==hex_name[i-2]) //讀取到第一行換行break;}hex_name[i-2] = '\0';fin=fopen(hex_name,"r"); //讀取hex文件fout=fopen("hex_temp.hex","w"); //打開.tmp準備寫while (1){c=fgetc(fin); //讀取每一個字符if (EOF==c) //如果文件結束break;if ('\n'==c) //如果讀取到換行,為第一行break;}if (EOF!=c) //如果不是文件結束while (1){c=fgetc(fin);if (EOF==c) //將第一行換行后的字符寫入到新文件break;fputc(c,fout);}fclose(fin); //必須先關閉,否則占用不能刪除fclose(fout);fclose(fhexname);remove(hex_name); //刪除源文件remove("get_hex_filename.bat");remove("hex_file_name.txt");rename("hex_temp.hex",hex_name); //新文件重命名printf("\n\n功能:將當前目錄下SoftConsole所生成的hex文件刪除第一行數據,文件名不限——v1.3\n\n");printf("\n當前目錄下的%s文件的第1行數據已經刪除!\n",hex_name);printf("\n注:每執行一次就會刪除第1行數據!\n\n");printf("按任意鍵退出此程序。。。\n");getch(); }測試文件test.hex
Microsemi SoftConsole delete hex file line 24 Microsemi SoftConsole delete hex file line 25 Microsemi SoftConsole delete hex file line 26 Microsemi SoftConsole delete hex file line 27 Microsemi SoftConsole delete hex file line 28 Microsemi SoftConsole delete hex file line 29 Microsemi SoftConsole delete hex file line 30 Microsemi SoftConsole delete hex file line 31 Microsemi SoftConsole delete hex file line 32 Microsemi SoftConsole delete hex file line 33 Microsemi SoftConsole delete hex file line 34 Microsemi SoftConsole delete hex file line 35 Microsemi SoftConsole delete hex file line 36 Microsemi SoftConsole delete hex file line 37 Microsemi SoftConsole delete hex file line 38 Microsemi SoftConsole delete hex file line 39 Microsemi SoftConsole delete hex file line 40 Microsemi SoftConsole delete hex file line 41 Microsemi SoftConsole delete hex file line 42文件下載
del_hex_line1.rar
運行結果:
歷史精選文章:
- Jlink使用技巧之讀取STM32內部的程序
- Jlink使用技巧之單獨下載HEX文件到單片機
- Jlink使用技巧之J-Scope虛擬示波器功能
- 百度智能手環方案開源(含源碼,原理圖,APP,通信協議等)
- 如何在Keil-MDK開發環境生成Bin格式文件
- elf格式轉換為hex格式文件的兩種方法
- 兩個HC-05藍牙模塊互相綁定構成無線串口模塊
- STM32實戰應用(一)——1602藍牙時鐘1液晶的顯示測試
- 單片機之模塊化編程
- 單片機課程設計——《基于AT89S52單片機和DS1302時鐘芯片的電子時鐘(可藍牙校準)》
- 個人博客添加網易云音樂Flash插件
- 兩行代碼搞定博客訪問量統計
歡迎大家關注我的個人博客
或微信掃碼關注我的公眾號
總結
以上是生活随笔為你收集整理的一个将当前目录下HEX文件的第一行数据删除的程序...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 职场思想分享001 | 有多种选择才叫有
- 下一篇: JEESZ-SSO解决方案