• setRealNumberNotation(RealNumberNotation):
• setRealNumberPrecision(int) — устанавливает максимальное количество генерируемых цифр (по умолчанию 6).
• setFieldWidth(int) — устанавливает минимальный размер поля.
• setFieldAlignment(FieldAlignment):
• setPadChar(QChar) — устанавливает символ, используемый в качестве заполнителя (пробел по умолчанию).
Опции можно также устанавливать с помощью функций—членов:
out.setNumberFlags(QTextStream::ShowBase
| QTextStream::UppercaseDigits);
out.setIntegerBase(16);
out << 12345678;
Класс
QString str;
QTextStream(&str) << oct << 31 << " " << dec << 25 << endl;
В результате переменная
Теперь рассмотрим простой пример текстового формата файлов. В приложении Электронная таблица, описанном в части I, мы использовали двоичный формат для хранения данных этого приложения. Данные представляют собой последовательность троек (строка, столбец, формула) — по одной на каждую непустую ячейку. Запись данных в виде текста выполняется просто; ниже показан фрагмент пересмотренной версии функции
QTextStream out(&file);
for (int row = 0; row < RowCount; ++row) {
for (int column = 0; column < ColumnCount; ++column) {
QString str = formula(row, column);
if (!str.isEmpty)
out << row << " " << column << " " << str << endl;
}
}
Мы использовали простой формат, когда одна строка соответствует одной ячейке, причем пробелы разделяют номер строки и номер столбца, а также номер столбца и формулу. Формула может содержать пробелы, но мы предполагаем, что она не может содержать ни одного символа '\n' (который используется для завершения строки). Теперь давайте рассмотрим соответствующий программный код, предназначенный для чтения файла:
QTextStream in(&file);
while (!in.atEnd) {
QString line = in.readLine;
QStringList fields = line.split(' ');
if (fields.size >= 3) {
int row = fields.takeFirst.toInt;
int column = fields.takeFirst.toInt;
setFormula(row, column, fields.join(' '));
}
}
Мы считываем одним оператором одну строку данных приложения Электронная таблица. Функция