|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.12.2007, 15:35 | #1 |
Дельфист
Форумчанин
Регистрация: 14.08.2007
Сообщений: 317
|
Как прочитать данные из самого себя
Как мне прочитать данные из самого себя если я знаю позицию в файл откуда надо читать
Вот мой код const size=425472; var code:string; f:Thandle; temp:cardinal; begin f:=createfile(Pchar(application.Exe Name),GENERIC_READ,0,nil,OPEN_EXIST ING,0,0); setfilePointer(f,size,nil,FILE_Begi n); readfile(f,code,100,temp,nil); closehandle(f);
ICQ-465033557
WINDOWS CE THE BEST |
14.12.2007, 16:37 | #2 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
1. Попробуй вызвать CreateFile с такими флагами
CreateFile(Pchar(application.ExeNam e),GENERIC_READ,FILE_SHARE_READ+FIL E_SHARE_WRITE,0,OPEN_EXISTING,0,0); 2. Обьявить переменную Code как pchar
пыщь
|
14.12.2007, 16:44 | #3 |
Дельфист
Форумчанин
Регистрация: 14.08.2007
Сообщений: 317
|
<!!2. Обьявить переменную Code как pchar>
Если я объявлю code как Pchar там можно будет хранить большой текст??
ICQ-465033557
WINDOWS CE THE BEST |
14.12.2007, 16:49 | #4 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
Можно.
GetMem(code, size); ... FreeMem(Code);
пыщь
|
14.12.2007, 18:50 | #5 |
Дельфист
Форумчанин
Регистрация: 14.08.2007
Сообщений: 317
|
не получается вот что у меня за дело!
1.Это я копирую файл в папку какую-то copyfile(Pchar(extractfilepath(appl ication.ExeName)+'Compiler.exe'),pc har(exefile),false); buffer:=codememo.Text; assignfile(f,exefile); append(f); writeln(f,buffer); closefile(f); //exefile-новая папка 2.запускаю winexec(Pchar(exefile),sw_show); 3.в compiler.exe написано const size=425472; var code:string; f:Thandle; temp:cardinal; begin f:=createfile(Pchar(application.Exe Name),GENERIC_READ,0,nil,OPEN_EXIST ING,0,0); setfilePointer(f,size,nil,FILE_Begi n); readfile(f,code,100,temp,nil); closehandle(f); showmessage(code); ВОТ!! в файл записывается но когда открываю то ничего не считывает
ICQ-465033557
WINDOWS CE THE BEST |
14.12.2007, 18:59 | #6 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
assignfile(f,exefile);
append(f); writeln(f,buffer); Не самая лучшая идея открывать бинарник, коим является EXE, как текстовый файл. Используй CreateFile/WriteFile. Я так понял тебе надо к программе дописать текст, чтоб она его с хвоста прочитала и вывела в сообщении? Глянь эту тему http://programmersforum.ru/showthread.php?t=5896 ЗЫ: Хех, Индийский Код: extractfilepath(application.ExeName )+'Compiler.exe'
пыщь
Последний раз редактировалось JTG; 14.12.2007 в 19:07. |
14.12.2007, 19:08 | #7 |
Дельфист
Форумчанин
Регистрация: 14.08.2007
Сообщений: 317
|
да там ничего почти не написано что мне надо мне надо знать где у меня в коде ошибка
ICQ-465033557
WINDOWS CE THE BEST |
14.12.2007, 19:24 | #8 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
assignfile(f,exefile);
append(f); Не уверен, можно ли так делать, может это то же, что открыть exe блокнотом, дописать текст и сохранить. Код при этом само-собой гибнет. Открой сompiler.exe через handle:=CreateFile..., установи указатель в конец и запиши нужные данные через WriteFile(handle, pchar(codememo.Text)... Или так Код:
пыщь
Последний раз редактировалось JTG; 14.12.2007 в 19:28. |
15.12.2007, 18:51 | #9 |
Дельфист
Форумчанин
Регистрация: 14.08.2007
Сообщений: 317
|
Я так пробовал вообще тогла ничего не записывается
ICQ-465033557
WINDOWS CE THE BEST |
16.12.2007, 15:52 | #10 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
пробуем так:
Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как прочитать данные из Repeater? | posdnyaa | БД в Delphi | 0 | 07.04.2008 09:50 |
Покажите себя! | Elefanter | Софт | 20 | 21.03.2008 11:48 |
Pascal//определить длину самого короткого и самого длинного слова в строке | ShnurOK | Помощь студентам | 2 | 16.12.2007 10:43 |
Как мне в асме прочитать данные из файла? | lelicman | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 10.10.2007 09:24 |