本文整理汇总了C++中Path::Length方法的典型用法代码示例。如果您正苦于以下问题:C++ Path::Length方法的具体用法?C++ Path::Length怎么用?C++ Path::Length使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Path
的用法示例。
在下文中一共展示了Path::Length方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetTmpPath
const Path Instance::GetTmpPath(GenericString file)
{
Path path;
path.Reserve( 255 );
if (uint length = ::GetTempPath( path.Capacity() + 1, path.Ptr() ))
{
if (length > path.Capacity() + 1)
{
path.Reserve( length - 1 );
length = ::GetTempPath( path.Capacity() + 1, path.Ptr() );
}
if (length)
path = GetLongPath( path.Ptr() );
}
if (path.Length())
path.MakePretty( true );
else
path << ".\\";
if (file.Empty())
file = L"nestopia.tmp";
path << file;
return path;
}
示例2: SaveFile
const Path Browser::SaveFile(wchar_t* const filter,Path initial)
{
Path path;
path.Reserve( MAX_PATH*2 );
const Path extension( initial.Extension() );
if (initial.File().Length() && initial.File()[0] != '.')
path = initial.File();
initial.File().Clear();
Object::Pod<OPENFILENAME> ofn;
ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = Application::Instance::GetActiveWindow();
ofn.lpstrFile = path.Ptr();
ofn.nMaxFile = path.Capacity();
ofn.lpstrInitialDir = initial.Length() ? initial.Ptr() : L".";
ofn.Flags = OFN_EXPLORER|OFN_PATHMUSTEXIST|OFN_HIDEREADONLY;
if (filter)
{
for (uint i=0; filter[i]; ++i)
{
if (filter[i] == '\t')
filter[i] = '\0';
}
ofn.lpstrFilter = filter;
ofn.nFilterIndex = 1;
}
if (extension.Length())
ofn.lpstrDefExt = extension.Ptr();
if (::GetSaveFileName( &ofn ))
path.Validate();
else
path.Clear();
return path;
}
示例3: OnEmuEvent
void Main::OnEmuEvent(const Managers::Emulator::Event event,const Managers::Emulator::Data data)
{
switch (event)
{
case Managers::Emulator::EVENT_POWER_ON:
case Managers::Emulator::EVENT_POWER_OFF:
if (emulator.NetPlayers())
{
menu.ToggleModeless( event == Managers::Emulator::EVENT_POWER_ON );
}
else if (Fullscreen())
{
const bool show = (event == Managers::Emulator::EVENT_POWER_OFF);
menu.Show( show );
Application::Instance::ShowChildWindows( show );
}
break;
case Managers::Emulator::EVENT_LOAD:
{
Path name;
if (emulator.IsCart())
{
name = Nes::Cartridge(emulator).GetProfile()->game.title.c_str();
}
else if (emulator.IsNsf())
{
name.Import( Nes::Nsf(emulator).GetName() );
}
if (name.Empty())
{
name = emulator.GetImagePath().Target().File();
name.Extension().Clear();
}
if (name.Length())
window.Text() << (name << " - " << MainWindow::name).Ptr();
break;
}
case Managers::Emulator::EVENT_UNLOAD:
window.Text() << MainWindow::name;
break;
case Managers::Emulator::EVENT_NETPLAY_MODE:
menu[IDM_VIEW_SWITCH_SCREEN].Enable( !data );
break;
}
}
示例4: OpenFile
const Path Browser::OpenFile(wchar_t* const filter,const Path dir,const Path ext)
{
for (uint i=0; filter[i]; ++i)
{
if (filter[i] == '\t')
filter[i] = '\0';
}
Path path;
path.Reserve( MAX_PATH*2 );
Object::Pod<OPENFILENAME> ofn;
ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = Application::Instance::GetActiveWindow();
ofn.lpstrFile = path.Ptr();
ofn.nMaxFile = path.Capacity();
ofn.lpstrInitialDir = dir.Length() ? dir.Ptr() : L".";
ofn.Flags = OFN_EXPLORER|OFN_FILEMUSTEXIST|OFN_HIDEREADONLY;
if (filter)
{
ofn.lpstrFilter = filter;
ofn.nFilterIndex = 1;
}
if (ext.Length())
ofn.lpstrDefExt = ext.Ptr();
if (::GetOpenFileName( &ofn ))
path.Validate();
else
path.Clear();
return path;
}
示例5: Add
void Netplay::Add(Path path)
{
enum
{
TYPES = Managers::Paths::File::GAME|Managers::Paths::File::ARCHIVE
};
if (path.Length() && games.paths.size() < Games::LIMIT && paths.CheckFile( path, TYPES ) && games.paths.insert( path ).second)
{
games.state = Games::DIRTY;
if (dialog)
dialog.ListView( IDC_NETPLAY_GAMELIST ).Add( path.Target().File() );
}
}
示例6: KeyPathDecomp
//Retorna la descomposicion en key-path del grafo pasado por parametro
Collection* KeyPathLocalSearch::KeyPathDecomp(Graph *g){
Graph *grafo = g->Copy();
Collection *K = new Collection();
//nodos que pueden ser extremos de los key-path, son terminales o key-nodes
Collection * terminals = g->GetTerminals();
Collection * key_nodes = g->GetKeyNodes(true);
Collection * end_nodes = terminals->Union(key_nodes);
int node, currentNode, lastIdentifier, degree;
bool isTerminal, isKeyNode;
//para cada posible nodo extremo de key-path
for (int i=0; i<end_nodes->Size(); i++){
node = ((Integer*)end_nodes->GetItem(i))->GetValue();
Collection * end_node_adyacents = grafo->GetAdyacents(node);
//para cada adyacente al nodo extremo
for (int j = 0; j < end_node_adyacents->Size(); j++){
lastIdentifier = node;
//creo el camino
Path * aux = new Path(g);
//agrego el extremo
aux->Add(node);
//calculo el nodo siguiente del camino
currentNode = ((Integer*)end_node_adyacents->GetItem(j))->GetValue();
degree = grafo->GetNodeDegree(currentNode);
if (grafo->IsNodeEnabled(currentNode) && degree != 0){
do
{
//agrego nodo al camino
aux->Add(currentNode);
Collection * adyacents = grafo->GetAdyacents(currentNode);
//calculo si es terminal y si es key-node
isTerminal = g->IsTerminal(currentNode);
isKeyNode = g->IsKeyNode(currentNode);
//si es nodo intermedio actualizo el currentNode
if(! isTerminal && ! isKeyNode){
if(((Integer*)adyacents->GetItem(0))->GetValue() == lastIdentifier){
lastIdentifier = currentNode;
currentNode = ((Integer*)adyacents->GetItem(1))->GetValue();
}
else{
lastIdentifier = currentNode;
currentNode = ((Integer*)adyacents->GetItem(0))->GetValue();
}
}
adyacents->Destroy();
}while(! isTerminal && ! isKeyNode); //mientras este en nodos intermedios
K->Add((Object*)aux);
//apago aristas y nodos del path, dejo prendidos los extremos
if (aux->Length() > 2)
{
for (int ind=1; ind<aux->Length()-1; ind++){
Collection *adyacents = grafo->GetAdyacents(aux->GetNode(ind));
//apago aristas si es que existen
for (int iter=0; iter<adyacents->Size();iter++){
if (grafo->ExistEdge(aux->GetNode(ind),((Integer*)adyacents->GetItem(iter))->GetValue()))
grafo->DisableEdge(aux->GetNode(ind),((Integer*)adyacents->GetItem(iter))->GetValue());
}
grafo->DisableNode(aux->GetNode(ind));
adyacents->Destroy();
}
}
else //key-path de dos nodos
{
grafo->DisableEdge(aux->GetNode(0),aux->GetNode(1));
}
}
else{
delete aux;
}
}
end_node_adyacents->Destroy();
}
terminals->Destroy();
key_nodes->Destroy();
delete end_nodes;
delete grafo;
return K;
}