C 讀寫文字檔案並匯入Excel(二)

2021-07-09 21:12:54 字數 3792 閱讀 7351

一、程式設計思想

中幾個好用的字串函式

string.indexof()

和string.substring()

二、程式執行後匯入excel

即把用逗號分列好的目標文字.txt

匯入excel

檔案中,我並沒有直接對

excel

進行讀寫,這點讀者必須注意。達到了我們程式設計的目的就可以了。截圖如下:

三、主要**

這次的**比較多,因為涉及幾個題型,有單選題和多選題,這裡為了簡化,只貼出讀取單選題的函式**。重複的**也比較多的,因為處理的步驟都類似。

static

void processtextsingle(string text)

int questionnum = scanquestionnum(text);

string targettext = "題目,選項一,選項二,選項三,選項四,答案\n";

string tofindtextsingle = "單項選擇題";

string tofindtextmulti = "多項選擇題";

string temptext = text.substring(0, text.length);

string tempqtext = new

string[questionnum];

string tempatext = new

string[questionnum];

string tempbtext = new

string[questionnum];

string tempctext = new

string[questionnum];

string tempdtext = new

string[questionnum];

string tempanswer = new

string[questionnum];

int indexq = 0;

int indexa = 0;

int indexb = 0;

int indexc = 0;

int indexd = 0;

int indexnextq = 0;

int indexanswerregion = 0;

int indexanswer = 0;

int currentlength = temptext.length;

for (int i = 1, j = 0; i <= questionnum; i++, j++)

indexq = temptext.indexof((i.tostring() + ".")) + (i.tostring()).length + 1;

indexa = temptext.indexof("a");

indexb = temptext.indexof("b");

indexc = temptext.indexof("c");

indexd = temptext.indexof("d");

if (i 

indexnextq = temptext.indexof(((i + 1).tostring() + "."));

else

indexnextq = temptext.indexof("二、多項選擇題");

tempqtext[j] = (temptext.substring(indexq, (indexa - indexq))).trim();

tempatext[j] = (temptext.substring((indexa + 1), (indexb - indexa - 1))).trim();

tempbtext[j] = (temptext.substring((indexb + 1), (indexc - indexb - 1))).trim();

tempctext[j] = (temptext.substring((indexc + 1), (indexd - indexc - 1))).trim();

tempdtext[j] = (temptext.substring((indexd + 1), (indexnextq - indexd - 1))).trim();

console.writeline(tempqtext[j]);

console.writeline(tempatext[j]);

console.writeline(tempbtext[j]);

console.writeline(tempctext[j]);

console.writeline(tempdtext[j]);

temptext = temptext.substring(indexnextq, currentlength - indexnextq);

currentlength = temptext.length;

indexanswerregion = text.indexof("參***");

temptext = text.substring(indexanswerregion, text.length - indexanswerregion);

int left, right = 0;

left = temptext.indexof("一、單項選擇題");

right = temptext.indexof("二、多項選擇題");

temptext = temptext.substring(left, right - left);

console.writeline(temptext);

for (int i = 1, j = 0; i <= questionnum; i++, j++)

indexanswer = temptext.indexof((i.tostring() + ".")) + (i.tostring()).length + 1;

tempanswer[j] = temptext.substring(indexanswer, 1);

console.writeline(tempanswer[j]);

for (int i = 0; i 

targettext = targettext + tempqtext[i] + ","

+ tempatext[i] + ","

+ tempbtext[i] + ","

+ tempctext[i] + ","

+ tempdtext[i] + ","

+ tempanswer[i] + "\n";

console.writeline(targettext);

"e:\目標文字.txt", targettext);

還有乙個掃瞄單選題題目數量的函式,如下:

static

int scanquestionnum(string str)

int leftindex = str.indexof("一、單項選擇題");

int rightindex = str.indexof("二、多項選擇題");

str = str.substring(leftindex, (rightindex - leftindex));

int index = 1;

while(str.indexof((index.tostring()+ "."))!=-1)

index++;

index = index - 1;

console.writeline("一共有" + index + "道單項選擇題");

return index;

讀寫文字檔案

讀文字 function readtext filename string string vars string alltext string f textfile begin assignfile f,filename 將c myfile.txt檔案與f變數建立連線,後面可以使用f變數對檔案進行操...

C 文字檔案 txt 讀寫

c 文字檔案 txt 讀寫 目錄 前言 讀取txt檔案 寫入txt檔案 前言計算機在最初只支援ascii編碼,但是後來為了支援其他語言中的字元 比如漢字 以及一些特殊字元 比如 就引入了unicode字符集。基於unicode字符集的編碼方式有很多,比如utf 7 utf 8 unicode以及ut...

c 文字檔案的讀寫

對檔案的操作首先要先引入system.io命名空間 輸入流用於從檔案寫入資料 寫操作 輸出流用於向檔案讀取資料 讀操作 1 filestream類有助於檔案的讀寫與關閉。例 建立乙個filestream物件f來讀取名為sample.txt的檔案 filestream f new filestream...