Форум программистов, компьютерный форум CyberForum.ru

Что быстрее - двоичный или текстовый файл? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как хранить координаты фигуры? http://www.cyberforum.ru/cpp-beginners/thread1103614.html
Что нужно сделать: при запуске программы в центре рисуется прямоугольник, в меню есть 4 кнопки: растянуть влево, вправо, вверх, вниз растягивается на 1/8 разрешения экрана по высоте или ширине, собственно вопрос как хранить координаты фигуры? Пробовал через глобальные переменные, пробовал сохранять в массив, но не выходит#include "stdafx.h" #include "Familia.h" /*#define W 200 //...
C++ Нахождение суммы n-го количества чисел Требуется написать программу, которая осуществляет подсчёт суммы, n-го количества слагаемых. S=0+1-2+3-4+...n Очень нужна ваша помощь! :help: Буду всем очень признателен, за содействие. :) http://www.cyberforum.ru/cpp-beginners/thread1103611.html
Разнести весь код из main по отдельным функциям C++
Нужно что-бы все вычисления проводились через функции. Как мне перенести вычисления, a1,a2,a3,b1... и так далее, из мэйна в отдельную функцию? Если код можно как-то упростить, тоже пишите! Буду очень признателен за помощь. #include "stdafx.h" #include <iostream> #include <iomanip> #include <math.h>
C++ OpenIM - не работает распараллеливание циклов
void Multiplication(int a, int b) { int c; int i; int j; int count(0); omp_set_num_threads(count); #pragma omp parallel #pragma omp for firstprivate(j) lastprivate(i) for(i = 0; i < 5; i+=1) // i = ряд матрицы a
C++ Переполнение include http://www.cyberforum.ru/cpp-beginners/thread1103600.html
Здравствуйте! Такой вопрос есть класс Program и класс Universe, в классе Program я подключаю(#include) Universe.cpp, а в классе Universe подключаю(#include) Program.cpp. Вылезает ошибка, поразмыслив я понял что это вполне логично происходит какой-то закольцованный #include как от этого избавиться? Пробовал #pragma once не помогло( С++ токо начал копать, так что извините если слишком банальный...
C++ Почему отказались от #ifndef? Всем привет, Лафоре пишет, что от использовании директивы #ifndef стали отказываться в пользу #if !defined(). Может кто-нибудь объяснить почему? подробнее

Показать сообщение отдельно
DrOffset
6423 / 3797 / 878
Регистрация: 30.01.2014
Сообщений: 6,585
25.02.2014, 14:32     Что быстрее - двоичный или текстовый файл?
Цитата Сообщение от taras atavin Посмотреть сообщение
Значит не все, раз объяснять приходится.
Я не знаю зачем ты мне это объясняешь Я вроде не давал повода сомневаться.
Цитата Сообщение от taras atavin Посмотреть сообщение
Кликните здесь для просмотра всего текста
Только процессору плевать на то, как ты представишь перевод строки, это вкусы приложений: одно выполняет обнуление абсциссы и приращение ординаты под одним кейсом на \n, для другого это две раздельные реакции на два разных управляющих символа. Соответственно для них файл перекодируется перед отправкой другому юзверю. К чтению файла с диска это не относится. Файл же формата, например, .bmp отправляют, как есть, без переворота слов на любую платформу, но прочитанные из него числовые данные должны обрабатываться АЛУ процессора, которое может работать со словами задом на перёд. И тогда уже придётся переворачивать слова при каждом чтении/записи. Файл при этом остаётся .bmp, порядок байт на диске остаётся прежним, но в памяти он должен быть всегда противоположным. К задаче копирования самого файла с раскладкой копий по десяти каталогам это не относится, в этом случае файл читается и пишется, как сырой. Но если его читает приложение, то оно не должно искажать, например, ширину растра.
И? Сериализацию как раз и придумали, чтобы уйти от этих проблем. Что ты заладил с этим процессором? Давай я тебе прямо скажу - я все это знаю, причем не по-наслышке, т.к у меня только сейчас проекты работают на 5ти разных аппаратных платформах (не говоря уже об ОС, которых сильно больше).
Давай я напомню твои слова:
Цитата Сообщение от taras atavin Посмотреть сообщение
Кликните здесь для просмотра всего текста
Текстовый файл медленнее по другой причине. Как задаётся место в текстовом файле при произвольном доступе? Номерами символа и строки. Но строки имеют разную длину и чтоб найти, где нужная строка находится, надо последовательно прочитать и проанализировать файл от начала. Положение в бинарнике задаётся номером байта, все байты одинаковы, это позволяет вычислить, где конкретно нужный байт находится и сразу перейти к этому месту. С другой стороны, текстовый файл - байтовый. А бинарный? Бинарный может состоять из чего угодно и иметь чёрт знает какое выравнивание, иметь какой угодно порядок байт в словах, двойных словах, четверных словах..., что придётся учитывать при последовательном чтении. Возможно, придётся менять порядок байтов, менять выравнивание, или читать каждое данное отдельно. Все эти дополнительные операции замедляют чтение, но нужны не всегда. При последовательном же чтении текстового файла можно читать блок, что даёт максимальную скорость доступа. Возможно бинарник получится читать также, а может и нет.
На что я только уточнил, что все вышеописанное относится в первую очередь к формату, а не к файлу. С чем ты потом благополучно согласился:
Цитата Сообщение от taras atavin Посмотреть сообщение
а текстовым, или бинарным бывает формат файла.
Ну и в чем смысл твоих дальнейших возражений?

Цитата Сообщение от taras atavin Посмотреть сообщение
Ну да, конечно. Если работаешь с файлом последовательно, то уж ни как не произвольно. А если открыть по-другому? В контексте выбора даже категории формата потоки - не препятствие.
Каким образом, простите? Я этой фразой намекал, что в определенных терминологических рамках понятие файл несколько более широкое, чем область на диске, и у некоторых типов таких файлов о произвольном доступе можно забыть.
 
Текущее время: 08:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru