本文整理汇总了C++中ZtringListList类的典型用法代码示例。如果您正苦于以下问题:C++ ZtringListList类的具体用法?C++ ZtringListList怎么用?C++ ZtringListList使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ZtringListList类的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: qDebug
void MainWindow::httpFinished()
{
#ifdef NEW_VERSION
if (reply->error()) {
qDebug() << "Download failed";
} else {
qDebug() << "Downloaded file to temp string.";
}
ZtringListList X;
X.Write(file.toStdString().c_str());
if (isNewer(wstring2QString(X("NewVersion")),QString(VERSION))) {
qDebug() << "New version is available.";
qDebug() << "latest is " << wstring2QString(X("NewVersion")).toStdString().c_str();
} else {
qDebug() << "No new version available.";
qDebug() << "latest is " << wstring2QString(X("NewVersion")).toStdString().c_str();
}
/*
- LaVersionActuelle="0.7.35"
- lire "http://mediaarea.net/mediainfo_check/changelog_"+LaVersionActuelle+".bin"
- ZtringListList X; X.Write(le contenu du fichier)
- if (X("NewVersion")>LaVersionActuelle) mettre un truc dans le menu, voir capture d'écran.
- rajouter dans les prefs une case "Check for new version (requires an Internet connexion)"
- Mettre le tout dans un #ifdef, pour qu'on puisse le désactiver facilement (pour les repos etc...)
*/
reply->deleteLater();
reply = 0;
file = "";
#endif //NEW_VERSION
}
开发者ID:thespooler,项目名称:mediainfo-code,代码行数:32,代码来源:mainwindow.cpp
示例2: reserve
ZtringListList::ZtringListList(const ZtringListList &Source)
: std::vector<ZenLib::ZtringList, std::allocator<ZenLib::ZtringList> > ()
{
Separator[0]=Source.Separator[0];
Separator[1]=Source.Separator[1];
Quote=Source.Quote;
Max[0]=Source.Max[0];
Max[1]=Source.Max[1];
reserve(Source.size());
for (intu Pos=0; Pos<Source.size(); Pos++)
push_back(Source[Pos]);
}
开发者ID:aleksei-t,项目名称:flylinkdc-r5xx,代码行数:12,代码来源:ZtringListList.cpp
示例3: SubSheet
ZtringListList ZtringListList::SubSheet (const Ztring &ToFind, size_type Pos1, size_type Pos0, const Ztring &Comparator, ztring_t) const
{
ZtringListList ToReturn;
ToReturn.Separator[0]=Separator[0];
ToReturn.Separator[1]=Separator[1];
ToReturn.Quote=Quote;
Pos0--;
do
{
Pos0=Find(ToFind, Pos1, Pos0+1, Comparator);
ToReturn.push_back(Read(Pos0));
}
while (Pos0!=Error);
return ToReturn;
}
开发者ID:aleksei-t,项目名称:flylinkdc-r5xx,代码行数:17,代码来源:ZtringListList.cpp
示例4: qDebug
void MainWindow::httpFinished()
{
if (reply->error()) {
qDebug() << "Download failed";
} else {
qDebug() << "Downloaded file to temp string.";
}
ZtringListList X;
X.Write(file.toStdString().c_str());
if (isNewer(wstring2QString(X("NewVersion")),QString(VERSION))) {
qDebug() << "New version is available.";
qDebug() << "latest is " << wstring2QString(X("NewVersion")).toStdString().c_str();
ui->menuBar->addAction(Tr("Update to new version"),this,SLOT(updateToNewVersion()));
} else {
qDebug() << "No new version available.";
qDebug() << "latest is " << wstring2QString(X("NewVersion")).toStdString().c_str();
}
reply->deleteLater();
reply = 0;
file = "";
}
开发者ID:g-maxime,项目名称:MediaInfo,代码行数:23,代码来源:mainwindow.cpp
示例5: Element_WaitForMoreData
//---------------------------------------------------------------------------
void File_SubRip::Read_Buffer_Continue()
{
if (!IsSub && (Buffer_Size<File_Size && Buffer_Size<65536))
{
Element_WaitForMoreData();
return;
}
ZtringListList Temp;
Temp.Separator_Set(0, __T("\r\n\r\n"));
Temp.Separator_Set(1, __T("\r\n"));
Temp.Write(Ztring().From_UTF8((const char*)Buffer, Buffer_Size>65536?65536:Buffer_Size));
if (Temp.empty())
Temp.Write(Ztring().From_Local((const char*)Buffer, Buffer_Size>65536?65536:Buffer_Size)); // Trying from local code page
size_t IsOk=0;
size_t IsNok=0;
for (size_t Pos=0; Pos<Temp.size(); Pos++)
{
if (Temp(Pos, 0).To_int64u()==Pos+1)
IsOk++;
else
IsNok++;
if (Temp(Pos, 1).size()>22 && Temp(Pos, 1)[2]==__T(':') && Temp(Pos, 1)[5]==__T(':') && Temp(Pos, 1).find(__T(" --> "))!=string::npos)
IsOk++;
else
IsNok++;
}
if (!IsOk || IsNok>IsOk/2)
{
Reject();
return;
}
if (!Status[IsAccepted])
{
Accept();
Fill(Stream_General, 0, General_Format, "SubRip");
Stream_Prepare(Stream_Text);
Fill(Stream_Text, 0, "Format", "SubRip");
Fill(Stream_Text, 0, "Codec", "SubRip");
}
Element_Offset=File_Size;
}
开发者ID:beppec56,项目名称:MediaInfoLib-git_svn,代码行数:49,代码来源:File_SubRip.cpp
示例6: Element_WaitForMoreData
//---------------------------------------------------------------------------
bool File_SubRip::FileHeader_Begin()
{
if (!IsSub && (Buffer_Size<File_Size && Buffer_Size<65536))
{
Element_WaitForMoreData();
return false;
}
ZtringListList List;
List.Separator_Set(0, __T("\n\n"));
List.Separator_Set(1, __T("\n"));
if (Buffer[0]==0xEF
&& Buffer[1]==0xBB
&& Buffer[2]==0xBF)
HasBOM=true;
bool IsLocal=false;
Ztring Temp;
Temp.From_UTF8((const char*)Buffer+(HasBOM?3:0), (Buffer_Size>65536?65536:Buffer_Size)-(HasBOM?3:0));
if (Temp.empty())
{
Temp.From_Local((const char*)Buffer+(HasBOM?3:0), (Buffer_Size>65536?65536:Buffer_Size)-(HasBOM?3:0)); // Trying from local code page
IsLocal=true;
}
Temp.FindAndReplace(__T("\r\n"), __T("\n"), 0, Ztring_Recursive);
Temp.FindAndReplace(__T("\r"), __T("\n"), 0, Ztring_Recursive);
List.Write(Temp);
if (List(0, 0)==__T("WEBVTT FILE") || List(0, 0)==__T("WEBVTT"))
IsVTT=true;
if (!IsVTT)
{
size_t IsOk=0;
size_t IsNok=0;
for (size_t Pos=0; Pos<List.size(); Pos++)
{
if (List(Pos, 0).To_int64u()==Pos+1)
IsOk++;
else
IsNok++;
if (List(Pos, 1).size()>22 && List(Pos, 1)[2]==__T(':') && List(Pos, 1)[5]==__T(':') && List(Pos, 1).find(__T(" --> "))!=string::npos)
IsOk++;
else
IsNok++;
}
if (!IsOk || IsNok>IsOk/2)
{
Reject();
return true;
}
}
if (!IsSub && File_Size!=(int64u)-1 && Buffer_Size!=File_Size)
{
Element_WaitForMoreData();
return false;
}
if (!Status[IsAccepted])
{
Accept();
Fill(Stream_General, 0, General_Format, IsVTT?"WebVTT":"SubRip");
Stream_Prepare(Stream_Text);
Fill(Stream_Text, 0, "Format", IsVTT?"WebVTT":"SubRip");
Fill(Stream_Text, 0, "Codec", IsVTT?"WebVTT":"SubRip");
}
if (IsLocal)
Temp.From_Local((const char*)Buffer+(HasBOM?3:0), Buffer_Size-(HasBOM?3:0));
else
Temp.From_UTF8((const char*)Buffer+(HasBOM?3:0), Buffer_Size-(HasBOM?3:0));
Temp.FindAndReplace(__T("\r\n"), __T("\n"), 0, Ztring_Recursive);
Temp.FindAndReplace(__T("\r"), __T("\n"), 0, Ztring_Recursive);
List.Write(Temp);
#if MEDIAINFO_DEMUX
size_t Pos=0;
for (;;)
{
if (Pos>=List.size())
break;
if (List[Pos].size()>=3 || (IsVTT && List[Pos].size()>=2))
{
Ztring PTS_Begin_String=List[Pos][IsVTT?0:1].SubString(Ztring(), __T(" --> "));
Ztring PTS_End_String=List[Pos][IsVTT?0:1].SubString(__T(" --> "), Ztring());
if (IsVTT)
{
size_t Extra_Pos=PTS_End_String.find(__T(' '));
if (Extra_Pos!=string::npos)
PTS_End_String.resize(Extra_Pos); //Discarding positioning
}
item Item;
Item.PTS_Begin=SubRip_str2timecode(PTS_Begin_String.To_UTF8().c_str());
Item.PTS_End=SubRip_str2timecode(PTS_End_String.To_UTF8().c_str());
for (size_t Pos2=IsVTT?1:2; Pos2<List[Pos].size(); Pos2++)
//.........这里部分代码省略.........
开发者ID:Chlara,项目名称:MediaConch,代码行数:101,代码来源:File_SubRip.cpp
示例7: return
//---------------------------------------------------------------------------
//Operator !=
bool ZtringListList::operator!= (const ZtringListList &Source) const
{
return (!(Read()==Source.Read()));
}
开发者ID:aleksei-t,项目名称:flylinkdc-r5xx,代码行数:6,代码来源:ZtringListList.cpp
示例8: ExplorerShell
//---------------------------------------------------------------------------
int Preferences::ExplorerShell()
{
TRegistry* Reg=new TRegistry;
Reg->RootKey = HKEY_CLASSES_ROOT;
ZtringListList Liste;
Liste=_T(
".mkv;MKVFile\r\n"
".mka;MKAFile\r\n"
".mks;MKSFile\r\n"
".ogg;OGGFile\r\n"
".ogm;OGMFile\r\n"
".ogv;OGMFile\r\n"
".wav;WAVFile\r\n"
".avi;AVIFile\r\n"
".divx;AVIFile\r\n"
".gvi;AVIFile\r\n"
".mpeg;mpegFile\r\n"
".mpg;mpegFile\r\n"
".dat;datFile\r\n"
".mpe;mpegFile\r\n"
".mpgx;mpegFile\r\n"
".mpm;mpegFile\r\n"
".m1s;mpegFile\r\n"
".vob;mpegFile\r\n"
".m2s;mpegFile\r\n"
".mp4;mpeg4File\r\n"
".m4a;mpeg4File\r\n"
".mpgv;mpegFile\r\n"
".mpv;mpegFile\r\n"
".m1v;mpegFile\r\n"
".m2v;mpegFile\r\n"
".ts;tsFile\r\n"
".m2ts;m2tsFile\r\n"
".mp2;mp3File\r\n"
".mp3;mp3File\r\n"
".mpc;mpcFile\r\n"
".mp+;mpcFile\r\n"
".asf;ASFFile\r\n"
".wmv;WMVFile\r\n"
".wma;WMAFile\r\n"
".mov;MOVFile\r\n"
".qt;QTFile\r\n"
".rm;RMFile\r\n"
".ra;RMFile\r\n"
".ifo;IfoFile\r\n"
".ac3;AC3File\r\n"
".dts;DTSFile\r\n"
".aac;AACFile\r\n"
".ape;APEFile\r\n"
".mac;APEFile\r\n"
".flac;FLACFile\r\n"
".3gp;mpeg4File\r\n"
".3gpp;mpeg4File\r\n"
".swf;FlashFile\r\n"
".flv;FlashVideoFile\r\n"
".rmvb;FlashVideoFile\r\n"
".tp;FlashVideoFile\r\n"
".smv;SMVFile\r\n"
".dpg;DPGFile");
bool IsChanged=false;
int32s ShellExtension=Config.Read(_T("ShellExtension")).To_int32s();
for (size_t I1=0; I1<Liste.size(); I1++)
{
//Open (or create) a extension. Create only if Sheel extension is wanted
if (Reg->OpenKey(Liste(I1, 0).c_str(), ShellExtension))
{
//test if extension is known
AnsiString Player=Reg->ReadString(_T(""));
if (Player=="")
{
//extension not known, will use our default
Player=Liste(I1, 1).c_str();
try {Reg->WriteString(_T(""), Player);} catch (...){}
IsChanged=true;
}
Reg->CloseKey();
//Test if MediaInfo shell extension is known
if (Reg->OpenKey(Player+_T("\\Shell\\MediaInfo\\Command"), false))
{
//MediaInfo shell extension is known
if (Config.Read(_T("ShellExtension")).To_int32s())
{
//test if good writing
AnsiString ShellExtensionToWtrite="\"" + Application->ExeName +"\" \"%1\"";
AnsiString ShellExtension=Reg->ReadString(_T("")).c_str();
if (ShellExtension!=ShellExtensionToWtrite)
{
//This is not the good shell extension, writing new one
try {Reg->WriteString(_T(""), ShellExtensionToWtrite);} catch (...){}
IsChanged=true;
}
}
else
{
//Should not be here, deleting
Reg->CloseKey();
//.........这里部分代码省略.........
开发者ID:thespooler,项目名称:mediainfo-code,代码行数:101,代码来源:Preferences.cpp
示例9: CSV
void TExportF::Export_Run()
{
//Create text for the file
Ztring Text;
Ztring Append_Separator=__T("\r\n");
if (Export->ActivePage==Export_CSV)
{
//Full information
bool MediaInfo_Complete;
if (CSV_Advanced->Checked)
MediaInfo_Complete=true;
else
MediaInfo_Complete=false;
//General
ZtringListListF CSV;
ZtringListList Parameters;
Parameters.Write(MediaInfo::Option_Static(__T("Info_Parameters_CSV")));
int Pos_Start=1;
int Pos_End=Parameters.Find(__T("Video"))-1;
int CSV_Pos=0;
for (int I1=0; I1<Pos_End-Pos_Start; I1++)
if (MediaInfo_Complete || ToExport->Get(0, Stream_General, 0, I1, Info_Options)[InfoOption_ShowInInform]==__T('Y'))
{
CSV(0, CSV_Pos)=Ztring(__T("General "))+Parameters(Pos_Start+I1, 0);
for (int FilePos=0; FilePos<ToExport->Count_Get(); FilePos++)
CSV(1+FilePos, CSV_Pos)=ToExport->Get(FilePos, Stream_General, 0, I1);
CSV_Pos++;
}
//Video
Pos_Start=Pos_End+2;
Pos_End=Parameters.Find(__T("Audio"))-1;
for (int I1=0; I1<Pos_End-Pos_Start; I1++)
{
for (int Count=0; Count<CSV_Stream_Video->ItemIndex; Count++)
if (MediaInfo_Complete || ToExport->Get(0, Stream_Video, 0, I1, Info_Options)[InfoOption_ShowInInform]==__T('Y'))
{
CSV(0, CSV_Pos)=Ztring(__T("Video "))+Ztring::ToZtring(Count)+__T(" ")+Parameters(Pos_Start+I1, 0);
for (int FilePos=0; FilePos<ToExport->Count_Get(); FilePos++)
CSV(1+FilePos, CSV_Pos)=ToExport->Get(FilePos, Stream_Video, 0, I1);
CSV_Pos++;
}
}
//Audio
Pos_Start=Pos_End+2;
Pos_End=Parameters.Find(__T("Text"))-1;
for (int Count=0; Count<CSV_Stream_Audio->ItemIndex; Count++)
{
for (int I1=0; I1<Pos_End-Pos_Start; I1++)
if (MediaInfo_Complete || ToExport->Get(0, Stream_Audio, 0, I1, Info_Options)[InfoOption_ShowInInform]==__T('Y'))
{
CSV(0, CSV_Pos)=Ztring(__T("Audio "))+Ztring::ToZtring(Count)+__T(" ")+Parameters(Pos_Start+I1, 0);
for (int FilePos=0; FilePos<ToExport->Count_Get(); FilePos++)
CSV(1+FilePos, CSV_Pos)=ToExport->Get(FilePos, Stream_Audio, Count, I1);
CSV_Pos++;
}
}
//Text
Pos_Start=Pos_End+2;
Pos_End=Parameters.Find(__T("Chapters"))-1;
for (int Count=0; Count<CSV_Stream_Text->ItemIndex; Count++)
{
for (int I1=0; I1<Pos_End-Pos_Start; I1++)
if (MediaInfo_Complete || ToExport->Get(0, Stream_Text, 0, I1, Info_Options)[InfoOption_ShowInInform]==__T('Y'))
{
CSV(0, CSV_Pos)=Ztring(__T("Text "))+Ztring::ToZtring(Count)+__T(" ")+Parameters(Pos_Start+I1, 0);
for (int FilePos=0; FilePos<ToExport->Count_Get(); FilePos++)
CSV(1+FilePos, CSV_Pos)=ToExport->Get(FilePos, Stream_Text, Count, I1);
CSV_Pos++;
}
}
//Chapters
Pos_Start=Pos_End+2;
Pos_End=Parameters.size()-1;
for (int Count=0; Count<CSV_Stream_Other->ItemIndex; Count++)
{
for (int I1=0; I1<Pos_End-Pos_Start; I1++)
if (MediaInfo_Complete || ToExport->Get(0, Stream_Other, 0, I1, Info_Options)[InfoOption_ShowInInform]==__T('Y'))
{
CSV(0, CSV_Pos)=Ztring(__T("Chapters "))+Ztring::ToZtring(Count)+__T(" ")+Parameters(Pos_Start+I1, 0);
for (int FilePos=0; FilePos<ToExport->Count_Get(); FilePos++)
CSV(1+FilePos, CSV_Pos)=ToExport->Get(FilePos, Stream_Other, Count, I1);
CSV_Pos++;
}
}
//Separators
Ztring Separator_Col=ZEN_UNICODE(CSV_Separator_Col->Text);
if (Separator_Col==__T("(Tab)"))
Separator_Col=__T("\t");
Ztring Separator_Line=ZEN_UNICODE(CSV_Separator_Line->Text);
if (Separator_Line==__T("(Default)"))
#ifdef WIN32
//.........这里部分代码省略.........
开发者ID:Bluelich,项目名称:MediaInfo-1,代码行数:101,代码来源:GUI_Export.cpp
示例10: Reject
//---------------------------------------------------------------------------
bool File_Hls::FileHeader_Begin()
{
//Element_Size
if (File_Size>1024*1024 || File_Size<10)
{
Reject("HLS");
return false; //HLS files are not big
}
if (Buffer_Size<File_Size)
return false; //Wait for complete file
Ztring Document; Document.From_UTF8((char*)Buffer, Buffer_Size);
ZtringList Lines;
size_t LinesSeparator_Pos=Document.find_first_of(__T("\r\n"));
if (LinesSeparator_Pos>File_Size-1)
{
Reject("HLS");
return false;
}
Ztring LinesSeparator;
if (Document[LinesSeparator_Pos]==__T('\r') && LinesSeparator_Pos+1<Document.size() && Document[LinesSeparator_Pos+1]==__T('\n'))
LinesSeparator=__T("\r\n");
else if (Document[LinesSeparator_Pos]==__T('\r'))
LinesSeparator=__T("\r");
else if (Document[LinesSeparator_Pos]==__T('\n'))
LinesSeparator=__T("\n");
else
{
Reject("HLS");
return false;
}
Lines.Separator_Set(0, LinesSeparator);
Lines.Write(Document);
if (Lines(0)!=__T("#EXTM3U"))
{
Reject("HLS");
return false;
}
Accept("HLS");
Fill(Stream_General, 0, General_Format, "HLS");
ReferenceFiles=new File__ReferenceFilesHelper(this, Config);
if (!IsSub)
ReferenceFiles->ContainerHasNoId=true;
File__ReferenceFilesHelper::reference ReferenceFile;
bool IsGroup=false;
for (size_t Line=0; Line<Lines.size(); Line++)
{
if (!Lines[Line].empty())
{
if (Lines[Line].find(__T("#EXT-X-KEY:"))==0)
{
ZtringListList List;
List.Separator_Set(0, __T(","));
List.Separator_Set(1, __T("="));
List.Write(Lines[Line].substr(11, string::npos));
for (size_t Pos=0; Pos<List.size(); ++Pos)
{
if (List[Pos](0)==__T("METHOD"))
{
if (List[Pos](1).find(__T("AES-128"))==0)
{
Fill(Stream_General, 0, General_Encryption_Format, "AES");
Fill(Stream_General, 0, General_Encryption_Length, "128");
Fill(Stream_General, 0, General_Encryption_Method, "Segment");
Fill(Stream_General, 0, General_Encryption_Mode, "CBC");
Fill(Stream_General, 0, General_Encryption_Padding, "PKCS7");
Fill(Stream_General, 0, General_Encryption_InitializationVector, "Sequence number");
#if MEDIAINFO_AES
//Trying to get the key from FileName.FileExt.key
if (Config->Encryption_Key_Get().empty())
{
File KeyFile;
if (KeyFile.Open(File_Name+__T(".key")))
{
if (KeyFile.Size_Get()==16)
{
int8u Key[16];
if (KeyFile.Read(Key, 16)==16)
Config->Encryption_Key_Set(Key, 16);
}
else
Fill(Stream_General, 0, "Encryption_Key_Problem", KeyFile.Size_Get());
}
}
#endif
}
Fill(Stream_General, 0, General_Encryption, List[Pos](1));
}
}
}
else if (Lines[Line].find(__T("#EXT-X-STREAM-INF:"))==0)
{
//.........这里部分代码省略.........
开发者ID:KyleSanderson,项目名称:mpc-hc,代码行数:101,代码来源:File_Hls.cpp
示例11: Fill
//---------------------------------------------------------------------------
void GUI_Main_xxxx__Common::Fill ()
{
//Preparing
Updating=true;
//Showing
ZtringListList List;
List.Separator_Set(0, EOL);
List.Separator_Set(1, _T(","));
List.Write(Fill_Content());
//Elminating unuseful info from filenames
FileName_Before.clear();
if (List.size()==2 && !List[1].empty())
{
size_t ToDelete=List[1][0].rfind(PathSeparator);
if (ToDelete!=string::npos)
{
FileName_Before=List[1][0].substr(0, ToDelete+1);
List[1][0].erase(0, ToDelete+1);
}
}
else if (List.size()>1 && !List[1].empty())
{
size_t ToDelete;
size_t File_Pos;
for (ToDelete=0; ToDelete<List[1][0].size(); ToDelete++)
{
char Char_File1=List[1][0][ToDelete];
for (File_Pos=2; File_Pos<List.size(); File_Pos++)
if (ToDelete>=List[File_Pos][0].size() || List[File_Pos][0][ToDelete]!=Char_File1)
break;
if (File_Pos!=List.size())
break;
}
ToDelete=List[1][0].rfind(PathSeparator, ToDelete);
if (ToDelete!=string::npos)
{
FileName_Before=List[1][0].substr(0, ToDelete+1);
for (File_Pos=1; File_Pos<List.size(); File_Pos++)
List[File_Pos][0].erase(0, ToDelete+1);
}
}
if (List.empty() || List[0].empty())
{
setRowCount(0);
setColumnCount(0);
//Preparing
Updating=false;
return;
}
//Forcing reset, else this seems to be some Qt bug in the table display
setRowCount(0);
setColumnCount(0);
//Filling - HorizontalHeader
setRowCount((int)List.size()-1);
size_t ColumnMissing_Count=0;
for (size_t Option=0; Option<Main->Preferences->Group_Options_Count_Get(Fill_Group()); Option++)
if (!Main->Menu_Fields_CheckBoxes[Fill_Group()*options::MaxCount+Option]->isChecked())
ColumnMissing_Count++;
setColumnCount((int)(List[0].size()-ColumnMissing_Count));
ColumnMissing_Count=0;
for (size_t Data_Pos=0; Data_Pos<List[0].size(); Data_Pos++)
if (Data_Pos==0 || Main->Menu_Fields_CheckBoxes[Fill_Group()*options::MaxCount+Data_Pos-1]->isChecked())
{
QTableWidgetItem* Item=new QTableWidgetItem(QString().fromUtf8(List[0][Data_Pos].To_Local().c_str()));
Item->setToolTip(Columns_ToolTip(List[0][Data_Pos]));
setHorizontalHeaderItem((int)(Data_Pos-ColumnMissing_Count), Item);
}
else
ColumnMissing_Count++;
//Filling - VerticalHeader and content
for (size_t File_Pos=1; File_Pos<List.size(); File_Pos++)
{
if (List[File_Pos].empty())
List[File_Pos].resize(1); //Empty filename, we need to manualy add it.
ColumnMissing_Count=0;
for (size_t Data_Pos=0; Data_Pos<List[0].size(); Data_Pos++)
if (Data_Pos==0 || Main->Menu_Fields_CheckBoxes[Fill_Group()*options::MaxCount+Data_Pos-1]->isChecked())
{
QTableWidgetItem* Item;
if (Data_Pos<List[File_Pos].size())
{
ZenLib::Ztring Value=List[File_Pos][Data_Pos];
Value.FindAndReplace(EOL, "\n", 0, Ztring_Recursive);
Item=new QTableWidgetItem(QString().fromUtf8(Value.To_Local().c_str()));
Item->setToolTip(Columns_ToolTip(List[0][Data_Pos]));
}
else
Item=new QTableWidgetItem(QString());
if (!C->IsValid_Get(FileName_Before+List[File_Pos][0])
//.........这里部分代码省略.........
开发者ID:courtneyegan,项目名称:AVI-MetaEdit,代码行数:101,代码来源:GUI_Main_xxxx__Common.cpp
示例12: Element_WaitForMoreData
//---------------------------------------------------------------------------
bool File_SubRip::FileHeader_Begin()
{
if (!IsSub && (Buffer_Size<File_Size && Buffer_Size<65536))
{
Element_WaitForMoreData();
return false;
}
ZtringListList List;
List.Separator_Set(0, __T("\n\n"));
List.Separator_Set(1, __T("\n"));
if (Buffer_Size>=3
&& Buffer[0]==0xEF
&& Buffer[1]==0xBB
&& Buffer[2]==0xBF)
HasBOM=true;
bool IsLocal=false;
Ztring Temp;
Temp.From_UTF8((const char*)Buffer+(HasBOM?3:0), (Buffer_Size>65536?65536:Buffer_Size)-(HasBOM?3:0));
if (Temp.empty())
{
#ifdef WINDOWS
Temp.From_Local((const char*)Buffer+(HasBOM?3:0), (Buffer_Size>65536?65536:Buffer_Size)-(HasBOM?3:0)); // Trying from local code page
#else //WINDOWS
Temp.From_ISO_8859_1((const char*)Buffer+(HasBOM?3:0), (Buffer_Size>65536?65536:Buffer_Size)-(HasBOM?3:0));
#endif //WINDOWS
IsLocal=true;
}
Temp.FindAndReplace(__T("\r\n"), __T("\n"), 0, Ztring_Recursive);
Temp.FindAndReplace(__T("\r"), __T("\n"), 0, Ztring_Recursive);
List.Write(Temp);
if (List(0, 0)==__T("WEBVTT FILE") || List(0, 0)==__T("WEBVTT"))
IsVTT=true;
if (!IsVTT)
{
size_t IsOk=0;
size_t IsNok=0;
for (size_t Pos=0; Pos<List.size(); Pos++)
{
if (List(Pos, 0).To_int64u()==Pos+1)
IsOk++;
else
IsNok++;
if (List(Pos, 1).size()>22 && List(Pos, 1)[2]==__T(':') && List(Pos, 1)[5]==__T(':') && List(Pos, 1).find(__T(" --> "))!=string::npos)
IsOk++;
else
IsNok++;
}
if (!IsOk || IsNok>IsOk/2)
{
Reject();
return true;
}
}
if (!IsSub && File_Size!=(int64u)-1 && Buffer_Size!=File_Size)
{
Element_WaitForMoreData();
return false;
}
if (!Status[IsAccepted])
{
Accept();
Fill(Stream_General, 0, General_Format, IsVTT?"WebVTT":"SubRip");
Stream_Prepare(Stream_Text);
Fill(Stream_Text, 0, "Format", IsVTT?"WebVTT":"SubRip");
Fill(Stream_Text, 0, "Codec", IsVTT?"WebVTT":"SubRip");
}
if (IsLocal)
#ifdef WINDOWS
Temp.From_Local((const char*)Buffer+(HasBOM?3:0), Buffer_Size-(HasBOM?3:0));
#else //WINDOWS
Temp.From_ISO_8859_1((const char*)Buffer+(HasBOM?3:0), Buffer_Size-(HasBOM?3:0));
#endif //WINDOWS
else
开发者ID:MediaArea,项目名称:MediaInfoLib,代码行数:83,代码来源:File_SubRip.cpp
注:本文中的ZtringListList类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论