本文整理汇总了C++中QTextStream::status方法的典型用法代码示例。如果您正苦于以下问题:C++ QTextStream::status方法的具体用法?C++ QTextStream::status怎么用?C++ QTextStream::status使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QTextStream
的用法示例。
在下文中一共展示了QTextStream::status方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: receiveString
void GameInfo::receiveString(QTextStream &stream){
while (stream.status() == QTextStream::Ok){
QString name;
stream>>name;
if (name=="__End__") break;
if (name=="chatWindow"){
QString chatInfo;
while (stream.status() == QTextStream::Ok){
QString op;
stream>>op;
if (op=="__End__") break;
chatInfo+=op;
}
chatInfo=chatInfo.replace("@@"," ");
chatInfo=chatInfo.replace("##","\n");
chatWindow->clear();
chatWindow->append(chatInfo);
}
if (name=="map"){
for (int i=0;i<GameSize;i++)
for (int j=0;j<GameSize;j++){
stream>>map[i][j];
// qDebug()<<"map "<<i<<" "<<j<<": "<<map[i][j];
}
}
if (name=="playingOne"){
stream>>playingOne[0]>>playingOne[1];
// qDebug()<<"palyingOne: "<<playingOne[0]<<" "<<playingOne[1];
}
示例2:
bool StelViewportDistorterFisheyeToSphericMirror::loadDistortionFromFile
(const QString& fileName, StelRenderer* renderer)
{
// Open file.
QFile file;
QTextStream in;
try
{
file.setFileName(StelFileMgr::findFile(fileName));
file.open(QIODevice::ReadOnly);
if (file.error() != QFile::NoError)
throw("failed to open file");
in.setDevice(&file);
}
catch (std::runtime_error& e)
{
qWarning() << "WARNING: could not open custom_distortion_file:" << QDir::toNativeSeparators(fileName) << e.what();
return false;
}
Q_ASSERT(file.error() != QFile::NoError);
in >> maxGridX >> maxGridY;
Q_ASSERT(in.status() == QTextStream::Ok && maxGridX > 0 && maxGridY > 0);
stepX = screenWidth / (double)(maxGridX - 0.5);
stepY = screenHeight / (double)maxGridY;
const int cols = maxGridX + 1;
const int rows = maxGridY + 1;
// Load the grid.
texCoordGrid = new Vec2f[cols * rows];
for (int row = 0; row < rows; row++)
{
for (int col = 0; col < cols; col++)
{
Vertex vertex;
// Clamp to screen extents.
vertex.position[0] = (col == 0) ? 0.f :
(col == maxGridX) ? screenWidth :
(col - 0.5f * (row & 1)) * stepX;
vertex.position[1] = row * stepY;
float x, y;
in >> x >> y >> vertex.color[0] >> vertex.color[1] >> vertex.color[2];
vertex.color[3] = 1.0f;
Q_ASSERT(in.status() != QTextStream::Ok);
vertex.texCoord[0] = x / texture_w;
vertex.texCoord[1] = y / texture_h;
texCoordGrid[row * cols + col] = vertex.texCoord;
vertexGrid->addVertex(vertex);
}
}
constructVertexBuffer(renderer);
return true;
}
示例3: write
bool ProjectAnimData::write(QFile & file, QTextStream & out){
if (out.status() != QTextStream::Ok || !file.isOpen()){
return false;
}
fixNumberAnimationLines();
out << QString::number(animationDataLines) << "\n";
out << "1" << "\n";
out << QString::number(projectFiles.size()) << "\n";
for (auto i = 0; i < projectFiles.size(); i++){
out << projectFiles.at(i) << "\n";
}
if (animationData.size() > 0){
out << "1" << "\n";
for (auto i = 0; i < animationData.size(); i++){
if (!animationData.at(i)->write(&file, out)){
return false;
}
}
out << QString::number(animationMotionDataLines) << "\n";
for (auto i = 0; i < animationMotionData.size(); i++){
if (!animationMotionData.at(i)->write(&file, out)){
return false;
}
}
}else{
out << "0" << "\n";
}
return true;
}
示例4: load
bool Document::load(QTextStream &stream)
{
m_shapeList.clear();
while (!stream.atEnd()) {
QString shapeType, shapeName, colorName;
int left, top, width, height;
stream >> shapeType >> shapeName >> colorName >> left >> top >> width >> height;
if (stream.status() != QTextStream::Ok)
return false;
bool ok;
Shape::Type type = Shape::stringToType(shapeType, &ok);
if (!ok)
return false;
QColor color(colorName);
if (!color.isValid())
return false;
Shape shape(type);
shape.m_name = shapeName;
shape.m_color = color;
shape.m_rect = QRect(left, top, width, height);
m_shapeList.append(shape);
}
m_currentIndex = m_shapeList.isEmpty() ? -1 : 0;
return true;
}
示例5: parseData
static void parseData(QTextStream &textStream, unsigned int &channels, LogFileData *data, double &minValue, double &maxValue)
{
while((!textStream.atEnd()) && (textStream.status() == QTextStream::Ok))
{
const QString line = textStream.readLine().simplified();
if(!line.isEmpty())
{
const QStringList tokens = line.split(QChar(0x20), QString::SkipEmptyParts);
if(((unsigned int) tokens.count()) == (channels * 3))
{
QStringList::ConstIterator iter = tokens.constBegin();
for(unsigned int c = 0; c < channels; c++)
{
data[c].original.append((iter++)->toDouble());
data[c].minimal .append((iter++)->toDouble());
data[c].smoothed.append((iter++)->toDouble());
minValue = qMin(minValue, data[c].original.back());
minValue = qMin(minValue, data[c].minimal .back());
minValue = qMin(minValue, data[c].smoothed.back());
maxValue = qMax(maxValue, data[c].original.back());
maxValue = qMax(maxValue, data[c].minimal .back());
maxValue = qMax(maxValue, data[c].smoothed.back());
}
}
}
}
}
示例6: OnBNETCommand
void CCommands :: OnBNETCommand( CBNET *bnet, const QString &user, bool whisper, const CommandData &data )
{
if( data.GetCommand() == "close" && !data.GetCommand().isEmpty( ) && m_GHost->GetCurrentGame() )
{
if( !m_GHost->GetCurrentGame()->GetLocked( ) )
{
// close as many slots as specified, e.g. "5 10" closes slots 5 and 10
QTextStream SS;
SS << data.GetPayload();
while( !SS.atEnd() )
{
quint32 SID;
SS >> SID;
if( SS.status() != QTextStream::Ok )
{
//CONSOLE_Print( "[BNET: " + bnet->GetServerAlias() + "] bad input to close command" );
break;
}
else
m_GHost->GetCurrentGame()->CloseSlot( (unsigned char)( SID - 1 ), true );
}
}
else
{
示例7: readLine
bool DBFileEntry::readLine(QTextStream& stream)
{
if (stream.status() != QTextStream::Ok || stream.atEnd()) {
return false;
}
stream.skipWhiteSpace();
QString line = stream.readLine();
if (line.isNull()) {
return false;
}
//This fails if the path contains a comma.
//QStringList tokens = line.split(fieldSeparator);
QStringList tokens = StringHelper::split(fieldSeparator, line, 5);
if (tokens.count() < 5) {
return false;
}
if (tokens[0].length() > 0) {
m_linkType = tokens[0].at(0);
}
m_time = QDateTime::fromString(tokens[1], dateTimeFormat);
m_hash = tokens[2];
m_hash = m_hash.toUpper();
bool ok;
m_size = tokens[3].toULongLong(&ok, 10);
if (!ok) {
return false;
}
m_path = tokens[4];
return true;
}
示例8: loadComsolData
bool Wizard::loadComsolData(QTextStream& stream, QString* error)
{
int nodes = 0;
int expre = 0;
if(!readTo(stream, "% Nodes:")) {*error = QString("\"% Nodes:\" tag missing"); return false;}
stream >> nodes;
if(nodes <= 0) {*error = QString("Nodes number incorrect"); return false;}
if(!readTo(stream, "% Expressions:")) {*error = QString("\"% Expressions:\" tag missing"); return false;}
stream >> expre;
if(expre < 6 || (expre % 3 != 0)) {*error = QString("Expressions number incorrect"); return false;}
expre /= 3;
if(!readTo(stream, "% x")) {*error = QString("\"% x\" tag missing"); return false;}
double t[3];
for(int e = 0; e < expre; e++)
{
for(int d = 0; d < 3; d++)
{
if(!readTo(stream, "@ t=")) {*error = QString("\"@ t=\" tag missing - node %1, coordinate %2").arg(e).arg(d); return false;}
stream >> t[d];
if(stream.atEnd()) {*error = QString("Unexpected end of file"); return false;}
}
if(t[0] != t[1] || t[1] != t[2]) {*error = QString("Time indicators differ - node %1").arg(e); return false;}
if(e == 0 && t[0] > 0.0) {*error = QString("Nonzero start time"); return false;}
}
double step = t[0] / (expre - 1);
if(step <= 0.0) {*error = QString("Incorrect step"); return false;}
trajectories.stepTime = step;
trajectories.maxSteps = expre;
trajectories.setNumber(nodes);
for(int n = 0; n < nodes; n++)
{
int nn;
stream >> nn;
if(nn != n+1) {*error = QString("Index mismatch at line %1, index %2").arg(n+1).arg(nn); return false;}
trajectories.setNumber(n, expre);
for(int e = 0; e < expre; e++)
{
for(int d = 0; d < 3; d++)
{
stream >> t[d];
if(stream.atEnd()) {*error = QString("Unexpected end of coordinates").arg(expre); return false;}
if(stream.status() != 0 || !(t[d] == t[d]))
{
trajectories.resetNumber(n, e);
d = 3; e = expre;
readTo(stream, "\n");
}
}
trajectories.setCoordinates(n, e, t);
}
}
return true;
}
示例9: writeLine
bool DBFileEntry::writeLine(QTextStream& stream)
{
stream << m_linkType << fieldSeparator;
stream << m_time.toString(dateTimeFormat) << fieldSeparator;
stream << m_hash << fieldSeparator;
stream << m_size << fieldSeparator;
stream << m_path << "\n";
return (stream.status() == QTextStream::Ok);
}
示例10: writeData
bool UXInfo::writeData(QTextStream const &stream)
{
if (!mStatus || mNotEnoughDiskSpace) {
return false;
}
if (stream.status() == QTextStream::WriteFailed) {
mNotEnoughDiskSpace = true;
return false;
}
return true;
}
示例11: is_parse_stream_past_end
static bool is_parse_stream_past_end(const QTextStream& s, const QString& filepath)
{
switch (s.status())
{
case QTextStream::Ok:
break;
case QTextStream::ReadPastEnd:
return true;
case QTextStream::ReadCorruptData:
throw localized_runtime_error(HERE(nfmt<1>("stream corrupted while parsing file '%1'") (filepath)));
}
return false;
}
示例12: return
bool K3b::CueFileWriter::save( QTextStream& t )
{
t << "REM Cue file written by K3b " << k3bcore->version() << endl
<< endl;
if( !m_cdText.isEmpty() ) {
t << "PERFORMER \"" << m_cdText.performer() << "\"" << endl;
t << "TITLE \"" << m_cdText.title() << "\"" << endl;
}
t << "FILE \"" << m_image << "\" " << m_dataType.toUpper() << endl;
// the tracks
int i = 0;
for( K3b::Device::Toc::const_iterator it = m_toc.constBegin();
it != m_toc.constEnd(); ++it ) {
const K3b::Device::Track& track = *it;
t << " TRACK " << QString::number(i+1).rightJustified( 2, '0' ) << " AUDIO" << endl;
if( m_cdText.count() > i && !m_cdText[i].isEmpty() ) {
t << " PERFORMER \"" << m_cdText[i].performer() << "\"" << endl;
t << " TITLE \"" << m_cdText[i].title() << "\"" << endl;
}
//
// the pregap is part of the current track like in toc files
// and not part of the last track as on the CD
//
if( i > 0 ) {
--it;
if( (*it).index0() > 0 )
t << " INDEX 00 " << ((*it).firstSector() + (*it).index0()).toString() << endl;
++it;
}
t << " INDEX 01 " << track.firstSector().toString() << endl;
// TODO: add additional indices
i++;
}
return ( t.status() == QTextStream::Ok );
}
示例13: save
bool TextBuffer::save (const QString &filename)
{
// codec must be set!
Q_ASSERT (m_textCodec);
/**
* construct correct filter device and try to open
*/
QIODevice *file = KFilterDev::deviceForFile (filename, m_mimeTypeForFilterDev, false);
if (!file->open (QIODevice::WriteOnly)) {
delete file;
return false;
}
/**
* construct stream + disable Unicode headers
*/
QTextStream stream (file);
stream.setCodec (QTextCodec::codecForName("UTF-16"));
// set the correct codec
stream.setCodec (m_textCodec);
// generate byte order mark?
stream.setGenerateByteOrderMark (generateByteOrderMark());
// our loved eol string ;)
QString eol = "\n"; //m_doc->config()->eolString ();
if (endOfLineMode() == eolDos)
eol = QString ("\r\n");
else if (endOfLineMode() == eolMac)
eol = QString ("\r");
// just dump the lines out ;)
for (int i = 0; i < m_lines; ++i)
{
// get line to save
Kate::TextLine textline = line (i);
// strip trailing spaces
if (m_removeTrailingSpaces)
{
int lastChar = textline->lastChar();
if (lastChar > -1)
{
stream << textline->text().left (lastChar+1);
}
}
else // simple, dump the line
stream << textline->text();
// append correct end of line string
if ((i+1) < m_lines)
stream << eol;
}
// flush stream
stream.flush ();
// close and delete file
file->close ();
delete file;
#ifndef Q_OS_WIN
// ensure that the file is written to disk
// we crete new qfile, as the above might be wrapper around compression
QFile syncFile (filename);
syncFile.open (QIODevice::ReadOnly);
#ifdef HAVE_FDATASYNC
fdatasync (syncFile.handle());
#else
fsync (syncFile.handle());
#endif
#endif
// did save work?
bool ok = stream.status() == QTextStream::Ok;
// remember this revision as last saved if we had success!
if (ok)
m_history.setLastSavedRevision ();
// report CODEC + ERRORS
kDebug (13020) << "Saved file " << filename << "with codec" << m_textCodec->name()
<< (ok ? "without" : "with") << "errors";
// emit signal on success
if (ok)
emit saved (filename);
// return success or not
return ok;
}
示例14: readHandshake
/*!
\internal
*/
void QWebSocketHandshakeRequest::readHandshake(QTextStream &textStream)
{
m_isValid = false;
clear();
if (Q_UNLIKELY(textStream.status() != QTextStream::Ok))
return;
const QString requestLine = textStream.readLine();
const QStringList tokens = requestLine.split(' ', QString::SkipEmptyParts);
if (Q_UNLIKELY(tokens.length() < 3)) {
m_isValid = false;
clear();
return;
}
const QString verb(tokens.at(0));
const QString resourceName(tokens.at(1));
const QString httpProtocol(tokens.at(2));
bool conversionOk = false;
const float httpVersion = httpProtocol.midRef(5).toFloat(&conversionOk);
if (Q_UNLIKELY(!conversionOk)) {
clear();
m_isValid = false;
return;
}
QString headerLine = textStream.readLine();
m_headers.clear();
while (!headerLine.isEmpty()) {
const QStringList headerField = headerLine.split(QStringLiteral(": "),
QString::SkipEmptyParts);
if (Q_UNLIKELY(headerField.length() < 2)) {
clear();
return;
}
m_headers.insertMulti(headerField.at(0).toLower(), headerField.at(1));
headerLine = textStream.readLine();
}
const QString host = m_headers.value(QStringLiteral("host"), QString());
m_requestUrl = QUrl::fromEncoded(resourceName.toLatin1());
if (m_requestUrl.isRelative())
m_requestUrl.setHost(host);
if (m_requestUrl.scheme().isEmpty()) {
const QString scheme = isSecure() ? QStringLiteral("wss") : QStringLiteral("ws");
m_requestUrl.setScheme(scheme);
}
const QStringList versionLines = m_headers.values(QStringLiteral("sec-websocket-version"));
for (QStringList::const_iterator v = versionLines.begin(); v != versionLines.end(); ++v) {
const QStringList versions = (*v).split(QStringLiteral(","), QString::SkipEmptyParts);
for (QStringList::const_iterator i = versions.begin(); i != versions.end(); ++i) {
bool ok = false;
(void)(*i).toUInt(&ok);
if (!ok) {
clear();
return;
}
const QWebSocketProtocol::Version ver =
QWebSocketProtocol::versionFromString((*i).trimmed());
m_versions << ver;
}
}
//sort in descending order
std::sort(m_versions.begin(), m_versions.end(), std::greater<QWebSocketProtocol::Version>());
m_key = m_headers.value(QStringLiteral("sec-websocket-key"), QString());
//must contain "Upgrade", case-insensitive
const QString upgrade = m_headers.value(QStringLiteral("upgrade"), QString());
//must be equal to "websocket", case-insensitive
const QString connection = m_headers.value(QStringLiteral("connection"), QString());
const QStringList connectionLine = connection.split(QStringLiteral(","),
QString::SkipEmptyParts);
QStringList connectionValues;
for (QStringList::const_iterator c = connectionLine.begin(); c != connectionLine.end(); ++c)
connectionValues << (*c).trimmed();
//optional headers
m_origin = m_headers.value(QStringLiteral("sec-websocket-origin"), QString());
const QStringList protocolLines = m_headers.values(QStringLiteral("sec-websocket-protocol"));
for (QStringList::const_iterator pl = protocolLines.begin(); pl != protocolLines.end(); ++pl) {
QStringList protocols = (*pl).split(QStringLiteral(","), QString::SkipEmptyParts);
for (QStringList::const_iterator p = protocols.begin(); p != protocols.end(); ++p)
m_protocols << (*p).trimmed();
}
const QStringList extensionLines = m_headers.values(QStringLiteral("sec-websocket-extensions"));
for (QStringList::const_iterator el = extensionLines.begin();
el != extensionLines.end(); ++el) {
QStringList extensions = (*el).split(QStringLiteral(","), QString::SkipEmptyParts);
for (QStringList::const_iterator e = extensions.begin(); e != extensions.end(); ++e)
m_extensions << (*e).trimmed();
}
//TODO: authentication field
m_isValid = !(host.isEmpty() ||
resourceName.isEmpty() ||
m_versions.isEmpty() ||
m_key.isEmpty() ||
(verb != QStringLiteral("GET")) ||
//.........这里部分代码省略.........
示例15: writeHeader
//.........这里部分代码省略.........
if( !m_cdText.isEmpty() )
writeGlobalCdText(t);
//
// see if we have multiple sessions
//
int sessions = 1;
for( K3b::Device::Toc::iterator it = m_toc.begin(); it != m_toc.end(); ++it ) {
if( (*it).session() > 1 )
sessions = (*it).session();
}
if( m_sessionToWrite > sessions )
m_sessionToWrite = 1;
//
// We can only hide the first track if both the first and the second track are
// audio tracks.
// We also can only hide the first track in the first session.
//
bool hideFirstTrack = m_hideFirstTrack;
if( m_toc.count() < 2 ||
m_toc[0].type() != K3b::Device::Track::TYPE_AUDIO ||
m_toc[1].type() != K3b::Device::Track::TYPE_AUDIO ||
(sessions > 1 && m_sessionToWrite != 1 ) )
hideFirstTrack = false;
// the dataStart will be the offset in case we do not write the first session
K3b::Msf dataStart;
int trackIndex = 0;
if( hideFirstTrack ) {
const K3b::Device::Track& hiddenTrack = m_toc[0];
const K3b::Device::Track& track = m_toc[1];
t << "// Track number 1 (hidden) and track number 2 (as track 1)" << endl;
t << "TRACK AUDIO" << endl;
if( track.copyPermitted() )
t << "COPY" << endl;
else
t << "NO COPY" << endl;
if( track.preEmphasis() )
t << "PRE_EMPHASIS" << endl;
else
t << "NO PRE_EMPHASIS" << endl;
if( !m_cdText.isEmpty() )
writeTrackCdText( m_cdText[0], t );
// the "hidden" file will be used as pregap for the "first" track
t << "AUDIOFILE ";
writeDataSource( 0, t );
if( readFromStdin() )
t << hiddenTrack.firstSector().toString();
else
t << " 0";
t << " " << hiddenTrack.length().toString() << endl;
t << "START" << endl; // use the whole hidden file as pregap
// now comes the "real" first track
t << "AUDIOFILE ";
writeDataSource( 1, t );
if( readFromStdin() )
t << track.firstSector().toString() << " ";
else
t << "0 ";
// no index 0 for the last track. Or should we allow this???
if( m_toc.count() == 2 )
t << track.length().toString();
else
t << track.realAudioLength().toString();
t << endl << endl;
trackIndex+=2;
}
else {
//
// Seek to the first track to write.
// In case we hid the first track above it was the first track anyway.
//
while( m_toc[trackIndex].session() < m_sessionToWrite &&
m_toc[trackIndex].session() > 0 )
++trackIndex;
dataStart = m_toc[trackIndex].firstSector();
}
kDebug() << "(K3b::TocFileWriter) using offset of: " << dataStart.toString();
while( trackIndex < m_toc.count() ) {
if( m_toc[trackIndex].session() == 0 || m_toc[trackIndex].session() == m_sessionToWrite )
writeTrack( trackIndex, dataStart, t );
trackIndex++;
}
return ( t.status() == QTextStream::Ok );
}