![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Zorlag |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 5.11.2003 Репутация: нет Всего: нет |
Уважаемые программтсты! У меня такая ситуация:
мне необходимо чтобы Exe файл моей программы, копировал сам себя в память ( если я не ошибаюсь, это делается с помощью потока??) И из этого отображённого файла нужно прочитать определённую строку. Подскажите, пожалуйста, возможно ли это, и если возможно, то дайте пожалуйста пример кода. Спасибо. |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 1 Всего: 34 |
ну так если твой ехе запушен он уже в памяти
куда ты хочеш его еще копировать? читай любую строку скока хош -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
GetModuleHandle(nil) - базовый адрес EXE...
Уточни, что ты имеешь в виду, под чтением определенной строки... -------------------- С уважением, г-н Посол. |
|||
|
||||
| Zorlag |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 5.11.2003 Репутация: нет Всего: нет |
Я хочу в конец EXE файла добавть текстовую строку, а потом, когда этот файл будет запущен, мне нужно, чтобы он сам из себя прочитал эту строку.
|
|||
|
||||
| Zorlag |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 5.11.2003 Репутация: нет Всего: нет |
Oleg 1973
А как мне из него строку-то прочитать?? Я делаю так: var f:text; s:string; begin assignfile (f, application.exename); reset (f); for i:= 1 to 10 do begin read (f, s[i]); {здесь тоько пример. На самом деле мне нужно прочитать строку из конца файла} end; close (f); end. При этом, конечно возникает ошибка доступа к файлу! |
|||
|
||||
| NiJazz |
|
|||
![]() Jazz coder ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2286 Регистрация: 10.8.2003 Где: Москва Репутация: 6 Всего: 23 |
|
|||
|
||||
| Seti |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 4.12.2003 Репутация: 1 Всего: 1 |
Замечания: 1)f : TextFile; 2)CloseFile(f); 3)Ошибка возникает из-за того, что ты пытаешься запихнуть символ в s[i], в то время как длина этой строки равна нулю. |
||||
|
|||||
| Unregistered |
|
|||
|
Unregistered |
Например, мона сделать CopyMemory(); Тока тута надо всеж знать адрес памяти, откуда читать.
|
|||
|
||||
| Zorlag |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 5.11.2003 Репутация: нет Всего: нет |
Seti
А как сделать что-то типа Seek -- чтобы программа читала не с самого начала, а из определённого места файла?? |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 1 Всего: 34 |
1) ну сам к себе строку добавить немнога проблематично будет при открытом файле
2) ну а если прочитать строку из самого себя то достаточно знать ее смешение в файле и если подумать логически то она уже прочитана так как уже в памяти так что если ее нада передать в качестве параметра (ну для мессаджебокса к примеру) то просто укажи смешение на нее -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| Zorlag |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 5.11.2003 Репутация: нет Всего: нет |
oleg1973
Если можно, можно чуть подробнее о том, что такое смешение? |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 1 Всего: 34 |
ну строка у тебя гдето есть в файле?
если к примеру файл 10кб а строка от начала файла 100байт вот оно и будет смещением -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| Смайлик |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 11.12.2003 Где: Киргизия Репутация: нет Всего: нет |
В принципе в RxLib есть StringHolder (кажется так обзывается) для хранения текстовых строк в файле. Насколько помню через ресурсы и не в конце файла, но может он подойдет?
|
|||
|
||||
| Zorlag |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 5.11.2003 Репутация: нет Всего: нет |
oleg1973
А как реализовать это смещение -- ведь seek для текстового файла не подходит! |
|||
|
||||
| Смайлик |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 11.12.2003 Где: Киргизия Репутация: нет Всего: нет |
Можно F: File of byte; тогда seek пашет |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |