<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[boost (erste gehversuche) Pfad&#x2F;Datei&#x2F;Extension splitten]]></title><description><![CDATA[<p>Hiho</p>
<p>Habe heute meine ersten gehversuche in boost gestartet und gleich zwei fragen</p>
<ol>
<li></li>
</ol>
<p>Gibt es eine gute library fuer alles wie man es von der MSDN kennt, ich hab schon das passende gefunden, aber da Intellisense meist den dienst verweigert bei boost, ist eine gute library noch notwendiger, allein members rausfinden war schon ne huerde #gg</p>
<ol start="2">
<li></li>
</ol>
<p>Ich habe mal ein vergleich angestellt wie es zwischen MFC CString und std::string boost laufen wuerde</p>
<p>MFC</p>
<pre><code class="language-cpp">CString strOrg = _T(&quot;C:\\Temp\\File.txt&quot;);
int iBackSlash = strOrg.ReverseFind(_T('\\')) + 1;
int iDot = strOrg.ReverseFind(_T('.'));
int iLength = strOrg.GetLength();
CString strPath = strOrg.Left(iBackSlash);                 // C:\Temp\
CString strFile = strOrg.Mid(iBackSlash, iLength - iDot);  // File
CString strExtension = strOrg.Right(iLength - iDot);       // .txt
</code></pre>
<p>boost</p>
<pre><code class="language-cpp">boost::filesystem::tpath TheFile(_T(&quot;C:\\Temp\\File.txt&quot;));
std::tstring strFile = boost::filesystem::basename(TheFile);       // File
std::tstring strExtension = boost::filesystem::extension(TheFile); // .txt
TheFile.remove_leaf();
std::tstring strPath = TheFile.file_string();                      // C:\Temp\
</code></pre>
<p>ich habe zum ermitteln des strPath an dieser stelle file_string verwendet, da ich gesehen habe das es ueberhaupt keine rolle spielt was ich benutze, ich muss den dateinamen mit remove_leaf vorher rauswerfen</p>
<p>gibt es eine moeglichkeit das ich den pfad direkt bekomm ohne ihn vorher mit remove_leaf manipulieren zu muessen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/195298/boost-erste-gehversuche-pfad-datei-extension-splitten</link><generator>RSS for Node</generator><lastBuildDate>Tue, 29 Sep 2026 22:00:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/195298.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 16 Oct 2007 11:07:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to boost (erste gehversuche) Pfad&#x2F;Datei&#x2F;Extension splitten on Tue, 16 Oct 2007 11:07:01 GMT]]></title><description><![CDATA[<p>Hiho</p>
<p>Habe heute meine ersten gehversuche in boost gestartet und gleich zwei fragen</p>
<ol>
<li></li>
</ol>
<p>Gibt es eine gute library fuer alles wie man es von der MSDN kennt, ich hab schon das passende gefunden, aber da Intellisense meist den dienst verweigert bei boost, ist eine gute library noch notwendiger, allein members rausfinden war schon ne huerde #gg</p>
<ol start="2">
<li></li>
</ol>
<p>Ich habe mal ein vergleich angestellt wie es zwischen MFC CString und std::string boost laufen wuerde</p>
<p>MFC</p>
<pre><code class="language-cpp">CString strOrg = _T(&quot;C:\\Temp\\File.txt&quot;);
int iBackSlash = strOrg.ReverseFind(_T('\\')) + 1;
int iDot = strOrg.ReverseFind(_T('.'));
int iLength = strOrg.GetLength();
CString strPath = strOrg.Left(iBackSlash);                 // C:\Temp\
CString strFile = strOrg.Mid(iBackSlash, iLength - iDot);  // File
CString strExtension = strOrg.Right(iLength - iDot);       // .txt
</code></pre>
<p>boost</p>
<pre><code class="language-cpp">boost::filesystem::tpath TheFile(_T(&quot;C:\\Temp\\File.txt&quot;));
std::tstring strFile = boost::filesystem::basename(TheFile);       // File
std::tstring strExtension = boost::filesystem::extension(TheFile); // .txt
TheFile.remove_leaf();
std::tstring strPath = TheFile.file_string();                      // C:\Temp\
</code></pre>
<p>ich habe zum ermitteln des strPath an dieser stelle file_string verwendet, da ich gesehen habe das es ueberhaupt keine rolle spielt was ich benutze, ich muss den dateinamen mit remove_leaf vorher rauswerfen</p>
<p>gibt es eine moeglichkeit das ich den pfad direkt bekomm ohne ihn vorher mit remove_leaf manipulieren zu muessen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1386263</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1386263</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Tue, 16 Oct 2007 11:07:01 GMT</pubDate></item><item><title><![CDATA[Reply to boost (erste gehversuche) Pfad&#x2F;Datei&#x2F;Extension splitten on Tue, 16 Oct 2007 12:11:20 GMT]]></title><description><![CDATA[<p>hier is erstma die doku: <a href="http://boost.org/libs/filesystem/doc/index.htm" rel="nofollow">http://boost.org/libs/filesystem/doc/index.htm</a><br />
vielleicht is hier was dabei: <a href="http://boost.org/libs/filesystem/doc/tr2_proposal.html#basic_path-observers" rel="nofollow">http://boost.org/libs/filesystem/doc/tr2_proposal.html#basic_path-observers</a></p>
<p>vielleicht path::root_path oder path::branch_path ? aber das müsste denk ich gehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1386311</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1386311</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Tue, 16 Oct 2007 12:11:20 GMT</pubDate></item><item><title><![CDATA[Reply to boost (erste gehversuche) Pfad&#x2F;Datei&#x2F;Extension splitten on Tue, 16 Oct 2007 12:20:06 GMT]]></title><description><![CDATA[<p>ueber diese doku hatte ich es schon rausgefunden, find die persoenlich aber recht unuebersichtlich, vermutlich durch fehlende formatierung</p>
<p>root_path geht nicht das returniert nur das erste root path und nicht die gesammte struktur,<br />
mit branch patch gehts aber, hatte damit schon gute ergebnisse gehabt, hatte mich nur gestoert das man da ein umweg gehen muss um ein std::string zu erhalten und noch das \\ anhaengen muss<br />
daher dachte ich gibt es evtl ein direkteren weg</p>
<pre><code class="language-cpp">boost::filesystem::tpath TheFile(_T(&quot;C:\\Temp\\File.txt&quot;));
std::tstring strFile = boost::filesystem::basename(TheFile);
std::tstring strExtension = boost::filesystem::extension(TheFile);
std::tstring strPath = TheFile.branch_path().file_string() + _T(&quot;\\&quot;);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1386321</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1386321</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Tue, 16 Oct 2007 12:20:06 GMT</pubDate></item></channel></rss>