若若 的个人资料芳草天涯照片日志列表更多 ![]() | 帮助 |
|
曾用背景音乐
|
芳草天涯——回首向来萧瑟处 也无风雨也无晴
10月11日 C++批量修改文件名从驴子上拖cd,最恼火就是乱七八糟的文件名和专门存放文件名的文本文件闹分裂。
索性写个程序,从txt读取文件名列表,然后修改文件夹下所有文件的文件名。
小程序仅限mp3文件。
1 #include "stdafx.h"
2 #include <afx.h> 3 #include <iostream> 4 #include <fstream> 5 #include <string> 6 using namespace std; 7 8 int RenameFromTXT(string InputFolderPath, string InputTXTName) 9 { 10 int result=-1; 11 CString cstr, CNewName; 12 string str, OldName, NewName; 13 CFileFind finder; 14 CString FolderPath = InputFolderPath.c_str(); 15 bool ifFind = finder.FindFile(FolderPath + "*.mp3"); 16 17 if(ifFind == false){ 18 cout<<"Folder not found!"<<endl; 19 return -1; 20 } 21 22 ifstream inputNewName(InputTXTName.c_str()); 23 if(!inputNewName){ 24 cout<<"TXT-file not found!"<<endl; 25 return -1; 26 } 27 28 while(ifFind) 29 { 30 ifFind = finder.FindNextFile(); 31 cstr = finder.GetFilePath(); 32 USES_CONVERSION; 33 OldName = W2A(cstr); 34 cout<<"old path: "<<OldName.c_str()<<endl; 35 getline(inputNewName, str); 36 cout<<"new name: "<<str.c_str()<<endl; 37 cstr = FolderPath + str.c_str(); 38 CNewName = cstr + ".mp3"; 39 NewName = W2A(CNewName); 40 cout<<"new path: "<<NewName<<endl; 41 result = rename(OldName.c_str(), NewName.c_str()); 42 if( result == 0) 43 cout<<"File successfully renamed!"<<endl; 44 else{ 45 cout<<"Error renaming file: Permission denied"<<endl; 46 cout<<"The new filename may contain \ / : ? \" < > |"<<endl; 47 return -1; 48 } 49 cout<<endl; 50 result=-1; 51 } 52 finder.Close(); 53 inputNewName.close(); 54 return 0; 55 } 56 57 int main(int argc, char **argv) 58 { 59 string input1 = "D:\\Musik\\V.A.-.[Eurovision.Song.Contest.Moscow.2009.(2CD).(2009)].专辑.(MP3)\\"; 60 string input2 = "D:\\Musik\\NewNameList.txt"; 61 RenameFromTXT(input1, input2); 62 63 system("pause"); 64 return 0; 65 } main中调用时,只要输入待改文件名的文件夹路径,和存放新名字的文本文件路径和名字就行。 其中NewNameList.txt内容格式如下: 101. Susanna Georgi — Le Teva Decisio (Get A Life) [Andorra]
102. Kejsi Tola — Carry Me In Your Dreams [Albania] 103. Inga & Anush — Jan Jan [Armenia] 104. AySel & Arash — Always [Azerbaijan] 105. Regina — Bistra Voda [Bosnia & Herzagovina] 106. Copycat — Copycat [Belgium] 107. Krasimir Avramov — Illusion [Bulgaria] 108. Petr Elfimov — Eyes That Never Lie [Belarus] 109. Lovebugs — Highest Heights, The [Switzerland] 110. Christina Metaxa — Firefly [Cyprus] 111. Gipsy.cz — Aven Romale [Czech Republic] 112. Alex Swings Oscar Sings! — Miss Kiss Kiss Bang [Germany] 113. Brinck — Believe Again [Denmark] 114. Urban Symphony — Randajad [Estonia] 115. Soraya — La Noche Es Para Mi (The Night Is For Me) [Spain] 116. Waldo's People — Lose Control [Finland] 117. Patricia Kaas — Et S'il Falliat Le Faire [France] 118. Jade Ewen — It's My Time [United Kingdom] 119. Sakis Rouvas — This Is Our Night [Greece] 120. Igor Cukrov feat. Andrea — Lijepa Tena (Beautiful Tena) [Croatia] 121. Zoli Adok — Dance With Me [Hungary] 201. Sinead Mulvey & Black Daisy — Et Cetera [Ireland] 202. Noa & Mira Awad — There Must Be Another Way [Israel] 203. Yohanna — Is It True [Iceland] 204. Sasha Son — Love [Lithuania] 205. Intars Busulis — Probka [Latvia] 206. Nelly Ciobanu — Hora Din Moldova (Dancing Moldova) [Moldova] 207. Andrea Demirovic — Just Get Out Of My Life[Montenegro] 208. Next Time — Neshto Shto Ke Ostane [FYR Macedonia] 209. Chiara — What If We [Malta] 210. Toppers — Shine [Netherlandsnew wave Eurovision 2009 mix] 211. Alexander Rybak — Fairytale [Norway] 212. Lidia Kopania — I Don't Wanna Leave [Poland] 213. Flor-De-Lis — Todas As Ruas Do Amor [Portugal] 214. Elena — Balkan Girls, The [Romania] 215. Marko Kon & Milaan — Cipela [Serbia] 216. Anastasia Prikhodko — Mamo [Russia] 217. Malena Ernman — La Voix [Sweden] 218. Nela Pociskova & Kamil Mikulcik — Let' Tmou [Slovakia] 219. Quartissimo — Love Symphony [Slovenia] 220. Hadise — Dum Tek Tek [Turkey] 221. Svetlana Loboda — Be My Valentine! (Anti-crisis Girl) [Ukraine]
一秒钟全改了,很爽 10月8日 神游记最近变得有点唯心。
原因是张纪中要新拍《西游记》,说了句《西游记》扬道抑佛的话,迅速被新浪河蟹了。然而缠绕我多年的问题来了,西游记里又是太上老君又是如来佛祖,是道是佛从未搞清,只当是牛鬼蛇神一锅乱,现如今老大不小了,却是忍不住想要弄明白。慕名看了篇号称中国古典文学普及研究会《西游记》文化研究委员会会长写的长篇博文,于是我就五雷轰顶风中凌乱了。
不是说这位佛道儒的专家说得有多雷人,而是这些观点对我原有认知的冲击力相当之大。这篇东西很长,大概意思是:《西游记》是很严肃的作品,不是老版电视剧那种给小孩子看的神话;它自身有很完整的思想体系,而这个系统就是道家思想;它的作者原本不是吴承恩,而是丘处机,不过或许可能是后人对某道人的思想文字整编,究竟是不是丘处机不能够确定,但一定不是吴承恩,换作者名字的事是五四运动的时候干出来的;唐僧看似取经,实则却求不到佛,因为第一次他求到的是假佛,尔后见到真佛却不自知;猴子代表了人心,当它意识到“我”的存在,也就是“心”字加上“吾”字,便是“悟”,悟空的师父点化了他,让他有了觉悟;人一旦有了觉悟,按道家说法,去除恶念便能到达十万八千里,心绪变化七十二般,这些都能解释通了;唐僧师徒实则也代表了人的五脏,众多妖怪也是器官内脏喜怒哀乐之类,其中地名也与人体严格对应,整部《西游记》都是在人体内转悠,其实也就是脑子里YY的产物,是借着玄奘取经来大书特书的道家教科书。
居然是这样,居然我还觉得挺对,我是不是被洗脑了?
于是被马哲洗过的脑,开始有点慌张了。什么“本我”“自我”“超我”,这样的词汇都一齐出现,我是谁,谁是我。姬无命是怎么被秀才弄死的。
“我生从何来,死往何处,我为何要出现在这个世界上,我的出现对这个世界来说意味着什么,是世界选择了我,还是我选择了世界。我和宇宙有必然的联系吗?宇宙是否有尽头,时间是否有长短,过去的时间在哪里消失了,未来的时间又在何处停止,我在这一刻提出的问题,还是你刚才听到的问题吗?”
其实想想,这个世界虽然是客观存在的,可是对于每个人来说,却各不相同。就像盲人摸象,每个人的世界都只能是他自己经历过理解过的独特的世界;就算两个人共同经历过一件事,他们的所见所想所记所忽略遗忘也会完全不同。总觉得“主观意识”这个词还是不能等同于“觉悟”的。人之所以有着不同的世界,是因为外界环境影响和个人自身觉悟不同。这话说了怎么和没说一样。然而现在真的在想,觉悟这个东西确实太重要了,没有它或者不重视,人过得懵懵懂懂。
不懂哲学,表述混乱,观点模糊,不成文字。 10月3日 C++编程思想(2nd卷一):函数重载与默认参数在C++中,struct和class唯一的不同之处就在于,struct默认为public,而class默认为private。
9月30日 不会创新因循守旧的神经网现在最大的问题就是神经网络不会创新,只会在原有的类的基础上进行分类。想要教他创新,结果却很不理想。。。
1 ////////////////////////////////////////////////////////////////////////// 2 // File Name: pnn.cpp 3 // Author: Ruoruo(du#in.tum.de) 4 ////////////////////////////////////////////////////////////////////////// 5 #include "stdafx.h" 6 #include "cv.h" 7 #include "highgui.h" 8 #include <ml.h> 9 #include <time.h> 10 #include <ctype.h> 11 #include <vector> 12 #include <math.h> 13 #include <iostream> 14 using namespace std; 15 16 static CvScalar colors[] = 17 { 18 {{0,0,255}}, 19 {{0,128,255}}, 20 {{0,255,255}}, 21 {{0,255,0}}, 22 {{255,128,0}}, 23 {{255,255,0}}, 24 {{255,0,0}}, 25 {{255,0,255}} 26 }; 27 28 int main( int argc, char** argv ) 29 { 30 vector<float> point; 31 vector<float> result; 32 33 float p[10] = { 1.3, 2.7, 34 1.5, 3.0, 35 1.7, 2.8, 36 1.6, 2.6, 37 1.2, 2.9 }; 38 float res[5] = { 0,0,0,0,0 }; 39 int i; 40 for(i=0; i<10; i++) 41 { 42 point.push_back(p[i]); 43 if(i<5) result.push_back(res[i]); 44 } 45 46 CvMat* input = cvCreateMat( 5, 2, CV_32FC1 ); 47 cvInitMatHeader( input, 5, 2, CV_32FC1, p ); 48 CvMat* output = cvCreateMat( 5, 1, CV_32FC1 ); 49 cvInitMatHeader( output, 5, 1, CV_32FC1, res ); 50 IplImage* img = cvCreateImage(cvSize(450, 450), IPL_DEPTH_8U, 3); 51 img->origin = 1; 52 for(i= 0; i<5; i++) 53 { 54 cvCircle(img, cvPoint((int)(p[i*2]*100), (int)(p[i*2+1]* 100)), 5, colors[(int)res[i]%8], 1, CV_AA, 0); 55 } 56 57 int layer_num[3] = { 2, 4, 1 }; 58 CvMat* layer_size = cvCreateMatHeader( 1, 3, CV_32S ); 59 cvInitMatHeader( layer_size, 1, 3, CV_32S, layer_num ); 60 CvANN_MLP pnn; 61 pnn.create( layer_size, CvANN_MLP::SIGMOID_SYM, 1, 1 ); 62 CvANN_MLP_TrainParams params; 63 params.term_crit = cvTermCriteria( CV_TERMCRIT_ITER | CV_TERMCRIT_EPS, \ 64 300, 0.0000001 ); 65 params.train_method = 0; 66 params.bp_dw_scale = 0.1; 67 params.bp_moment_scale = 0.1; 68 cout<<"begin training "<<endl;69 pnn.train( input, output, 0, 0, params ); 70 cout<<"end training "<<endl;71 pnn.save( "pNN_DATA.xml" ); 72 73 //begin to test ![]() 74 float testp[24] = { 1.4, 2.75, 75 4.3, 0.2, 76 4.2, 4.3, 77 1.45, 2.85, 78 4.2, 0.4, 79 4.1, 4.0, 80 4.3, 0.5, 81 4.0, 4.2, 82 1.5, 2.7, 83 4.1, 4.2, 84 1.6, 2.7, 85 4.0, 0.3 }; 86 /*float testp[24] = { 1.4, 2.75, 87 4.3, 0.2, 88 4.2, 4.3, 89 1.45, 2.85, 90 4.25, 0.3, 91 4.25, 4.25, 92 3.5, 1.2, 93 3.0, 3.7, 94 4.0, 2.7, 95 0.2, 0.2, 96 2.8, 2.7, 97 2.7, 2.8 };*/ 98 CvMat* test_point = cvCreateMat( 1, 2, CV_32FC1 ); 99 CvMat* test_result = cvCreateMat( 1, 1, CV_32FC1 ); 100 CvFont font; 101 double hScale=0.5; 102 double vScale=0.5; 103 int lineWidth=1; 104 cvInitFont(&font, CV_FONT_HERSHEY_COMPLEX|CV_FONT_ITALIC, hScale,vScale,0,lineWidth); 105 106 for(i= 0; i<12; i++) 107 { 108 cvSetReal2D( test_point, 0, 0, testp[2*i] ); 109 cvSetReal2D( test_point, 0, 1, testp[2*i+1] ); 110 pnn.predict(test_point, test_result); 111 cout<<cvmGet(test_result,0,0)<<endl; 112 113 float delta = 1; 114 int best_class = 0; 115 int max_class = 0; 116 for(int ii=0; ii<result.size(); ii++){ 117 if(fabs(cvmGet(test_result,0,0) - (float)result[ii])<delta){ 118 delta = fabs(cvmGet(test_result,0,0) - (float)result[ii]); 119 best_class = result[ii]; 120 } 121 if(result[ii]>=max_class) 122 max_class = result[ii]; 123 } 124 125 point.push_back(testp[2*i]); 126 point.push_back(testp[2*i+1]); 127 128 if( delta>0.06 ){ 129 int new_result = max_class+1; 130 cvmSet( test_result,0,0,new_result ); 131 result.push_back((float)new_result ); 132 } 133 else{ 134 cvmSet( test_result,0,0,best_class ); 135 result.push_back((float)best_class ); 136 } 137 138 int new_point_size = point.size(); 139 int new_result_size = result.size(); 140 141 CvMat* input = cvCreateMat( new_result_size, 2, CV_32FC1 ); 142 CvMat* output = cvCreateMat( new_result_size, 1, CV_32FC1 ); 143 144 for(int ii=0; ii<new_result_size; ii++) 145 { 146 cvmSet( input, ii, 0, point[2*ii]); 147 cvmSet( input, ii, 1, point[2*ii+1]); 148 cvmSet( output, ii, 0, result[ii]); 149 } 150 //cout<<"begin training again "<<endl;151 pnn.train( input, output, 0, 0, params ); 152 //cout<<"end training "<<endl;153 154 cvCircle( img, cvPoint((int)(testp[i*2]*100), (int)(testp[i*2+1]* 100)), 0, colors[(int)cvmGet(test_result,0,0)%8], 10, CV_AA, 0 ); 155 156 char buffer[10]; 157 _itoa(i,buffer,10); 158 string point_id(buffer); 159 cvPutText(img, point_id.c_str(), cvPoint(testp[2*i]*100,testp[2*i+1]*100), &font, cvScalar(255,255,255)); 160 161 cout<<i<<": "<<"("<<testp[i*2]<<", "<<testp[i*2+1]<<")"<<"\t"<<cvmGet(test_result,0,0)<<endl; 162 } 163 164 cvNamedWindow( "Coordinates" , 1 ); 165 cvShowImage( "Coordinates" ,img); 166 167 cvWaitKey( 0 ); 168 169 cvDestroyWindow("Coordinates"); 170 cvReleaseImage(&img); 171 172 return 0; 173 } 明明右下角四个点是一类,应该同色。显然点6和11分类错误了,6变成了第3个新类而11变成了第4个新类。或许类的名字对内部计算有很大影响,但目前还没有更好的办法,总之我这个循循善诱谆谆教诲的算法很垃圾就对了。。。 最近压力好大 = = |
||||||||||||||||||||||||||||||||||||||||||||
|
|