Sorting a .srt file for vlc player
-
i commented these lines
@ // QTextStream out(AjayFileD);
//out<<"\n"<<strc<<",000"<<"-->"<<strc<<",999"<<"\n";@and i added this code
@QStringList pauseTimes;pauseTimes << QString("%1,00-->%2,999").arg(strc).arg(strc); pauseTimes.sort(); QTextStream out(AjayFileD); out << pauseTimes.join("\n");@
thank you sir, but i'm getting this error
"collect2: ld returned 1 exit status" -
Go to the windows/tab with the complete output of your compiler and linker. It tells you which symbols are missing. Without that information we cannot advise further.
-
the previous error “collect2: ld returned 1 exit status” is solved,it was just a typing error,i'm getting the subtitles but it is not getting sorted,even though there is no error,pls can you suggest
-
also I've used @out << "\n" << pauseTimes.join("\n") << "\n" ;
@ instead of just @out << pauseTimes.join("\n");@ -
perhaps you can post your current code and the result you now get?
-
@ QStringList pauseTimes;
pauseTimes << QString("%1,000-->%2,999").arg(strc).arg(strc); pauseTimes.sort();
QTextStream out(AjayFileD);
out << "\n" << pauseTimes.join("\n") << "\n" ;@
the same code suggested by volker, and the result
00:00:00,000-->00:00:00,99900:15:34,000-->00:15:34,999
00:34:39,000-->00:34:39,999
00:05:28,000-->00:05:28,999
1:32:35,000-->1:32:35,999
1:15:11,000-->1:15:11,999
00:12:54,000-->00:12:54,999
as you can see the pause times are not getting sorted in ascending order,i think it's just some small change but I'm stuck and btw i'm a beginner -
Hi,
whatever you do, I checked the following code and it's output:
@
int main(int argc, char *argv[])
{
QStringList pauseTimes;
pauseTimes << QLatin1String("00:00:00,000—>00:00:00,999");
pauseTimes << QLatin1String("00:15:34,000—>00:15:34,999");
pauseTimes << QLatin1String("00:34:39,000—>00:34:39,999");
pauseTimes << QLatin1String("00:05:28,000—>00:05:28,999");
pauseTimes << QLatin1String("1:32:35,000—>1:32:35,999");
pauseTimes << QLatin1String("1:15:11,000—>1:15:11,999");
pauseTimes << QLatin1String("00:12:54,000—>00:12:54,999");std::wcout << std::endl << (wchar_t*)(pauseTimes.join("\n").utf16()) << std::endl ; std::wcout << L"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" << std::endl; pauseTimes.sort(); std::wcout << std::endl << (wchar_t*)(pauseTimes.join("\n").utf16()) << std::endl ; return 0;
}
@The output was:
@
00:00:00,000ù>00:00:00,999
00:15:34,000ù>00:15:34,999
00:34:39,000ù>00:34:39,999
00:05:28,000ù>00:05:28,999
1:32:35,000ù>1:32:35,999
1:15:11,000ù>1:15:11,999
00:12:54,000ù>00:12:54,99900:00:00,000ù>00:00:00,999 00:05:28,000ù>00:05:28,999 00:12:54,000ù>00:12:54,999 00:15:34,000ù>00:15:34,999 00:34:39,000ù>00:34:39,999 1:15:11,000ù>1:15:11,999 1:32:35,000ù>1:32:35,999 @ For me, the output looks sorted....
-
yeah thanks a lot,this is what i want,however i'm not entering the pause time manually,the pause time will be in const char *strc as soon as i press the pause button of the player,i'll use your code and post if i have any problem
thanks once again -
is the content of the array really 8 strings? or perhaps one multiline string?
-
no,i've just hit the pause button 8 times,so eight outputs,i can get this written into the file as many times as i like,so it is not just 8 strings ,the only problem is sorting and i'll use your code for that
-
You will need to store the stop points in a QStringList - or re-read the file, add the new line, sort an overwrite the existing data. You don't expect the file to sort automagically, do you?
-
thank you,i'll try