32 / 32 / 3
Регистрация: 25.05.2014
Сообщений: 1,137
|
||||||
1 | ||||||
Не могу записать в нетипизированный файл06.03.2015, 17:46. Показов 1488. Ответов 8
Метки нет (Все метки)
Добрый вечер! Пытаюсь записать в нетипизированный файл, и получаю ошибку Uknown Run-Time Error:1784.
Если же пытаюсь записать что то другое, например переменную типа int, то записывается. Помогите пожалуйста.
0
|
06.03.2015, 17:46 | |
Ответы с готовыми решениями:
8
Записать значения элементов матрицы в нетипизированный файл и сохранить файл Необходимо записать массив чисел из текстового файла в нетипизированный файл Необходимо записать массив чисел из текстового файла в нетипизированный файл, а также минимальный и максимальный элемент Не могу записать в файл на windows, а на linux могу |
Native x86
5594 / 3338 / 951
Регистрация: 13.02.2013
Сообщений: 10,587
|
|
06.03.2015, 18:02 | 2 |
Если делаете Reset(F,sizeof(v)), то записывать надо как blockwrite(f,v,1). Либо наоборот: если Reset(F,1), то blockwrite(f,v,sizeof(v)).
Добавлено через 1 минуту Вот только файл у вас не текстовый получится, лучше не давать ему расширение TXT.
1
|
пофигист широкого профиля
4753 / 3188 / 861
Регистрация: 15.07.2013
Сообщений: 18,450
|
|
06.03.2015, 18:24 | 3 |
И где тут нетипизированный файл?
1
|
quwy
|
06.03.2015, 18:26
#4
|
0
|
32 / 32 / 3
Регистрация: 25.05.2014
Сообщений: 1,137
|
|
06.03.2015, 20:56 [ТС] | 5 |
quwy, northener, там должно быть просто F:File, забыл стереть просто) Программа была написана ранее для типизированных файлов, а препод заставил переделывать для нетипизированных. А разве blockwrite(f,v,1) здесь 1(байт?) не указывает на размер в байтах? Я пишу blockwrite(f,v,sizeof(v)), чтобы при записи и открытии Reset(F,v) размер буфера равнялся размеру v. Или 1 здесь-это что то другое? Что это такое? Спасибо всем за ответы!
0
|
пофигист широкого профиля
4753 / 3188 / 861
Регистрация: 15.07.2013
Сообщений: 18,450
|
|
06.03.2015, 21:21 | 6 |
Сообщение было отмечено danek130995 как решение
Решение
Нет. Это не количество байт. Это количество "записей". Размер "записи" указывается вторым параметром процедуры Reset. Если не указано, то размер "записи" 128 байт.
1
|
32 / 32 / 3
Регистрация: 25.05.2014
Сообщений: 1,137
|
|
06.03.2015, 21:53 [ТС] | 7 |
northener, получается, когда я указал Reset(F,1); файл открывается с длиной записи 1 байт? Почему тогда, когда я сейчас делаю после этого blockread(f,v,sizeof(v)); и blockwrite(f,v,sizeof(v)); данные считываются и записываются нормально? Ведь размер v=420 байт , а я указал в Reset 1 байт. Получается, я пытаюсь считать 420 записей, а разрешено только 1 байт? И если я пишу sizeof(v) в BlockWrite, получается, я говорю ему, что количество записей считываемых равно 420 байтам? Как то странно. В чем я запутался, помогите пожалуйста
0
|
пофигист широкого профиля
4753 / 3188 / 861
Регистрация: 15.07.2013
Сообщений: 18,450
|
|
06.03.2015, 23:23 | 8 |
Сообщение было отмечено danek130995 как решение
Решение
Ты пытаешься считать 420 записей размером в 1 байт. А 420 байт это и есть размер той структуры, которую ты считываешь. Так что все правильно.
1
|
32 / 32 / 3
Регистрация: 25.05.2014
Сообщений: 1,137
|
|
07.03.2015, 10:35 [ТС] | 9 |
northener, я кажется понял!) Т.е. я при blockread(f,v,sizeof(v)) считываю 420 раз по 1 байту(т.к. Reset(F,1) ), что и равняется размеру v. С таким же успехом я могу открыть файл Reset(F,420), и уже спокойно считывать blockread(f,v,1). Спасибо огромное!
0
|
07.03.2015, 10:35 | |
07.03.2015, 10:35 | |
Помогаю со студенческими работами здесь
9
Нетипизированный файл Нетипизированный файл Нетипизированный файл Нетипизированный файл Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |