Subversion Repositories spk

Rev

Rev 287 | Rev 290 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 287 Rev 289
Line 70... Line 70...
70
		Utils::WString offsetStr = args[0];
70
		Utils::WString offsetStr = args[0];
71
		Utils::WString fileStr = args[1];
71
		Utils::WString fileStr = args[1];
72
		Utils::WString outFileStr = options.contains(L"out") ? options[L"out"]->data : fileStr;
72
		Utils::WString outFileStr = options.contains(L"out") ? options[L"out"]->data : fileStr;
73
		unsigned int pageID = options.contains(L"page") ? options[L"page"]->data.toInt() : 0;
73
		unsigned int pageID = options.contains(L"page") ? options[L"page"]->data.toInt() : 0;
74
		long offset = offsetStr.toLong();
74
		long offset = offsetStr.toLong();
-
 
75
		bool doIgnore = options.contains(L"ignore");
75
 
76
 
76
		CFileIO f;
77
		CFileIO f;
77
		if (f.open(fileStr))
78
		if (f.open(fileStr))
78
		{
79
		{
79
			bool inPage = false;
80
			bool inPage = false;
-
 
81
			bool ignore = false;
80
			Utils::WStringList list;
82
			Utils::WStringList list;
81
			Utils::WStringList outList;
83
			Utils::WStringList outList;
82
			if (f.readLines(list))
84
			if (f.readLines(list))
83
			{
85
			{
84
				for (auto itr = list.begin(); itr != list.end(); itr++)
86
				for (auto itr = list.begin(); itr != list.end(); itr++)
Line 87... Line 89...
87
					if (line.contains(L"<page id=\""))
89
					if (line.contains(L"<page id=\""))
88
					{
90
					{
89
						long id = line.between(L"<page id=\"", L"\"").toLong();
91
						long id = line.between(L"<page id=\"", L"\"").toLong();
90
						if (pageID == 0 || pageID == id)
92
						if (pageID == 0 || pageID == id)
91
							inPage = true;
93
							inPage = true;
-
 
94
						else
-
 
95
							ignore = true;
92
					}
96
					}
93
					else if (line.contains(L"</page>"))
97
					else if (line.contains(L"</page>"))
94
						inPage = false;
98
						inPage = false;
95
					else if (inPage)
99
					else if (inPage)
96
					{
100
					{
97
						long pos = line.findPos(L"s=\"");
101
						long pos = line.findPos(L"s=\"");
98
						if (pos != -1)
102
						if (pos != -1)
99
						{
103
						{
100
							Utils::WString s = line.substr(pos + 3);
104
							Utils::WString s = line.substr(pos + 3);
101
							s = s.token(L"\"", 1);
105
							s = s.token(L"\"", 1);
102
							long time = s.toLong();
106
							long long time = s.toLong64();
103
							long toTime = time + offset;
107
							long long toTime = time + offset;
104
							line = line.findReplace(time, toTime);
108
							line = line.findReplace(time, toTime);
105
						}
109
						}
106
					}
110
					}
-
 
111
 
-
 
112
					if(!ignore || !doIgnore)
107
					outList.pushBack(line);
113
						outList.pushBack(line);
-
 
114
 
-
 
115
					if (line.contains(L"</page>"))
-
 
116
						ignore = false;
108
				}
117
				}
109
				CFileIO outFile(outFileStr);
118
				CFileIO outFile(outFileStr);
110
				outFile.writeFile(&outList);
119
				outFile.writeFile(&outList);
111
				outFile.close();
120
				outFile.close();
112
			}
121
			}