From c8390cdf1111950decb19a5d90e38a5163c1e733 Mon Sep 17 00:00:00 2001 From: Oleksandr Date: Thu, 12 Sep 2024 17:08:05 +0300 Subject: [PATCH] PcfObserver::parsePcfFile parse lines in uniform way, not relying on specific line ending separator --- src/PinAssignment/PcfObserver.cpp | 38 ++++++++++++++++++------------- 1 file changed, 22 insertions(+), 16 deletions(-) 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 PcfObserver::parsePcfFile(const QString& filePath) QFile file{filePath}; if (file.open(QFile::ReadOnly)) { - QList lines = QtUtils::StringSplit(QString{file.readAll()}, '\n'); + QList lines; + + QTextStream in(&file); int lineCount = 1; - for (const QString& line: lines) { - PcfLineFrame frame; - frame.lineNum = lineCount; - frame.line = line; - QList 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 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++; }