
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
29.11.2007, 11:46:40
|
|||
|---|---|---|---|
|
|||
чтение файла с помощью FileRead |
|||
|
#18+
Здравствуйте. Делаю курсовую по шифрованию содержимого текстового файла. Возникли проблемы с использованием функции FileRead. При чтении текстового файла, в котором количество символов ! = 4, никакаих проблем нет. Но когда в файле содержится 4 символа эта функция возвращает содержимое файла + какая то ерунда. Если 3 символа (или > 4), то опять все нормально... Из-за чего это может быть? Класс: class IOManager { public: void InFile(char *Text,String PathFile); char *OutFile(String PathFile); protected: private: char Text; int iFSeek; }; Метод для считывания файла: char * IOManager::OutFile(String PathFile) // { char * Buffer; int hFile = FileOpen(PathFile, fmOpenRead); // открываем файл для чтения int FileLength = FileSeek(hFile, 0, 2); // определяем длину файла FileSeek(hFile,0,0); // переходим на начало файла Buffer = new char[FileLength]; // выделяем память под слово, которое шифруем (количество символов = количеству символов шифр. слова) FileRead(hFile, Buffer, FileLength); // ! Если шифровали слово "папа", в отладчике видно, // что в переменной Buffer лежит это слово + мусор из нескольких символов FileClose(hFile); return Buffer; }; В программе вызываю метод для чтения из файла: char *Text = Manager->OutFile(PathFile); //чтение из файла в переменную Text с пом метода OutFile Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.11.2007, 11:57:00
|
|||
|---|---|---|---|
|
|||
чтение файла с помощью FileRead |
|||
|
#18+
t0rchBuffer = new char[FileLength]; Buffer = new char[FileLength +1 ]; потому что завершающий нолик нужен. И поставить его не забудь, потому что там мусор лежит. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.11.2007, 14:44:28
|
|||
|---|---|---|---|
|
|||
чтение файла с помощью FileRead |
|||
|
#18+
Карабас БарабасBuffer = new char[FileLength +1 ]; потому что завершающий нолик нужен. И поставить его не забудь, потому что там мусор лежит. +1 уже делал. Тоже не работает. А если мне надо зашифровать "папа", то в файле должно быть написано "папа0"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.11.2007, 15:03:14
|
|||
|---|---|---|---|
|
|||
чтение файла с помощью FileRead |
|||
|
#18+
x_proof Карабас БарабасBuffer = new char[FileLength +1 ]; потому что завершающий нолик нужен. И поставить его не забудь, потому что там мусор лежит. +1 уже делал. Тоже не работает. А если мне надо зашифровать "папа", то в файле должно быть написано "папа0"? Нет. 0 - это в памяти лежит. Чтобы знать где кончается строка, заданная только указателем на память. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.11.2007, 15:05:56
|
|||
|---|---|---|---|
|
|||
чтение файла с помощью FileRead |
|||
|
#18+
Код: plaintext 1. 2. 3. 4. надо Код: plaintext 1. 2. 3. 4. 5. 6. 7. Ты считываешь байты из файла, и добавляешь терминирующий ноль в конец. тогда отладчик поймет где строка кончается. и не только отладчик... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.11.2007, 15:15:49
|
|||
|---|---|---|---|
чтение файла с помощью FileRead |
|||
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.11.2007, 15:38:37
|
|||
|---|---|---|---|
|
|||
чтение файла с помощью FileRead |
|||
|
#18+
Спасибо большое!!! Теперь все работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.11.2007, 15:49:04
|
|||
|---|---|---|---|
|
|||
чтение файла с помощью FileRead |
|||
|
#18+
x_proofСпасибо большое!!! Теперь все работает Только учтите, что в файле также могут быть нуль-байты. Так что, если не уверены в данных, которые будете шифровать, читайте весь файл в буфер, и запоминайте размер. А то если это просто двоичный файл(изображение, документ) нуль байт может попасться внутри самих данных. Наверняка у Вас какой-либо блочный шифр будет, придется всеравно дополнять как-либо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=57&tablet=1&tid=2027733]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 341ms |

| 0 / 0 |
