日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

一个将当前目录下HEX文件的第一行数据删除的程序...

發(fā)布時間:2025/3/8 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个将当前目录下HEX文件的第一行数据删除的程序... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

為什么要寫這樣一個函數(shù)

在使用SoftConsole開發(fā)M3程序時,生成的hex文件,必須要把第一行數(shù)據(jù)刪除,才能在Libero中使用,所以寫了這個小工具,這是2.0版本了,第一版是直接刪除第一行數(shù)據(jù),有可能會導(dǎo)致誤操作。

實現(xiàn)原理

主要使用到了bat批處理命令和文件IO操作。

  • 創(chuàng)建bat批處理文件,內(nèi)容為dir *.hex /b>hex_file_name.txt
  • 運行bat命令,這個命令能將當(dāng)前目錄下的hex文件的名稱如filename.hex存入到txt文件中
  • 打開存有hex文件名的txt文件
  • 讀取hex文件
  • 讀取每一個字符,當(dāng)讀取到換行時,即讀取到第一行結(jié)束,將以后的字符寫入到新的hex文件中,直到文件結(jié)束
  • 刪除其他的文件,只保留新的hex文件。
  • 運行環(huán)境

    Code::Blocks 17.12

    代碼實現(xiàn):

    #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功能:將當(dāng)前目錄下SoftConsole所生成的hex文件刪除第一行數(shù)據(jù),文件名不限——v1.3\n\n");printf("當(dāng)前目錄下的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文件內(nèi)容寫入文件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準(zhǔn)備寫while (1){c=fgetc(fin); //讀取每一個字符if (EOF==c) //如果文件結(jié)束break;if ('\n'==c) //如果讀取到換行,為第一行break;}if (EOF!=c) //如果不是文件結(jié)束while (1){c=fgetc(fin);if (EOF==c) //將第一行換行后的字符寫入到新文件break;fputc(c,fout);}fclose(fin); //必須先關(guān)閉,否則占用不能刪除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功能:將當(dāng)前目錄下SoftConsole所生成的hex文件刪除第一行數(shù)據(jù),文件名不限——v1.3\n\n");printf("\n當(dāng)前目錄下的%s文件的第1行數(shù)據(jù)已經(jīng)刪除!\n",hex_name);printf("\n注:每執(zhí)行一次就會刪除第1行數(shù)據(jù)!\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

    運行結(jié)果:


    歷史精選文章:

    • Jlink使用技巧之讀取STM32內(nèi)部的程序
    • Jlink使用技巧之單獨下載HEX文件到單片機
    • Jlink使用技巧之J-Scope虛擬示波器功能
    • 百度智能手環(huán)方案開源(含源碼,原理圖,APP,通信協(xié)議等)
    • 如何在Keil-MDK開發(fā)環(huán)境生成Bin格式文件
    • elf格式轉(zhuǎn)換為hex格式文件的兩種方法
    • 兩個HC-05藍牙模塊互相綁定構(gòu)成無線串口模塊
    • STM32實戰(zhàn)應(yīng)用(一)——1602藍牙時鐘1液晶的顯示測試
    • 單片機之模塊化編程
    • 單片機課程設(shè)計——《基于AT89S52單片機和DS1302時鐘芯片的電子時鐘(可藍牙校準(zhǔn))》
    • 個人博客添加網(wǎng)易云音樂Flash插件
    • 兩行代碼搞定博客訪問量統(tǒng)計

    歡迎大家關(guān)注我的個人博客

    或微信掃碼關(guān)注我的公眾號

    總結(jié)

    以上是生活随笔為你收集整理的一个将当前目录下HEX文件的第一行数据删除的程序...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。