60 / 60 / 7
Регистрация: 16.05.2010
Сообщений: 632
|
||||||
1 | ||||||
Открытие файла09.08.2012, 20:05. Показов 5798. Ответов 92
Метки нет (Все метки)
У меня есть файл в котором сначала хранится количество наименований файлов,а потом названия файлов
пример
2!
1.txt! 2.txt! ! используются как разделители Как именно открыть файл,чтоб данные не стёрлись,но я мог например перместиться в начало файла и записать новое кол-во файлов,стерев старое. тут пример того,как я открываю файл,записываю новое кол-во файлов и дописываю в конец названия,однако на деле ф вайле лишь 0! и всё
уже не актуально,я от этого отказался на данный момент у меня не получается записать данные о новом количестве файлов и дописать новые названия Добавлено через 16 часов 43 минуты не получается открыть файл в этом месте(строка 62)
0
|
09.08.2012, 20:05 | |
Ответы с готовыми решениями:
92
как может корректно выполняющийся оператор >> (чтение из текстового файла) негативно влиять на открытие другого файла? Открытие файла Открытие файла Открытие файла |
60 / 60 / 7
Регистрация: 16.05.2010
Сообщений: 632
|
|
10.08.2012, 01:13 [ТС] | 21 |
у меня в файле будут названия файла с различной длиной
я могу после каждого слова делать переход на следующую строку,а вот как мне найти эти переходы
0
|
10.08.2012, 01:20 | 22 | |||||
Да не нужны никакие переходы в бинарнике...
Отводи под путь допустим 256 символов ( ну или сколько там MAX_PATH )
0
|
60 / 60 / 7
Регистрация: 16.05.2010
Сообщений: 632
|
||||||
10.08.2012, 04:16 [ТС] | 23 | |||||
в принципе вариант,хоть и не самый рациональный
всё равно спасибо всем кто отписался Добавлено через 2 часа 50 минут Вот моя нынешняя функция,проблема возникает при записи названия в файл
0
|
179 / 127 / 25
Регистрация: 12.01.2012
Сообщений: 623
|
|
10.08.2012, 04:51 | 24 |
Я совершенно не пойму что делает программа, может и правда стоит произвести очень четкое разграничение, что делать при записи файлов, а что при чтении. Или по крайней мере в отдельную функцию запихнуть с осмысленным названием.
По 80 строке у меня есть подозрение, что синтаксис функции write() таков write( char * customString, long lenOfCustomString) http://www.cplusplus.com/refer... eam/write/ А вы зачем-то передаёте ей размер указателя на char
0
|
60 / 60 / 7
Регистрация: 16.05.2010
Сообщений: 632
|
||||||
10.08.2012, 05:09 [ТС] | 25 | |||||
даже,если сделаю так,то всё равно результат тот же
0
|
179 / 127 / 25
Регистрация: 12.01.2012
Сообщений: 623
|
|
10.08.2012, 05:16 | 26 |
alexey31415, а вы попробуйте во втором параметре strlen(NameOfFiles[i])
0
|
60 / 60 / 7
Регистрация: 16.05.2010
Сообщений: 632
|
|
10.08.2012, 05:21 [ТС] | 27 |
согласен ошибка глупая,не заметил в спешке,но всё равно проблема та же
0
|
179 / 127 / 25
Регистрация: 12.01.2012
Сообщений: 623
|
|
10.08.2012, 05:24 | 28 |
Тогда не знаю. Попробуйте отладочную информацию выводить или даже сразу отладчиком пользоваться, а можно и то и другое
0
|
60 / 60 / 7
Регистрация: 16.05.2010
Сообщений: 632
|
|
10.08.2012, 05:26 [ТС] | 29 |
я и так отладчиком пользуюсь,вылетает ошибка необработанное исключение в ... и идёт адрес блока памяти
0
|
179 / 127 / 25
Регистрация: 12.01.2012
Сообщений: 623
|
|
10.08.2012, 05:30 | 30 |
А можно чисто ради интереса дать этот самый пример входного файла. И что там за заголовки в stdafx?
0
|
60 / 60 / 7
Регистрация: 16.05.2010
Сообщений: 632
|
|
10.08.2012, 05:36 [ТС] | 31 |
в коде предусмотрен вариант когда файла ещё нет,он создаётся,туда записываётся 0(кол-во названий),потом я ввожу название и он записывает название,предварительно записав новое кол-во файлов(1)
вот поэтому файла нет Добавлено через 3 минуты ах да,почему-то не записываются данные при создании файла(если он не был создан) должен быть записан 0,а там пусто
0
|
179 / 127 / 25
Регистрация: 12.01.2012
Сообщений: 623
|
||||||
10.08.2012, 05:42 | 32 | |||||
Ну так как ясень пень, что здесь нулевой элемент никогда не будет инициализрован
1
|
60 / 60 / 7
Регистрация: 16.05.2010
Сообщений: 632
|
|
10.08.2012, 05:44 [ТС] | 33 |
файлы стандартной библиотеки С++
файл выглядеть должен примерно так 2//это кол-во названий файлов 1.txt//сами названия 2.txt и так далее
0
|
10.08.2012, 12:55 | 34 |
Пример сразу с seek() http://www.cplusplus.com/refer... eam/write/
0
|
alexey31415
|
10.08.2012, 13:51
[ТС]
#35
|
0
|
179 / 127 / 25
Регистрация: 12.01.2012
Сообщений: 623
|
|
10.08.2012, 22:01 | 36 |
Ошибку, что я привёл, исправили хотя бы?
Зачем вообще эти seek? Может стоит просто тупо считать весь файл в какой-нибудь список файлов? Все равно при записи в начало файла необходимо считать его в оперативную память, изменить начало строки и только потом производить запись. А считывать построчно при помощи банального std::getline(fstream, filename). Вон, зайди в папку system32, там тысячи файлов, но проводник ведь не вылетает из-за нехватки памяти. Можно ещё, как вариант, зарезервировать первые 10 байт под хранение кол-файлов, и если в середине файла ничего не менялось, то тупо переписывать именно первые 10 байт, в которых указывать новое кол-во файлов. Этот алгоритм можно также распространить и для файлов в середине списка, но это не стоит того, имхо
0
|
60 / 60 / 7
Регистрация: 16.05.2010
Сообщений: 632
|
|
10.08.2012, 22:35 [ТС] | 37 |
согласен,еще одна моя ошибка
теперь данные записываются,спасибо,но я выделяю для каждого названия массив из 32 байтов,а названия могут быть и короче,поэтому когда я открываю созданный файл,то выводится следующее
0
|
60 / 60 / 7
Регистрация: 16.05.2010
Сообщений: 632
|
|||||||||||
10.08.2012, 23:24 [ТС] | 39 | ||||||||||
я сейчас всё перезаписываю
вот собственно функция
в 81 строке
0
|
11.08.2012, 00:22 | 40 | |||||
1
|
11.08.2012, 00:22 | |
11.08.2012, 00:22 | |
Помогаю со студенческими работами здесь
40
Открытие файла на C++ Открытие файла. открытие файла Открытие файла Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |