![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Загрузка exe файла в Memo [D7, XP]
Dmitrijan © (2010-02-11 00:12:00)Уважаемые форумчане, подскажите новичку, мне нужно загрузить exe файл в Memo. Процедурой Memo1.Lines.LoadFromFile ('exefile'); не грузится, а точнее загружает только три символа и все. Обычным же блокнотом .exe открыть можно.
dmitrijan (2010-02-11 01:36:00) [21]Как я понял Memo можно вообще выкинуть, а искать слова по вышесказанному алгоритму. Спасибо за подсказку, буду пробовать.
KilkennyCat (2010-02-11 01:35:00) [22]
> А вот то, что ты имел в виду - это именно "поиск в файле"!
> :)
Я имел ввиду, что инсталлятор оставляет свою метку в определенном месте и определенного размера. Сие позволяет прочитать ее сразу, поиск тут никаким боком, кроме того, вероятность, что в файле будут два и более слова равных заданным признакам достаточно высока.
Германн (2010-02-11 01:33:00) [23]
> dmitrijan © (11.02.10 00:34) [5]
Если не найдешь, могу кинуть исходник, но очень старый (от Д1). Алгоритм понять можно.
KilkennyCat (2010-02-11 01:33:00) [24]и даже бредятину надо писать нормально, мы не индусы. Достаточно одного прогона, с выходом по нахождению, и не надо так часто присваивать цвет, достаточно один раз, в конце.
И еще раз скажу - ненужен тут поиск, и даже вреден, не слушай Германна, он не выспался.
Германн (2010-02-11 01:28:00) [25]
> KilkennyCat © (11.02.10 00:27) [4]
>
> Что-то мне подсказывает, что поиск здесь лишнее, наверняка
> это в определенном месте, по крайней мере, у каждого в отдельности.
>
Когда я советовал "поиск в файле" я имел в виду что-то типа Германн © (11.02.10 01:19) [6]
Но это поиск в буфере, в который читается файл блоками. А вот то, что ты имел в виду - это именно "поиск в файле"! :)
Германн (2010-02-11 01:19:00) [26]
> dmitrijan © (11.02.10 00:34) [5]
>
> Германн, Не получается
Я же тебе советовал искать в файлеА ты ищешь в той бредятине, которую загрузил в мемо из файла метод LoadFromFile. Почувствуй разницу!
Ищи что-то типа "Boyer-Moore-Horspool pattern searching
algorithm".
dmitrijan (2010-02-11 00:34:00) [27]Германн, Не получается, в текстовых находит эти слова, в exe никак.
Вот мой код для txt:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
s1,s2,s3:String;
i:integer;
begin
Memo1.Lines.LoadFromFile('1.txt');
s1:='inno';
s2:='nsis';
s3:='installshield';
for i:=0 to Memo1.Lines.Count-1 do
if Pos(s1, Memo1.Lines.Text)<>0
then
begin
Label1.Font.Color:=clTeal;
Label1.Caption:=(s1);
RichEdit1.Lines.Clear;
RichEdit1.Lines.LoadFromFile('res\inno.doc');
end;
for i:=0 to Memo1.Lines.Count-1 do
if Pos(s2, Memo1.Lines.Text)<>0
then
begin
Label1.Font.Color:=clTeal;
Label1.Caption:=(s2);
RichEdit1.Lines.Clear;
RichEdit1.Lines.LoadFromFile('res\nsis.doc');
end;
for i:=0 to Memo1.Lines.Count-1 do
if Pos(s3, Memo1.Lines.Text)<>0
then
begin
Label1.Caption:=(s3);
end;
if Pos(s1, Memo1.Lines.Text) or Pos(s2, Memo1.Lines.Text) or Pos(s3, Memo1.Lines.Text)=0
then
begin
RichEdit1.Lines.Clear;
Label1.Font.Color:=clRed;
Label1.Caption:=('Инсталлятор не опознан!');
end;
end;
KilkennyCat (2010-02-11 00:27:00) [28]Что-то мне подсказывает, что поиск здесь лишнее, наверняка это в определенном месте, по крайней мере, у каждого в отдельности.
Германн (2010-02-11 00:21:00) [29]
> Там написано название используемого инсталлятора. (Например
> Inno, NSIS и т.д). Собственно это мне и нужно.
Сделай поиск по файлу слов, которые тебе нужны. Найдешь, прочитай и покажи хоть в лейбле, хоть в мемо. Зачем грузить в мемо кучу нечитаемого мусора.
dmitrijan (2010-02-11 00:18:00) [30]Там написано название используемого инсталлятора. (Например Inno, NSIS и т.д). Собственно это мне и нужно.
Германн (2010-02-11 00:14:00) [31]Какая цель загрузки exe-файла в Memo?