本文整理汇总了C++中XString::mid方法的典型用法代码示例。如果您正苦于以下问题:C++ XString::mid方法的具体用法?C++ XString::mid怎么用?C++ XString::mid使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XString
的用法示例。
在下文中一共展示了XString::mid方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getFilenameExtension
XString getFilenameExtension(XString s)
{
int i = s.findRev('.');
s = s.mid(i + 1);
return s;
}
示例2: if
char *prepareSourceCode(const char *acFile, const char *acText, const XString & sFile)
{
static XString sText;
XString sClass = "";
bool bReport = false;
bool bModule = false;
bool bClass = false;
if (sFile.endsWith(".kbasic_form")){
sClass = "Form";
} else if (sFile.endsWith(".kbasic_menubar")){
sClass = "MenuBar";
} else if (sFile.endsWith(".kbasic_toolbar")){
sClass = "ToolBar";
} else if (sFile.endsWith(".kbasic_module")){
bModule = true;
} else if (sFile.endsWith(".kbasic_class")){
bClass = true;
} else if (sFile.endsWith(".kbasic_report")){
sClass = "Report";
bReport = true;
}
XString sHeader = "";
if (bModule){
sText = acText; sText = sText.replace("\r", "");
if (sText.contains("\nEnd Module ", false)) return (char *) sText.ascii();
if (sText.contains("\nEnd Module\n", false)) return (char *) sText.ascii();
if (sText.contains("\nEnd Module'", false)) return (char *) sText.ascii();
if (sText.contains("\nEnd Module/*", false)) return (char *) sText.ascii();
if (sText.endsWith("End Module", false)) return (char *) sText.ascii();
if (sText.startsWith("Module ", false)) return (char *) sText.ascii();
if (sText.startsWith("\nModule ", false)) return (char *) sText.ascii();
sHeader = sHeader.append("Module ");
sHeader = sHeader.append(getFilenameWithoutPathAndExtension(acFile));
sHeader = sHeader.append(" : ");
sText = sText.prepend(sHeader);
sText = sText.append("\nEnd Module\n");
} else if (bClass){
sText = acText; sText = sText.replace("\r", "");
if (sText.contains("\nEnd Class ", false)) return (char *) sText.ascii();
if (sText.contains("\nEnd Class\n", false)) return (char *) sText.ascii();
if (sText.contains("\nEnd Class'", false)) return (char *) sText.ascii();
if (sText.contains("\nEnd Class/*", false)) return (char *) sText.ascii();
if (sText.endsWith("End Class", false)) return (char *) sText.ascii();
if (sText.startsWith("Class ", false)) return (char *) sText.ascii();
if (sText.startsWith("\nClass ", false)) return (char *) sText.ascii();
sHeader = sHeader.append("Class ");
sHeader = sHeader.append(getFilenameWithoutPathAndExtension(acFile));
if (sFile.endsWith("myEvent.kbasic_class", false)){
sHeader = sHeader.append(" Inherits Event ");
}
sHeader = sHeader.append(" : ");
sText = sText.prepend(sHeader);
sText = sText.append("\nEnd Class\n");
} else {
XString sFind = "\nEnd " + sClass + "\n";
sText = acText; sText = sText.replace("\r", "");
sText = sText.mid(sText.find(sFind) + sFind.length());
sHeader = sHeader.append("Class ");
sHeader = sHeader.append(getFilenameWithoutPathAndExtension(acFile));
sHeader = sHeader.append(" Inherits ");
sHeader = sHeader.append(bReport ? "Form" : sClass); // actually Report is a form
sHeader = sHeader.append("\n");
sText = sText.prepend(sHeader);
XString sDefinition = "";
if (sFile.endsWith(".kbasic_form")){
sDefinition = prepareSourceCodeDefinition(acFile, acText, true);
} else if (sFile.endsWith(".kbasic_report")){
sDefinition = prepareSourceCodeDefinition(acFile, acText, false);
}
sText = sText.append(sDefinition);
sText = sText.append("\nEnd Class\n");
}
return (char *) sText.ascii();
}
示例3: kbc
//.........这里部分代码省略.........
f.close();
}
}
if (my_cache){
my_cache->setMode(bSilent, bDebug); // important, setting right file name for caching
// sort input files so that non-cached files are at the end, otherwise IDs of classes will collide
if (bUseCache){
#define MAX_INPUTFILES 512
struct inputfile {
XString sFilename;
int nDate;
};
inputfile files[MAX_INPUTFILES];
int nCounter = 0;
int n = 0;
int n0 = 0;
bool bFirst = true;
do {
if (nCounter >= MAX_INPUTFILES){
nCounter = 0;
CONSOLE printError("too many input files to compile (> 512)");
break;
}
n = sFiles.find("\n", n);
XString s = sFiles.mid(n0, n >= 0 ? n - n0 : sFiles.length());
if (n == -1 & bFirst == false) break;
XFileInfo k(s.ascii());
int r = k.lastModified();
files[nCounter].sFilename = s;
files[nCounter].nDate = r;
nCounter++;
n0 = n + 1;
n++;
if (bFirst) bFirst = false;
} while (true);
bool bRedo = false;
do {
bRedo = false;
for (int i = 0; i < nCounter; i++){
if (i + 1 < nCounter){
if (files[i].nDate > files[i + 1].nDate){
inputfile file = files[i + 1];
files[i + 1] = files[i];
files[i] = file;
bRedo = true;
break;
}
}
示例4: atoi
char *prepareSourceCodeDefinition(const char *acFile, const char *acText, bool bForm)
{
XString sText;
sText = acText; sText = sText.replace("\r", "");
int n = 0;
XString sSQLName = "";
XString sSQLControls = "";
XString sAdditonalCode = "";
XString sAdditional = "";
int nBorderLeft = 0;
int nBorderRight = 0;
int nBorderTop = 0;
int nBorderBottom = 0;
int nHeight = 0;
n = sText.find("Height = ");
if (n >= 0){
n += 9;
int n2 = sText.find("\n", n);
nHeight = atoi(sText.mid(n, n2 - n).ascii());
}
n = sText.find("BorderLeft = ");
if (n >= 0){
n += 13;
int n2 = sText.find("\n", n);
nBorderLeft = atoi(sText.mid(n, n2 - n).ascii());
}
n = sText.find("BorderRight = ");
if (n >= 0){
n += 14;
int n2 = sText.find("\n", n);
nBorderRight = atoi(sText.mid(n, n2 - n).ascii());
}
n = sText.find("BorderTop = ");
if (n >= 0){
n += 12;
int n2 = sText.find("\n", n);
nBorderTop = atoi(sText.mid(n, n2 - n).ascii());
}
n = sText.find("BorderBottom = ");
if (n >= 0){
n += 15;
int n2 = sText.find("\n", n);
nBorderBottom = atoi(sText.mid(n, n2 - n).ascii());
}
n = sText.find("SQLControls = \"");
if (n >= 0){
n += 15;
int n2 = sText.find("\"", n);
sSQLControls = sText.mid(n, n2 - n);
}
n = sText.find("SQLName = \"");
if (n >= 0){
n += 11;
int n2 = sText.find("\"", n);
sSQLName = sText.mid(n, n2 - n);
}
n = 0;
n++;
static XString sDefinition;
sDefinition = "";
XString sConstructor = "";
sDefinition += "\n";
do {
n = sText.find("Begin ", n);
if (n == -1) break;
int n2 = sText.find("\n", n);
n += 6;
XString sLine = sText.mid(n, n2 - n);
int n3 = sLine.find(" ");
XString sType = sLine.mid(0, n3);
XString sName = sLine.mid(n3 + 1);
sName = sName.stripWhiteSpace();
sDefinition += "Public ";
sDefinition += sName;
sDefinition += " As ";
sDefinition += sType;
sDefinition += "\n";
sConstructor += sName;
//.........这里部分代码省略.........