|
|
|
чтение файла с помощью 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:46:40 |
|
||
|
чтение файла с помощью FileRead
|
|||
|---|---|---|---|
|
#18+
t0rchBuffer = new char[FileLength]; Buffer = new char[FileLength +1 ]; потому что завершающий нолик нужен. И поставить его не забудь, потому что там мусор лежит. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2007, 11:57:00 |
|
||
|
чтение файла с помощью FileRead
|
|||
|---|---|---|---|
|
#18+
Карабас БарабасBuffer = new char[FileLength +1 ]; потому что завершающий нолик нужен. И поставить его не забудь, потому что там мусор лежит. +1 уже делал. Тоже не работает. А если мне надо зашифровать "папа", то в файле должно быть написано "папа0"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2007, 14:44:28 |
|
||
|
чтение файла с помощью FileRead
|
|||
|---|---|---|---|
|
#18+
x_proof Карабас БарабасBuffer = new char[FileLength +1 ]; потому что завершающий нолик нужен. И поставить его не забудь, потому что там мусор лежит. +1 уже делал. Тоже не работает. А если мне надо зашифровать "папа", то в файле должно быть написано "папа0"? Нет. 0 - это в памяти лежит. Чтобы знать где кончается строка, заданная только указателем на память. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2007, 15:03:14 |
|
||
|
чтение файла с помощью FileRead
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. надо Код: plaintext 1. 2. 3. 4. 5. 6. 7. Ты считываешь байты из файла, и добавляешь терминирующий ноль в конец. тогда отладчик поймет где строка кончается. и не только отладчик... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2007, 15:05:56 |
|
||
|
чтение файла с помощью FileRead
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2007, 15:15:49 |
|
||
|
чтение файла с помощью FileRead
|
|||
|---|---|---|---|
|
#18+
Спасибо большое!!! Теперь все работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2007, 15:38:37 |
|
||
|
чтение файла с помощью FileRead
|
|||
|---|---|---|---|
|
#18+
x_proofСпасибо большое!!! Теперь все работает Только учтите, что в файле также могут быть нуль-байты. Так что, если не уверены в данных, которые будете шифровать, читайте весь файл в буфер, и запоминайте размер. А то если это просто двоичный файл(изображение, документ) нуль байт может попасться внутри самих данных. Наверняка у Вас какой-либо блочный шифр будет, придется всеравно дополнять как-либо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2007, 15:49:04 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34975241&tid=2027733]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
243ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 191ms |
| total: | 496ms |

| 0 / 0 |
