Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > У меня появилась новая технология но коечто неясно


Автор: RA 30.5.2002, 17:43
Господа и в часности вит. У меня появилась новая технология записи и чтения информации в фаил.

В крации о проблеме:

Я вот тут раздобыл код программы каторая записывает, ну к примеру строчку из поля едит1 в любую другую программу в часности в exe'шник, но мне к сожалению нехватает знаний чтобы создать такой exe'шник который смогбы после такой записи прочесть информацию из самого себя.

(мой код)
программа 1 записывает текст в программу 2 и может его оттуда прочитать

(а это то что мне нужно, тема вопроссссса)
программа 2 считывает текст из самой себя будучи запущенной.

Здесь я выложил код внешней записи и чтения
Код


unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 StdCtrls;

type
 TForm1 = class(TForm)
   Edit1: TEdit;
   ButtonRead: TButton;
   OpenDialog1: TOpenDialog;
   eport: TEdit;
   ButtonWrite: TButton;
   ButtonFile: TButton;
   Edit3: TEdit;
   procedure ButtonReadClick(Sender: TObject);
   procedure ButtonFileClick(Sender: TObject);
   procedure ButtonWriteClick(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;
 const
buff_size=50000;

var
 Form1: TForm1;
 buf:array[1..2218] of Char;
 z,i:integer;
 port:string;
 placesrv:longint;
 F,F2:File;
implementation

{$R *.DFM}

procedure TForm1.ButtonReadClick(Sender: TObject);
begin
 AssignFile(F, edit3.Text);
 {$i-}
 Reset(F, 1);
 {$i+}
 if (IOResult = 0) then
 begin
  Seek(F,placesrv+245);
  BlockRead(F,buf,9);
  port:=string(buf);
  for i:=1 to 9 do if port[i]=chr(241) then break;
  port:=copy(port,1,i-1);
  eport.Text:=(port);
  CloseFile(F);

end;
end;


procedure TForm1.ButtonFileClick(Sender: TObject);
begin
opendialog1.Execute;
Edit3.text:=opendialog1.filename;
end;

procedure TForm1.ButtonWriteClick(Sender: TObject);
begin
AssignFile(f,edit3.text);
{$I-} Reset(f,1); {$I+}
If IOResult = 0 then
 begin

for i:=1 to 9 do buf[i]:=chr(241);
Seek(F,placesrv+245);
for i:=1 to length(edit1.text) do
buf[i]:=Edit1.text[i];
BlockWrite(F,buf,9);
CloseFile(F);
end;
end;
end.


или можно скачать исходник вот тут
http://rwtest.narod.ru
http://rwtest.nm.ru

Автор: Vit 30.5.2002, 17:49
Уже обсуждалась тема открытия хорошо заблокированного файла, посмотри сюда:

http://www.forum.vingrad.ru/cgi-bin/newforum/ikonboard.cgi?act=ST;f=2;t=1048

кстати тот код что я писал должен работать, только открывай поток как:

TFileStream.create('c:\MyFile.doc', fmShareDenyNone)

Автор: RA 30.5.2002, 18:10
Цитата(Vit @ 30.5.2002, 18:49)
Уже обсуждалась тема открытия хорошо заблокированного файла, посмотри сюда:

http://www.forum.vingrad.ru/cgi-bin/newforum/ikonboard.cgi?act=ST;f=2;t=1048

кстати тот код что я писал должен работать, только открывай поток как:

TFileStream.create('c:\MyFile.doc', fmShareDenyNone)

спасибо гляну чё там.

Да кстати про тот код я незнаю почему но там вдруг появились эти глюки с последовательностью букв и цифр. То их небыло то они снова появился . блин полтергейст. :sneaky2

Автор: RA 30.5.2002, 18:57
ОООоооооо нет я пытался чето съделать но боюсь без помощи из вне мне необойтись

Автор: Vit 30.5.2002, 19:56
Ладно, пришли мне код, я посмотрю

Автор: RA 31.5.2002, 10:02
Vit я вконце сообщения дал линк на скачку если ты его незаметил то на ещё раз http://rwtest.nm.ru/readwrite.rar

Автор: Vit 31.5.2002, 15:43
Ты его наверное новым RAR паковал, я его распаковать не могу, пока на работе новый RAR не установлен...

Автор: RA 31.5.2002, 16:59
Вот перепаковал старым ZiPom теперь
http://rwtest.nm.ru/7.zip

Автор: Vit 31.5.2002, 20:11
Попробуй после AssignFile поставь:

FileMode:=fmOpenRead;

Это позволит открыть файл только для чтения.

Автор: Vit 31.5.2002, 20:15
Вот еще несколько мыслей:

http://www.forum.vingrad.ru/cgi-bin/newforum/ikonboard.cgi?act=ST;f=32;t=869;st=0

Автор: RA 1.6.2002, 14:37
Даже стыдно что это было так просто. :(

Вит спасибо !  
Можно я тебя добавлю в About

Автор: Vit 1.6.2002, 15:09
Дык ты там небось троян или вирус пишешь? Самое наверно оно, чтобы добавлять меня в About.  :D  :D  :D  :D

На самом деле добавляй если хочешь, мне все равно.

Автор: RA 2.6.2002, 10:35
Цитата(Vit @ 01.6.2002, 16:09)
Дык ты там небось троян или вирус пишешь? Самое наверно оно, чтобы добавлять меня в About.  :D  :D  :D  :D

На самом деле добавляй если хочешь, мне все равно.

Нет не угодал! Не троян и невиру . А программу удалённого администрирования для компьютерного клуба.

Автор: Vit 2.6.2002, 14:53
Да? А клуб знает об этом администрировании?  :D  :D  :D  :D


Автор: Song 2.6.2002, 16:31
Обычно для достижения поставленной автором вопроса цели используют TMemoryStream и TFileStream. Но можно и CreateFile, если лень поток создавать :)

Автор: Vit 2.6.2002, 18:31
To song:
  тут долгая история, были и потоки, я их предлагал, но похоже Radmin пока решил остановится на таком способе.

Автор: Song 2.6.2002, 18:39
Да, если четсно мне было в лом всё перечитывать. К тому же я думаю, что задача уже давным-давно решена, в ней нет ничего сложного, просто народ флеймит  :D

Автор: RA 2.6.2002, 19:53
Ошибаетесь товарищь Song. Эта тема меня давно мучала. А то что сроки здачи программы уже близки, заставило меня напряч Vit'a.

Автор: RA 2.6.2002, 19:57
Цитата(Vit @ 02.6.2002, 15:53)
Да? А клуб знает об этом администрировании?  :D  :D  :D  :D

Намёк ясен. Но это не то очём ты подумал я этим уже почти неувлекаюсь.
и мне ненравится когда этим занимаются другие, ибо поэтому в исходном коде отсутсвует одна маленькая и очень важная строчечка, ограничевающая число записи.

Автор: Vit 2.6.2002, 20:49
Не обижайся пожалуйста, я просто шутю.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)