diff --git a/src/PinAssignment/PcfObserver.cpp b/src/PinAssignment/PcfObserver.cpp index 0d9b933af..b237d297c 100644 --- a/src/PinAssignment/PcfObserver.cpp +++ b/src/PinAssignment/PcfObserver.cpp @@ -78,24 +78,30 @@ QList<PcfLineFrame> PcfObserver::parsePcfFile(const QString& filePath) QFile file{filePath}; if (file.open(QFile::ReadOnly)) { - QList<QString> lines = QtUtils::StringSplit(QString{file.readAll()}, '\n'); + QList<QString> lines; + + QTextStream in(&file); int lineCount = 1; - for (const QString& line: lines) { - PcfLineFrame frame; - frame.lineNum = lineCount; - frame.line = line; - QList<QString> elements = QtUtils::StringSplit(line, ' '); - if (elements.size() > 0) { - frame.cmd = elements.at(0); - } - if (elements.size() > 1) { - frame.port = elements.at(1); + while (!in.atEnd()) { + QString line{in.readLine()}; + + if (!line.isEmpty()) { + PcfLineFrame frame; + frame.lineNum = lineCount; + frame.line = line; + QList<QString> elements = QtUtils::StringSplit(line, ' '); + if (elements.size() > 0) { + frame.cmd = elements.at(0); + } + if (elements.size() > 1) { + frame.port = elements.at(1); + } + if (elements.size() > 2) { + frame.pin = elements.at(2); + } + + lineFrames.append(frame); } - if (elements.size() > 2) { - frame.pin = elements.at(2); - } - - lineFrames.append(frame); lineCount++; }