![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
Есть код с помощью него к существующему ЕХЕ- файлу дописывается строка которую потом можно прочитать. Как сделать так чтобы дописывалась не строка, а список строк?
unit RW; interface uses Windows, SysUtils, Classes, Controls, Forms, StdCtrls, Buttons, ExtCtrls; type TForm1 = class(TForm) GroupBox1: TGroupBox; Edit1: TEdit; Button1: TButton; GroupBox2: TGroupBox; Edit2: TEdit; Button2: TButton; procedure BitBtn1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; const buff_size=50000; var Form1 : TForm1; f,f1 : file; buff : array[1..buff_size] of byte; long1 : array[1..4] of char; stub_size : longint; read : integer; xdir : string; long2 : array[1..25] of char; stub : string; self1_size : longint; self2_size : longint; h : integer; i : integer; nr_oct : integer; information1 : string; nr_information1 : byte; implementation {$R *.DFM} procedure TForm1.BitBtn1Click(Sender: TObject); var x : byte; i : integer; s : string; begin try xdir:=extractfilepath(application.ExeName ); assignfile(f,xdir+'RESULT.exe'); {$i-} rewrite(f,1); {$i+} begin stub:=xdir+'x.exe'; {$i-} assignfile(f1,stub); reset(f1,1); {$i+} stub_size:=filesize(f1); repeat {$i-} blockread(f1,buff,buff_size,read); if read>0 then blockwrite(f,buff,read); {$i+} until eof(f1); closefile(f1); closefile(f); assignfile(f,xdir+'RESULT.exe'); reset(f,1); seek(f,filesize(f)); blockwrite(f,long1,x); s:=Edit1.text; if s='' then s:='TEST'; for i:=1 to length(s) do long2[i]:=s[i]; x:=length(s); blockwrite(f,long2,x); blockwrite(f,x,1); end; closefile(f); caption:='Cool'; except end; end; procedure TForm1.Button2Click(Sender: TObject); begin xdir:=extractfilepath(application.ExeName ); assignfile(f,xdir+'RESULT.exe'); nr_oct:=12; h:=FileOpen(xdir+'RESULT.exe',fmShareDenyWrite); fileseek(h,-1,2); FileRead(h,nr_information1,1); nr_oct:=12+1+nr_information1; FileSeek(h,-nr_oct,2); FileRead(h,self1_size,4); FileREad(h,self2_size,4); FileRead(h,long1,4); FileRead(h,long2,nr_information1); FileClose(h); Edit2.text:=information1+long2; end; end. -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 14 Всего: 115 |
Wow!
|
|||
|
||||
| FdX |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 13.8.2002 Репутация: нет Всего: нет |
Сырец посмотрел, но разбираться не стал. Просто пиши подряд все строки из массива. |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
Что я не нашол где вы это обсуждали.
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 14 Всего: 115 |
Ну тут такое дело: тема называлась ~У меня появилась новая технология (Кажется так) и она закрыта.
Но это не совсем про склеевание файлов, хотя если чуток подумать то из этой технолоджи это можно реализовать. P.S. Енто самое, если нужен исходник биндера свисни. |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
Ребят вы меня не поняли мне нужно записать и считать не строку, а список строк.
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Я использовал уникальную последовательность символов (десяток байт) для нахождения начала строки, используй такой идентификатор между каждой строкой, или просто записывай их подряд разделяя #13#10 - символами конца строки, потом, после чтения разделишь на отдельные строки.
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
Всем спасибо за комментарии они мне помогли разобраться, как работает код. И я все написал. Тему можно закрывать.
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
![]()
|
| Правила форума "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. |