Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Общение с файлом, :::::::::::::::::::::::::: 
:(
    Опции темы
xach
  Дата 10.12.2004, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 22.10.2004
Где: СПб

Репутация: нет
Всего: нет



Привет Друзья!
Подскажите пожалуйста самый самый метод доступа к файлу...
Хотелось бы что бы поинтуитивнее был, по типу Delphi`йского TFileStream,
Чтобы я видел поле Size, поле Position, процедурки там Read, Write...
Заранее благодарен...

PM MAIL   Вверх
chipset
Дата 10.12.2004, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



CreateFile, ReadFile, WriteFile, CloseHandle smile


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
azesmcar
Дата 10.12.2004, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



Самый самый...и тут несколько вариантов ответа..
Самый быстрый
Самый удобный
Самый распространенный...
Какой именно???
Можно пользоваться CRT (C Runtime Library) fopen, fwrite, fread, fgetpos, fseek...
Можешь из всего этого обильного наличия функций создать свой собственный класс в котором будут твои функции или процедурки...
Можешь на STL перейти..класс fstream
Можно на ассемблере сразу если охота есть и знания вышеупомянутого...

Это сообщение отредактировал(а) azesmcar - 10.12.2004, 13:15
PM   Вверх
chipset
Дата 10.12.2004, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



Те функции которые я привел некроссплатформенные, поэтому согласен с
azesmcar, CRT или STL надо....


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
bel_nikita
Дата 10.12.2004, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



Гы-гы smile
fopen, fwrite, fread, fgetpos, fseek... работают через CreateFile, ReadFile, WriteFile, CloseHandle smile
покапайтесь в нутрях этих функций


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
Alexandr87
Дата 10.12.2004, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


дыкий псых
***


Профиль
Группа: Завсегдатай
Сообщений: 1459
Регистрация: 27.11.2004
Где: Алматы, Казахстан

Репутация: 2
Всего: 39



Для cpp, самый простой это создать экземпляр класс ifstream, для записи в файл и ofstream для чтения из файла, при создании в конструктор передается имя файла, с которым буш работать. Краткий пример
Код

ifstream fin("d.in");
fin>>peremen;
ofstream fout("d.out");
fout<<"123";


Это самое простое, можешь поизучать методы и свойства данного класса, по-моему самый легки способ
PM Jabber   Вверх
chipset
Дата 10.12.2004, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



bel_nikita
Конкретнее - Виндусская реализация этих функций ;) На линуксе они будут с евонным апи..
А CreateFile NtCreateFile вызывает ;)


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Гость_LuckLess
Дата 10.12.2004, 23:10 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Если под винду , то самый удобный ИМХО метод
createfile() или openfile()
CreateFileMapping()
MapViewOfFile()
  Вверх
LuckLess
Дата 10.12.2004, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 15.9.2004

Репутация: 1
Всего: 1



Если под винду , то самый удобный ИМХО метод
createfile() или openfile()
CreateFileMapping()
MapViewOfFile()
Добавлено @ 23:16
супер интуитивно имхо. Просто работаешь с файлом как с регионом адресного пространства..
PM MAIL   Вверх
En_t_end
Дата 11.12.2004, 06:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: 1
Всего: 20



Ну и добавлю...
Fgetpos, Fseek, Fsetpos, Ftell --- все отвечают за изменение или получение позиции в файле...
Добавлено @ 06:47
Ой, извиняюсь, наверно не заметил...
PM MAIL ICQ Skype GTalk Jabber   Вверх
Guest
Дата 17.12.2004, 12:30 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Спасибо Друзья!

Я выбрал fstream - чудесная вещь... и интуитивная как я и просил...

Но вот размер файла так и не узнать, а посимвольный пробег по всему
файлу (с счётчиком) не этичен...

Подскажите чисто filesize ф-цию...

smile
  Вверх
bel_nikita
Дата 17.12.2004, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



Цитата
Подскажите чисто filesize ф-цию...
Код
long filesize(FILE *stream)
{
long curpos, length;

curpos = ftell(stream);
fseek(stream, 0L, SEEK_END);
length = ftell(stream);
fseek(stream, curpos, SEEK_SET);
return length;
}


З.Ы.: не знаю, как там для STL стримов, что-то мало ими пользуюсь


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
xach
Дата 17.12.2004, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 22.10.2004
Где: СПб

Репутация: нет
Всего: нет



Спасибо Большое!

Хотя если кто знает вариант покороче - милости прошу...

smile
PM MAIL   Вверх
azesmcar
Дата 17.12.2004, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



DWORD GetFileSize(
HANDLE hFile,
LPDWORD lpFileSizeHigh
);

PM   Вверх
xach
Дата 17.12.2004, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 22.10.2004
Где: СПб

Репутация: нет
Всего: нет



Уважаемый azesmcar!
Поясните про список параметров и
возвращаемое значение...

smile
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0611 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.