若若 的个人资料芳草天涯照片日志列表更多 工具 帮助

杜 若若

职业
地点
兴趣
山中人兮芳杜若 饮石泉兮荫松柏

自定义 HTML

 
喜欢我的博客吗?
曾用背景音乐

芳草天涯

——回首向来萧瑟处 也无风雨也无晴
雕花窗格|true|
welcome
Adelphia Power Link 欢迎到访~芳草天涯
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]

 

一秒钟全改了,很爽Smiley mit geöffnetem Mund

10月8日

神游记

最近变得有点唯心。
 
原因是张纪中要新拍《西游记》,说了句《西游记》扬道抑佛的话,迅速被新浪河蟹了。然而缠绕我多年的问题来了,西游记里又是太上老君又是如来佛祖,是道是佛从未搞清,只当是牛鬼蛇神一锅乱,现如今老大不小了,却是忍不住想要弄明白。慕名看了篇号称中国古典文学普及研究会《西游记》文化研究委员会会长写的长篇博文,于是我就五雷轰顶风中凌乱了。
 
不是说这位佛道儒的专家说得有多雷人,而是这些观点对我原有认知的冲击力相当之大。这篇东西很长,大概意思是:《西游记》是很严肃的作品,不是老版电视剧那种给小孩子看的神话;它自身有很完整的思想体系,而这个系统就是道家思想;它的作者原本不是吴承恩,而是丘处机,不过或许可能是后人对某道人的思想文字整编,究竟是不是丘处机不能够确定,但一定不是吴承恩,换作者名字的事是五四运动的时候干出来的;唐僧看似取经,实则却求不到佛,因为第一次他求到的是假佛,尔后见到真佛却不自知;猴子代表了人心,当它意识到“我”的存在,也就是“心”字加上“吾”字,便是“悟”,悟空的师父点化了他,让他有了觉悟;人一旦有了觉悟,按道家说法,去除恶念便能到达十万八千里,心绪变化七十二般,这些都能解释通了;唐僧师徒实则也代表了人的五脏,众多妖怪也是器官内脏喜怒哀乐之类,其中地名也与人体严格对应,整部《西游记》都是在人体内转悠,其实也就是脑子里YY的产物,是借着玄奘取经来大书特书的道家教科书。
 
居然是这样,居然我还觉得挺对,我是不是被洗脑了?
 
于是被马哲洗过的脑,开始有点慌张了。什么“本我”“自我”“超我”,这样的词汇都一齐出现,我是谁,谁是我。姬无命是怎么被秀才弄死的。
 
“我生从何来,死往何处,我为何要出现在这个世界上,我的出现对这个世界来说意味着什么,是世界选择了我,还是我选择了世界。我和宇宙有必然的联系吗?宇宙是否有尽头,时间是否有长短,过去的时间在哪里消失了,未来的时间又在何处停止,我在这一刻提出的问题,还是你刚才听到的问题吗?”
 
其实想想,这个世界虽然是客观存在的,可是对于每个人来说,却各不相同。就像盲人摸象,每个人的世界都只能是他自己经历过理解过的独特的世界;就算两个人共同经历过一件事,他们的所见所想所记所忽略遗忘也会完全不同。总觉得“主观意识”这个词还是不能等同于“觉悟”的。人之所以有着不同的世界,是因为外界环境影响和个人自身觉悟不同。这话说了怎么和没说一样。然而现在真的在想,觉悟这个东西确实太重要了,没有它或者不重视,人过得懵懵懂懂。
 
不懂哲学,表述混乱,观点模糊,不成文字。
10月3日

C++编程思想(2nd卷一):函数重载与默认参数

在C++中,struct和class唯一的不同之处就在于,struct默认为public,而class默认为private。


在使用默认参数时必须记住两条规则:
1.只有参数列表的后部参数才是可默认的,也就是说,不可以在一个默认参数后面又跟一个非默认的参数。
2.一旦在一个参数调用中开始使用默认参数,那么这个参数后面的所有参数都必须是默认的。
默认参数只能放在函数声明中,通常在一个头文件中。编译器必须在使用该函数之前知道默认值。


占位符参数:
函数声明时,参数可以没有标识符。其目的在于以后可以修改函数定义而不需要修改所有的函数调用。

10月1日

十月一日·红

心的颜色 祝愿的表情

普天同庆之时 天涯海角之中

还有慕尼黑一隅

那抹红

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.32.7,
 34                     1.53.0,
 35                     1.72.8,
 36                     1.62.6,
 37                     1.22.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( 52, CV_32FC1 );
 47     cvInitMatHeader( input, 52, CV_32FC1, p );
 48     CvMat* output = cvCreateMat( 51, CV_32FC1 );
 49     cvInitMatHeader( output, 51, CV_32FC1, res );
 50     IplImage* img = cvCreateImage(cvSize(450450), 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= { 241 };
 58     CvMat* layer_size = cvCreateMatHeader( 13, CV_32S );
 59     cvInitMatHeader( layer_size, 13, CV_32S, layer_num );
 60     CvANN_MLP pnn;
 61     pnn.create( layer_size, CvANN_MLP::SIGMOID_SYM, 11 );
 62     CvANN_MLP_TrainParams params;
 63     params.term_crit = cvTermCriteria( CV_TERMCRIT_ITER | CV_TERMCRIT_EPS, \
 64         3000.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, 00params );
 70     cout<<"end training"<<endl;
 71     pnn.save( "pNN_DATA.xml" );
 72 
 73     //begin to test
 74     float testp[24= { 1.42.75,
 75                         4.30.2
 76                         4.24.3,
 77                         1.452.85,
 78                         4.20.4,
 79                         4.14.0,
 80                         4.30.5,
 81                         4.04.2,
 82                         1.52.7
 83                         4.14.2
 84                         1.62.7,
 85                         4.00.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( 12, CV_32FC1 );    
 99     CvMat* test_result = cvCreateMat( 11, 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, 00, testp[2*i] );
109         cvSetReal2D( test_point, 01, 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, 00params );
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个新类。或许类的名字对内部计算有很大影响,但目前还没有更好的办法,总之我这个循循善诱谆谆教诲的算法很垃圾就对了。。。

最近压力好大 = =

 
 
第 1 张,共 28 张

Windows Media Player