本文整理汇总了C++中wxInputStream::Eof方法的典型用法代码示例。如果您正苦于以下问题:C++ wxInputStream::Eof方法的具体用法?C++ wxInputStream::Eof怎么用?C++ wxInputStream::Eof使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类wxInputStream
的用法示例。
在下文中一共展示了wxInputStream::Eof方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnSysSeek
wxFileOffset wxChmInputStream::OnSysSeek(wxFileOffset seek, wxSeekMode mode)
{
wxString mode_str = wxEmptyString;
if ( !m_contentStream || m_contentStream->Eof() )
{
m_lasterror = wxSTREAM_EOF;
return 0;
}
m_lasterror = wxSTREAM_NO_ERROR;
wxFileOffset nextpos;
switch ( mode )
{
case wxFromCurrent:
nextpos = seek + m_pos;
break;
case wxFromStart:
nextpos = seek;
break;
case wxFromEnd:
nextpos = m_size - 1 + seek;
break;
default:
nextpos = m_pos;
break; /* just to fool compiler, never happens */
}
m_pos=nextpos;
// Set current position on stream
m_contentStream->SeekI(m_pos);
return m_pos;
}
示例2: loadIpCounts
void Database::loadIpCounts(wxInputStream &file)
{
double totallinecount = 0;
wxTextInputStream str(file);
str >> totallinecount;
int c = 0;
while(!file.Eof())
{
wxString line = str.ReadLine();
if (line.IsEmpty())
break;
std::wistringstream stream(line.c_str().AsWChar());
std::wstring memaddr;
stream >> memaddr;
double count;
stream >> count;
std::wstring srcfile;
int linenum;
::readQuote(stream, srcfile);
stream >> linenum;
LineInfo& lineinfo = (fileinfo[srcfile])[linenum];
lineinfo.count += count;
lineinfo.percentage += 100.0f * ((float)count / (float)totallinecount);
}
}
示例3: Eof
bool wxChmInputStream::Eof() const
{
return (m_content==NULL ||
m_contentStream==NULL ||
m_contentStream->Eof() ||
m_pos>m_size);
}
示例4: ReadStream
wxString ReadStream(wxInputStream& stream)
{
wxTextInputStream txt(stream);
wxString str, line;
while (!stream.Eof())
str += txt.ReadLine() + wxT('\n');
return str;
}
示例5: doRead
void ApprExpansionDatabase::doRead(wxInputStream& in) {
wxTextInputStream tin(in);
while (!in.Eof()) {
String l = tin.ReadLine();
if (l.size() < 3) continue;
order.push_back(l.substr(0,2));
expansions[l.substr(0,2)] = l.substr(3);
}
}
示例6: loadStats
void Database::loadStats(wxInputStream &file)
{
wxTextInputStream str(file);
stats.clear();
int c = 0;
while(!file.Eof())
{
wxString line = str.ReadLine();
if (line.IsEmpty())
break;
stats.push_back(line.c_str().AsWChar());
}
}
示例7: ReadOutput
bool MainWindow::ReadOutput(wxInputStream& s)
{
// the stream could be already at EOF or in wxSTREAM_BROKEN_PIPE state
s.Reset();
wxTextInputStream tis(s, " ", wxConvUTF8);
while (true) {
wxString line = tis.ReadLine();
if ( !line.empty() ) {
this->text->AppendText(line);
}
this->text->AppendText(wxTextFile::GetEOL());
if (s.Eof()) {
break;
}
}
return true;
}
示例8: loadSymbols
// read symbol table
void Database::loadSymbols(wxInputStream &file)
{
wxTextInputStream str(file, wxT(" \t"), wxConvAuto(wxFONTENCODING_UTF8));
int c = 0;
while(!file.Eof())
{
wxString line = str.ReadLine();
if (line.IsEmpty())
break;
std::wistringstream stream(line.c_str().AsWChar());
Symbol *sym = new Symbol;
stream >> sym->id;
::readQuote(stream, sym->module);
::readQuote(stream, sym->procname);
::readQuote(stream, sym->sourcefile);
stream >> sym->sourceline;
sym->isCollapseFunction = osFunctions.Contains(sym->procname.c_str());
sym->isCollapseModule = osModules.Contains(sym->module.c_str());
symbols[sym->id] = sym;
}
}
示例9: SkipWhitespace
static void SkipWhitespace(wxInputStream& input, unsigned int& lineNumber)
{
char c;
while (!input.Eof())
{
c = input.Peek();
if (c == '\n')
{
++lineNumber;
}
else if (c == '-')
{
input.GetC();
char c2 = input.Peek();
if (c2 == '-')
{
// Lua single line comment.
while (!input.Eof() && input.GetC() != '\n')
{
}
++lineNumber;
continue;
}
}
else if (c == '/')
{
input.GetC();
char c2 = input.Peek();
if (c2 == '*')
{
// C++ block comment.
input.GetC();
while (!input.Eof())
{
c = input.GetC();
if (c == '\n')
{
++lineNumber;
}
if (c == '*' && input.Peek() == '/')
{
input.GetC();
break;
}
}
continue;
}
else if (c2 == '/')
{
// C++ single line comment.
while (!input.Eof() && input.GetC() != '\n')
{
}
++lineNumber;
continue;
}
else
{
input.Ungetch(c);
break;
}
}
if (!IsSpace(c))
{
break;
}
input.GetC();
}
}
示例10: GetToken
bool GetToken(wxInputStream& input, wxString& result, unsigned int& lineNumber)
{
result.Empty();
SkipWhitespace(input, lineNumber);
// Reached the end of the file.
if (input.Eof())
{
return false;
}
char c = input.GetC();
if (c == '\"')
{
// Quoted string, search for the end quote.
do
{
result += c;
c = input.GetC();
}
while (input.IsOk() && c != '\"');
result += c;
return true;
}
char n = input.Peek();
if (IsDigit(c) || (c == '.' && IsDigit(n)) || (c == '-' && IsDigit(n)))
{
bool hasDecimal = false;
while (!IsSpace(c))
{
result.Append(c);
if (input.Eof())
{
return true;
}
c = input.Peek();
if (!IsDigit(c) && c != '.')
{
return true;
}
input.GetC();
if (c == '\n')
{
++lineNumber;
return true;
}
}
}
else
{
if (IsSymbol(c))
{
result = c;
return true;
}
while (!IsSpace(c) && !input.Eof())
{
result.Append(c);
if (IsSymbol(input.Peek()))
{
break;
}
c = input.GetC();
if (c == '\n')
{
++lineNumber;
return true;
}
}
}
return true;
//.........这里部分代码省略.........
示例11: Eof
bool Eof() const
{ wxASSERT(m_pStream); return m_pStream->Eof(); }
示例12: calculate
/**
* Calculates the checksums from the given stream.
*
* @param in Input stream from which the data will be extracted to
* compute the checksum. The data are extracted until the end
* of the stream is reached.
* @param checksums Array of checksums to calculate.
* @param sumValues The calculated values of the checksums from the input
* stream. The array is erased first before adding results.
* On success <CODE>ArrayChecksum.GetCount() == sumValues.GetCount()</CODE>,
* on failure, <CODE>sumValues</CODE> should be empty.
* @return <UL>
* <LI><CODE>Ok</CODE> if the checksum has been successfully calculated.</Li>
* <LI><CODE>ReadError</CODE> if a read error has occured.</LI>
* <LI><CODE>Canceled</CODE> if the user has canceled the calculation.</LI>
* </UL>
*/
ChecksumCalculator::State ChecksumCalculator::calculate(wxInputStream& in,
const ArrayChecksum& checksums,
wxArrayString& sumValues)
{
// Check if the input stream is valid.
if (!in.IsOk())
return ReadError;
// Check if at least a checksum instance is OK.
bool aInstanceOK = false;
size_t i = 0;
size_t s = checksums.GetCount();
while (!aInstanceOK && i < s)
if (checksums[i] != NULL)
aInstanceOK = true;
else
i++;
if (!aInstanceOK)
return ReadError;
// Initializes the buffer.
const size_t bufSize = getBufferSize();
wxByte* buff = new wxByte[bufSize];
// Calculating the checksum.
ChecksumProgress* p = getChecksumProgress();
bool canceled = false;
size_t read;
wxStreamError lastError = wxSTREAM_NO_ERROR;
s = checksums.GetCount();
for (i = 0; i < s; i++)
if (checksums[i] != NULL)
checksums[i]->reset();
while (!canceled && !in.Eof() && lastError == wxSTREAM_NO_ERROR)
{
in.Read(buff, bufSize);
read = in.LastRead();
if (read > 0 && read <= bufSize)
{
for (i = 0; i < s; i++)
if (checksums[i] != NULL)
checksums[i]->update(buff, read);
if (p != NULL)
p->update(read, canceled);
}
lastError = in.GetLastError();
}
// Cleans-up the memory
delete[] buff;
if (canceled)
return CanceledByUser;
if (lastError != wxSTREAM_NO_ERROR && lastError != wxSTREAM_EOF)
return ReadError;
sumValues.Empty();
for (i = 0; i < s; i++)
if (checksums[i] != NULL)
sumValues.Add(checksums[i]->getValue());
else
sumValues.Add(wxEmptyString);
return Ok;
}
示例13: loadProcList
// read callstacks
void Database::loadProcList(wxInputStream &file,bool collapseKernelCalls)
{
wxTextInputStream str(file);
wxProgressDialog progressdlg("Sleepy", "Please wait while the profile database is scanned...",
(int)file.GetSize(), theMainWin,
wxPD_APP_MODAL|wxPD_AUTO_HIDE);
class CallStackPtrComp
{
CallStack *p;
public:
CallStackPtrComp(CallStack *_p): p(_p) {}
bool operator <(const CallStackPtrComp b) const {
return p->stack < b.p->stack;
}
CallStack *Get() {
return p;
}
};
std::set<CallStackPtrComp> callstackSet;
while(!file.Eof())
{
wxString line = str.ReadLine();
if (line.IsEmpty())
break;
std::wistringstream stream(line.c_str().AsWChar());
CallStack callstack;
stream >> callstack.samplecount;
while(true)
{
std::wstring id;
stream >> id;
if (id.empty())
break;
const Symbol *sym = symbols[id];
if(collapseKernelCalls && sym->isCollapseFunction) {
callstack.stack.clear();
}
callstack.stack.push_back(sym);
}
if(collapseKernelCalls) {
if(callstack.stack.size() && callstack.stack[0]->isCollapseModule) {
while(callstack.stack.size() >= 2) {
if( !callstack.stack[1]->isCollapseModule )
{
break;
}
callstack.stack.erase(callstack.stack.begin());
}
}
}
std::set<CallStackPtrComp>::iterator iter = callstackSet.find(&callstack);
if(iter != callstackSet.end()) {
((CallStackPtrComp)*iter).Get()->samplecount += callstack.samplecount;
continue;
}
callstacks.push_back(callstack);
callstackSet.insert(&callstacks[callstacks.size()-1]);
wxFileOffset offset = file.TellI();
if(offset != wxInvalidOffset)
progressdlg.Update(offset);
}
}