|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.10.2017, 20:14 | #1 |
Пользователь
Регистрация: 17.11.2015
Сообщений: 62
|
Проблема с файлом, проецируемым в память (Delphi)
Добрый день,
Техническое задание С помощью механизма проецирования в память запишите в обратном порядке содержимое текстового файла. Смысл моего алгоритма в следующем: 1. Создаю объект ядра "Файл"; 2. Считываю размер о.я. "Файл" в переменную Size. 3. Создаю объект ядра "файл, проецируемый в память" 4. Проецирую файловые данные на адресное пространство процесса 5. Далее считываю содержимое файла (pFile) в строку Str. 6. С помощью функции ReverseString переворачиваю строку Str и заношу её в переменную buff. 7. Для промежуточной проверки вывожу buff в поле Edit1.Text 8. Преобразовываю строку buff в PChar и пытаюсь "перезаписать" её в текстовый файл pFile. Проблема заключается в том, что после выполнения пункта 8 содержимое файла не меняется. Может кто подскажет в чём проблема ? Так как первый раз работаю с функциями проецирования в память. Быть может кто-то может подсказать как сделать правильно ? Заранее спасибо! Мой код: Переменные Код:
Код:
|
16.10.2017, 20:41 | #2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Так вы ничего не пишите в файл. Вы только один указатель присвоили другому.
|
16.10.2017, 22:55 | #3 |
Пользователь
Регистрация: 17.11.2015
Сообщений: 62
|
Добавил переменную - указатель на элементы строки buff:string
Код:
Код:
Пример Исходный файл: bsb asdsd dsbsa mama papa 332 Измененный файл: 233 apap amamasbsd dsdsa bsb Не придумал как это предусмотреть. |
16.10.2017, 23:06 | #4 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
pFile - это указатель. При маппинге файл считывается в некоторый буфер, а указатель pFile устанавливается на этот буфер. Далее Вы на основе этого буфера создаёте строку, производите с ней некоторые манимуляции, получаете PChar от нее и присваиваете указателю pFile. Но ведь это не приводит к копированию информации в буфер маппинга. Надо вместо этого использовать CopyMemory
Не успел.. Последний раз редактировалось Black Fregat; 16.10.2017 в 23:06. Причина: Не успел.. |
16.10.2017, 23:08 | #5 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблема с файлом | sokov.timofej | Microsoft Office Access | 3 | 06.09.2017 14:43 |
Проблема с файлом БД | xxx1994 | Помощь студентам | 1 | 25.05.2012 19:32 |
Проблема с файлом | Владимир 123 | Microsoft Office Excel | 16 | 12.12.2010 13:14 |
Проблема с файлом | optimator | Помощь студентам | 7 | 12.11.2010 23:22 |
Проблема с файлом!!! | Styks007 | Операционные системы общие вопросы | 4 | 26.09.2010 16:15 |