導航:首頁 > 凈水問答 > cftp過濾文件內容

cftp過濾文件內容

發布時間:2021-12-09 13:48:04

① 將一個.c文件1復制到另一個文件2中,要求過濾掉文件1中的所有注釋

剛寫的,測試過了,你試下看!
private void button10_Click(object sender, EventArgs e)
{
string text = "";
//讀出流,把值一行行的讀出來
using (StreamReader reader = new StreamReader("D:\\a.c"))
{
string line = reader.ReadLine();
while (line != null)
{
//查找到你寫注釋符號的地方
int count = line.IndexOf("//");
string value = "";
if (count >= 0)
{
//把注釋符號後面的都切掉
value = line.Substring(0, count);
}
else
//沒有的話就保存原值
value = line;
text += value + "\r\n";
line = reader.ReadLine();
}
}
//從寫入流將值寫入B中去
using (StreamWriter writer = new StreamWriter("D:\\b.c"))
{
writer.Write(text);
writer.Flush();
writer.Close();
}
}

② C語言將TXT文件中的注釋過濾掉,求大神幫忙修改~分不是問題

我先mark一下,周末寫。

不過理論上不應該是你說的那樣

遇到/*而沒有後面的*/,則將/*後面的消除---------------這個是不對的

刪除注釋,前提應該是你的cpp可以編譯,不可能出現這種有/*而沒有*/的情況,如果簡單粗暴地將/*之後的全部刪除,那修改後的文件就不知道錯到哪裡去了

/************************************************************************
*本程序需要以dos命令行形式打開,支持txt格式
*file1和file2以絕對路徑表示,用法為del.exeoldfile.txtnewfile.txt,例如:
*D:????>DelComments.exee:BPALTask.txte:NewFile.txt
/************************************************************************/
#include<stdio.h>
#include<stdlib.h>
#include<memory.h>
#defineMAX_BUFF_LEN1024
#defineMAX_FNAME_LEN256
/*************************************************************************/
//刪除文件中的注釋,這個文件本身應該沒有錯誤,尤其是引號要匹配,"/*"和"*/"要匹配
//演算法大體上應該如下:
//步驟1:讀取一行,查找"//",若找到,則刪除這一行中"//"後所有的部分
//步驟2:讀取一行,查找"/*",若找到,記錄pos1,刪除pos1到本行末尾,重新讀取一行,
//查找"*/",若找到,記錄pos2,刪除本行0到pos2之間的部分
//重復步驟1和2
//需要考慮的特殊情況有:
//處於雙引號中,如"/","*","//"不計入考慮范圍
//處於單引號中,如'/','*','//'不計入考慮范圍
//"//"與"/"的嵌套關系
/************************************************************************/
voidDelComments(FILE*pFile,FILE*tempFile)
{
charbuff[MAX_BUFF_LEN]={0};
char*pCur=NULL;//當前字元
char*pNext=NULL;//下一字元
char*sqStart=NULL;//單引號起始位置
char*dqStart=NULL;//雙引號起始位置
char*scStart=NULL;//單行注釋起始位置
char*dcStart=NULL;//多行注釋起始位置
unsignedcharlen=0;
while(NULL!=fgets(buff,MAX_BUFF_LEN,pFile))
{
pCur=buff;
while(' '!=*pCur)
{
switch(*pCur)
{
case'/':
if(sqStart||dqStart||scStart||dcStart)
{//忽略字元、字元串以及注釋中的斜杠
pCur++;
}
else
{
pNext=pCur+sizeof(char);
if('/'==*pNext)
{//單行注釋
dcStart=pCur;
pCur=pNext+sizeof(char);
}
elseif('*'==*pNext)
{//多行注釋
scStart=pCur;
pCur=pNext+sizeof(char);
}
else
{//除號
pCur++;
}
}
break;
case'*':
if(sqStart||dqStart||dcStart||(NULL==scStart))
{//忽略字元、字元串以及注釋中的星號,忽略乘號
pCur++;
}
else
{
pNext=pCur+sizeof(char);
if('/'!=*pNext)
{//多行注釋中間的星號,不處理
pCur++;
}
else
{
memset(scStart,'',pNext+sizeof(char)-scStart);
scStart=NULL;
}
}
break;
case'"':
if(sqStart||scStart||dcStart)
{//忽略字元以及注釋中的雙引號
pCur++;
}
else
{
if(dqStart)
{//雙引號匹配成功
dqStart=NULL;
pCur++;
}
else
{
dqStart=pCur;
pCur++;
}
}
break;
case''':
if(dqStart||scStart||dcStart)
{
pCur++;
}
else
{
if(sqStart)
{
len=pCur-sqStart;
if((2*sizeof(char)==len)&&('\'==*(pCur-1)))
{//忽略字元中的單引號
pCur++;
}
else
{
pCur++;
sqStart=NULL;
}
}
else
{
sqStart=pCur;
pCur++;
}
}
break;
default:
pCur++;
break;
}
}
//讀到換行符後,進行相應操作
if(dcStart)
{
len=((*(pCur-sizeof(char))==' ')?(pCur-sizeof(char)):pCur)-dcStart;
memset(dcStart,'',len);
dcStart=NULL;
}
if(sqStart)
{
sqStart=buff;
}
if(dqStart)
{
dqStart=buff;
}
if(scStart)
{
memset(scStart,'',pCur-scStart);
scStart=buff;
}
fputs(buff,tempFile);
}
}
intmain(intargc,char*argv[])
{
FILE*pFile=NULL;
FILE*newFile=NULL;
if(argc<3)
{
fprintf(stderr,"usage:%s[OLD_FILE_NAME][NEW_FILE_NAME] ",argv[0]);
exit(1);
}
if(NULL==(pFile=fopen(argv[1],"r+")))
{
fprintf(stderr,"openfilefailed ");
exit(2);
}
if(NULL==(newFile=fopen(argv[2],"w+")))
{
fprintf(stderr,"createnewFilefailed ");
exit(3);
}
DelComments(pFile,newFile);
fclose(pFile);
fclose(newFile);
return0;
}

③ C語言怎麼實現文件中部分數據的刪除

刪除文件部分內容的大概步驟:新建一個臨時文件,把原文件內容向臨時文件里拷貝,遇到要刪除的內容就跳過。結束後關閉文件,用remove("原文件名");把原文件刪除,用rename("臨時文件名","原文件名");把臨時文件名改為原文件名。

例如在原文件123.txt中刪除以2和以4編號開頭的行,可用以下代碼實現:
#include "stdio.h"
#include "stdlib.h"
int main(void){
FILE *fin,*ftp;
char a[1000];
fin=fopen("123.txt","r");//讀打開原文件123.txt
ftp=fopen("tmp.txt","w");//寫打開臨時文件tmp.txt
if(fin==NULL || ftp==NULL){
printf("Open the file failure...\n");
exit(0);
}
while(fgets(a,1000,fin))//從原文件讀取一行
if(a[0]!='2' && a[0]!='4')//檢驗是要刪除的行嗎?
fputs(a,ftp);//不是則將這一行寫入臨時文件tmp.txt
fclose(fin);
fclose(ftp);
remove("123.txt");//刪除原文件
rename("tmp.txt","123.txt");//將臨時文件名改為原文件名
return 0;
}

④ c語言如何實現跳過指定字元串再輸出文本文件中的內容

提供一個思路
ASCII表示的符號范圍。
你可以判斷字元串,是否為ASCII碼,是忽略。
不是,輸出。
上面的變數還應該定義一些操作字元串的指針。
相關有關編碼信息參考以下babybubble網路知道:
C/C++支持的是ASCII,不過漢字編碼中,GB2312與ASCII是兼容的,所以可以在C中獲得漢字的GB2312編碼
GB2312是兩個位元組的,第一位元組是高八位,第二位元組是低八位,比如下面的程序:
#include<stdio.h>
#include<string.h>
int
main()
{
char
a[5];
strcpy(a,"啊");
printf("%XH
%XH\n",(unsigned
char)a[0],(unsigned
char)a[1]);
return
0;
}
a[0]是「啊」字的高八位,a[1]是低八位,程序運行結果是a[0]=B0
a[1]=A1,用16進製表示的,所以「啊」字的GB2312編碼是B0A1了~
輸出時要強制轉換成unsigned
char,不然就變成負數了,因為編碼是以8位的無符號整數為單位的
當然也可以轉成10進制啦,比如
int
b;
b=(unsigned
char)a[0]*256+(unsigned
char)a[1];
b即為漢字的10進制GB2312編碼了

⑤ C語言如何過濾一篇文本空格字元

#include <iostream>

using namespace std;

int main()
{
cout << "Hello world!" << endl;
return 0;
}

⑥ c語言文件將一個.c文件1復制到另一個文件2中,要求過濾掉文件1中的注釋。求解。

#include<stdio.h>
#include<stdlib.h>
voidFilechuzhushi(char*sourceFileName,char*destFileName)
{
charch1,ch2,chTemp,s[1000];
FILE*sourcefPtr,*destfPtr;

if((sourcefPtr=fopen(sourceFileName,"r"))==NULL)
("can'topenthesourcefile ");
elseif((destfPtr=fopen(destFileName,"w"))==NULL)
printf("can'topenthedestfile ");
else{
ch1=fgetc(sourcefPtr);//從源文件讀取一個字元
while(!feof(sourcefPtr))
{//逐字元復制
//changebegin----------------------------
if('/'==ch1)
{
ch2=ch1;
ch1=fgetc(sourcefPtr);
if('/'==ch1||'*'==ch1)
{
fseek(sourcefPtr,-2,SEEK_CUR);
fgets(s,sizeof(s),sourcefPtr);
ch1=fgetc(sourcefPtr);
puts(s);//列印注釋,以便調試
}
else
{
fputc(ch2,destfPtr);
}
}
else
{
fputc(ch1,destfPtr);//將字元寫入目標文件
ch1=fgetc(sourcefPtr);
}
//changeend------------------------------
}
fclose(sourcefPtr);
fclose(destfPtr);
}
}
intmain()
{
Filechuzhushi("1.c","2.c");
system("pause");
return0;
}

稍微測試了下,應該是可行的 主要在對'/'和'*'的判斷這部分做了修改 試試吧

⑦ C語言如何刪除文件內容

1、打開Sublime Text軟體,新建一個C語言文件,然後導入C語言庫

⑧ C語言設計函數將文件過濾注釋

用正則表達式

⑨ c語言中如何對文件的部分內容刪除

1、建立一個.c或者.cpp文件,還要建立一個.txt文件進行操作處理,並且寫上c語言的編譯預處理,頭文件,主函數。

閱讀全文

與cftp過濾文件內容相關的資料

熱點內容
過濾器目會影響壓力嗎 瀏覽:168
飲水機的上水管是多少 瀏覽:675
超濾機不能過濾什麼 瀏覽:991
乙烷蒸餾 瀏覽:321
up120前置過濾桶怎麼安裝 瀏覽:41
撫州如何處理污水 瀏覽:538
今麥郎軟化純凈水正常溫度是多少 瀏覽:872
中國是全球污水排放 瀏覽:920
進ro膜對ss有要求嗎 瀏覽:761
用實際監測怎樣算污水排污量 瀏覽:333
污水泵抽水怎麼做 瀏覽:796
半透膜筒料 瀏覽:735
污水運行法規 瀏覽:378
消失模鑄造用樹脂砂 瀏覽:618
鞏義污水處理費怎麼收取的 瀏覽:225
飲水機從上蓋溢水怎麼回事 瀏覽:76
濟南水景水處理設備 瀏覽:248
輻射水蒸餾後 瀏覽:63
污水處理劑化工 瀏覽:630
如何把污水蓋給塞緊 瀏覽:72