libkmime
kqcstringsplitter.cpp00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #include "kqcstringsplitter.h"
00018
00019 KQCStringSplitter::KQCStringSplitter()
00020 {
00021 reset();
00022 }
00023
00024
00025
00026
00027 KQCStringSplitter::~KQCStringSplitter()
00028 {
00029 }
00030
00031
00032
00033 void KQCStringSplitter::init(const QCString &str, const char *s)
00034 {
00035 sep=s;
00036 src=str;
00037 }
00038
00039
00040
00041 void KQCStringSplitter::init(const char *str, const char *s)
00042 {
00043 sep=s;
00044 src=str;
00045 }
00046
00047 bool KQCStringSplitter::first()
00048 {
00049
00050
00051
00052
00053 start=0;
00054
00055 end=src.find(sep, start);
00056
00057 if(end!=-1) {
00058 dst=src.mid(start, end);
00059 return true;
00060 }
00061 else {
00062 start=src.length();
00063 end=start;
00064 return false;
00065 }
00066
00067 }
00068
00069
00070
00071 bool KQCStringSplitter::last()
00072 {
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084 end=src.length();
00085
00086 start=src.findRev(sep,end);
00087
00088 if(start!=-1) {
00089 dst=src.mid(start, end-start);
00090 return true;
00091 }
00092 else return false;
00093
00094
00095 }
00096
00097
00098
00099 bool KQCStringSplitter::next()
00100 {
00101
00102
00103
00104
00105 start=end+1;
00106
00107 if(start< (int) src.length()) {
00108
00109 end=src.find(sep, start);
00110
00111 if(end!=-1) {
00112 dst=src.mid(start, end-start);
00113 }
00114 else {
00115 dst=src.mid(start, src.length()-start);
00116 start=src.length();
00117 end=src.length();
00118 }
00119
00120 return true;
00121 }
00122 else return false;
00123
00124 }
00125
00126
00127
00128 bool KQCStringSplitter::prev()
00129 {
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141 end=start-1;
00142
00143 if(end>0) {
00144
00145 start=src.findRev(sep,end);
00146
00147 if(start!=-1)
00148 dst=src.mid(start, end-start);
00149
00150 else {
00151 dst=src.mid(0, end+1);
00152 end=0;
00153 start=0;
00154 }
00155
00156 return true;
00157 }
00158 else return false;
00159
00160 }
00161
|