asp.net c# pdf viewer : How to split pdf file by pages application SDK utility azure winforms windows visual studio O%27Reilly%20-%20C++%20Cookbook%20(2007)41-part420

Recipe 10.13. Extracting a File Extension from a String
Problem
Given a filename or a complete path, you need to retrieve the file extension, which is the part of a
filename that follows the last period. For example, in the filenames src.cppWindow.class, and
Resume.doc, the file extensions are .cpp.class, and .doc.
Solution
Convert the file and/or pathname to a string, use the rfind member function to locate the last period, and
return everything after that. Example 10-20
shows how to do this.
Example 10-20. Getting a file extension from a filename
#include <iostream>
#include <string>
using std::string;
string getFileExt(const string& s) {
size_t i = s.rfind('.', s.length( ));
if (i != string::npos) {
return(s.substr(i+1, s.length( ) - i));
}
return("");
}
int main(int argc, char** argv) {
string path = argv[1];
std::cout << "The extension is \"" << getFileExt(path) << "\"\n";
}
Discussion
To get an extension from a filename, you just need to find out where the last dot "." is and take
everything to the right of that. The standard string class, defined in <string> contains functions for doing
both of these things: rfind and substr.
rfind will search backward for whatever you sent it (a char in this case) as the first argument, starting at
the index specified by the second argument, and return the index where it was found. If the pattern wasn't
found, rfind will return string::npos. substr also takes two arguments. The first is the index of the first
element to copy, and the second is the number of characters to copy.
The standard string class contains a number of member functions for finding things. See Recipe 4.9
for a
longer discussion of string searching.
See Also
Recipe 4.9
and Recipe 10.12
Page 411
ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html
How to split pdf file by pages - Split, seperate PDF into multiple files in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Explain How to Split PDF Document in Visual C#.NET Application
break a pdf into separate pages; break pdf into single pages
How to split pdf file by pages - VB.NET PDF File Split Library: Split, seperate PDF into multiple files in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
VB.NET PDF Document Splitter Control to Disassemble PDF Document
pdf format specification; break password pdf
Page 412
ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html
C# PDF File & Page Process Library SDK for C#.net, ASP.NET, MVC
C# File: Merge PDF; C# File: Split PDF; C# Page: Insert PDF pages; C# Page: Delete PDF pages; C# Read: PDF Text Extract; C# Read: PDF
pdf separate pages; break a pdf file
C# PDF Page Insert Library: insert pages into PDF file in C#.net
a new PDF page into existing PDF document file, RasterEdge C# page using C# .NET, how to reorganize PDF document pages and how to split PDF document in
break a pdf into multiple files; acrobat split pdf pages
Page 413
ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html
VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
Moreover, you may use the following VB.NET demo code to insert multiple pages of a PDF file to a PDFDocument object at user-defined position.
cannot select text in pdf; break a pdf into parts
VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
Ability to remove consecutive pages from PDF file in VB.NET. Enable specified pages deleting from PDF in Visual Basic .NET class.
break a pdf file into parts; how to split pdf file by pages
Recipe 10.14. Extracting a Filename from a Full Path
Problem
You have the full path of a filename, e.g., d:\apps\src\foo.c, and you need to get the filename, foo.c.
Solution
Employ the same technique as the previous recipe and use rfind and substr to find and get what you
want from the full pathname. Example 10-21
shows how.
Example 10-21. Extracting a filename from a path
#include <iostream>
#include <string>
using std::string;
string getFileName(const string& s) {
char sep = '/';
#ifdef _WIN32
sep = '\\';
#endif
size_t i = s.rfind(sep, s.length( ));
if (i != string::npos) {
return(s.substr(i+1, s.length( ) - i));
}
return("");
}
int main(int argc, char** argv) {
string path = argv[1];
std::cout << "The file name is \"" << getFileName(path) << "\"\n";
}
Discussion
See the previous recipe for details on how rfind and substr work. The only thing noteworthy about 
Example 10-21
is that, as you probably are already aware, Windows has a path separator that is a
backslash instead of a forward-slash, so I added an #ifdef to conditionally set the path separator.
The path class in the Boost Filesystem library makes getting the last part of a full pathnamewhich may be
a file or directory nameeasy with the path::leaf member function. Example 10-22
shows a simple program
that uses it to print out whether a path refers to a file or directory.
Example 10-22. Getting a filename from a path
#include <iostream>
#include <cstdlib>
#include <boost/filesystem/operations.hpp>
using namespace std;
using namespace boost::filesystem;
int main(int argc, char** argv) {
Page 414
ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html
C# PDF Page Delete Library: remove PDF pages in C#.net, ASP.NET
Ability to remove a range of pages from PDF file. Description: Delete consecutive pages from the input PDF file starting at specified position. Parameters:
split pdf into multiple files; pdf will no pages selected
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
Also able to uncompress PDF file in VB.NET programs. Offer flexible and royalty-free developing library license for VB.NET programmers to compress PDF file.
can print pdf no pages selected; break apart a pdf in reader
Page 415
ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html
VB.NET PDF File Merge Library: Merge, append PDF files in vb.net
Combine multiple specified PDF pages in into single one file. Able to integrate VB.NET PDF Merging control to both .NET WinForms application and ASP.NET project
break pdf into multiple files; add page break to pdf
C# PDF File Compress Library: Compress reduce PDF size in C#.net
size PDF document of 1000+ pages to smaller one in a short time while without losing high image quality. Easy to compress & decompress PDF document file in .NET
pdf split pages; can't cut and paste from pdf
Page 416
ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html
Recipe 10.15. Extracting a Path from a Full Path and
Filename
Problem
You have the full path of a filename, e.g., d:\apps\src\foo.c, and you need to get the pathname,
d:\apps\src.
Solution
Use the same technique as the previous two recipes by invoking rfind and substr to find and get what
you want from the full pathname. See Example 10-23
for a short sample program.
Example 10-23. Get the path from a full path and filename
#include <iostream>
#include <string>
using std::string;
string getPathName(const string& s) {
char sep = '/';
#ifdef _WIN32
sep = '\\';
#endif
size_t i = s.rfind(sep, s.length( ));
if (i != string::npos) {
return(s.substr(0, i));
}
return("");
}
int main(int argc, char** argv) {
string path = argv[1];
std::cout << "The path name is \"" << getPathName(path) << "\"\n";
}
Discussion
Example 10-23
is trivial, especially if you've already looked at the previous few recipes, so there is no
more to explain. However, as with many of the other recipes, the Boost Filesystem library provides a
way to extract everything but the last part of the filename with its branch_path function. Example 10-24
shows how to use it.
Example 10-24. Getting the base path
#include <iostream>
#include <cstdlib>
#include <boost/filesystem/operations.hpp>
using namespace std;
using namespace boost::filesystem;
int main(int argc, char** argv) {
Page 417
ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html
Page 418
ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html
Recipe 10.16. Replacing a File Extension
Problem
Given a filename, or a path and filename, you want to replace the file's extension. For example, if you are
given thesis.tex, you want to convert it to thesis.txt.
Solution
Use string's rfind and replace member functions to find the extension and replace it. Example 10-25
shows you how to do this.
Example 10-25. Replacing a file extension
#include <iostream>
#include <string>
using std::string;
void replaceExt(string& s, const string& newExt) {
string::size_type i = s.rfind('.', s.length( ));
if (i != string::npos) {
s.replace(i+1, newExt.length( ), newExt);
}
}
int main(int argc, char** argv) {
string path = argv[1];
replaceExt(path, "foobar");
std::cout << "The new name is \"" << path << "\"\n";
}
Discussion
This solution is similar to the ones in the preceding recipes, but in this case I used replace to replace a
portion of the string with a new string. replace has three parameters. The first parameter is the index
where the replace should begin, and the second is the number of characters to delete from the destination
string. The third parameter is the value that will be used to replace the deleted portion of the string.
See Also
Recipe 4.9
Page 419
ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html
Page 420
ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html
Documents you may be interested
Documents you may be interested