一、程式設計思想
中幾個好用的字串函式
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...