|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
25.12.2012, 20:13 | #11 |
С++, Delphi
Форумчанин
Регистрация: 24.11.2012
Сообщений: 495
|
Автор хочу вас уберечь.. о том, fread читает до символа EOF поэтому его крайне не стоит использовать.. дабы избежать неприятностей....
я воспользовался функцией fgets для ANSI и fgetws для UNICODE в принципе ошибка у меня прошла. ибо fread возвращал, что он прочитал 0. он не как не мог прочесть закодированый "t." строчку.
Если помог, тут весы есть , Вам не сложно, а мне приятно.
|
25.12.2012, 21:41 | #12 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
Открывайте файл в бинарном режиме...
|
28.12.2012, 22:54 | #13 |
Пользователь
Регистрация: 15.12.2011
Сообщений: 11
|
Возникла проблема и не знаю как исправить.
Я сделал проверку чтобы доходя до конца файла fread-ом, я считывал последние (size-total_read) байт, где size - это размер файла, а total_read кол-во считанных байт. На форуме не удается выложить мой код, поэтому вот ссылка: https://docs.google.com/folder/d/0B_...tqMVRONWs/edit все операции по открытию файлов и их чтение/запись производится в ф-ции: Код:
Код:
И читаем из файла недостающие (size - total_read) байт: Код:
далее я записываю через fread 4 байта, а хотя считывал (size - total_read) байт, но как я не пробовал ничего не помогает. В итоге шифрую файл input.txt файл расшифровывается хорошо кроме последних нескольких символов. Что же может быть, я думаю, что я не правильно записываю последние байты, но уже перепробовал всё, ничего не помогло. |
28.12.2012, 23:21 | #14 | |
С++, Delphi
Форумчанин
Регистрация: 24.11.2012
Сообщений: 495
|
Цитата:
Если помог, тут весы есть , Вам не сложно, а мне приятно.
|
|
28.12.2012, 23:23 | #15 |
Пользователь
Регистрация: 15.12.2011
Сообщений: 11
|
|
28.12.2012, 23:27 | #16 |
С++, Delphi
Форумчанин
Регистрация: 24.11.2012
Сообщений: 495
|
если вы так всё шикарно читаете, не задумываетесь ли вы где там 4 байта ушло? лучше используйте fgets ей не важно.
Если помог, тут весы есть , Вам не сложно, а мне приятно.
|
28.12.2012, 23:36 | #17 |
Пользователь
Регистрация: 15.12.2011
Сообщений: 11
|
хорошо, допустим. Но как я запишу в переменную unsigned long данные которые буду считывать?
|
29.12.2012, 00:09 | #18 | |
С++, Delphi
Форумчанин
Регистрация: 24.11.2012
Сообщений: 495
|
Цитата:
unsigned long 4 байта хотя всё критично от самого вида компилации Код:
//---- и да не забудьте, что дата это уже указатель, на что либо. //----- размер sizeof(data) тут дата принимает целый тип, а не указатель, лонг инт дабл или ваще чё хочешь.
Если помог, тут весы есть , Вам не сложно, а мне приятно.
Последний раз редактировалось Perchik71; 29.12.2012 в 00:13. |
|
29.12.2012, 00:26 | #19 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
Читать двоичные данные через fgets() возможно, но настолько геморойно, что проще использовать fread()
|
30.12.2012, 00:51 | #20 |
Пользователь
Регистрация: 15.12.2011
Сообщений: 11
|
Сделал нормальное чтение/запись, теперь появился ещё вопрос... При неполном заполнении блока я заполняю его нулями, но при расшифровке в тексте эти нули преобразуются в пробелы. Как мне можно убрать эти пробелы? могу ли я как-то обработать последний блок с данными чтобы убрать нули?
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Шифрование файла | by_Trojan | C# (си шарп) | 2 | 07.04.2012 20:28 |
шифрование файла (Assembler) | phantom4eg | Помощь студентам | 2 | 10.04.2010 16:36 |
Шифрование файла. | dip | Помощь студентам | 1 | 04.12.2009 10:17 |
шифрование и дешифрование файла | Анастасия123456789 | Помощь студентам | 1 | 05.05.2009 15:47 |
Реализация BlowFish на Delphi | Unconnected | Общие вопросы Delphi | 2 | 19.02.2009 12:52 |