
20.06.2008, 10:46
|
|
Участник форума
Регистрация: 06.03.2007
Сообщений: 283
С нами:
10096166
Репутация:
120
|
|
0verbreaK, Dober'man Прокатило, спасибо вам большое
|
|
|

20.06.2008, 17:28
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
С нами:
10018169
Репутация:
1680
|
|
Ещё два вопроса:
1) я в цикле удаляю кучу файлов пути которых прописанны в memo:
for i:=0 to Memo1.Lines.Count-1 do begin
deletefile(Memo1.Lines[i]);
Так может случиться, что один из файлов занят и его нельзя удалить, так как мне подработать код, чтобы он молча игнорил неудаляемые файлы, ничего не выводил никаких ошибок и дальше удалял файлы ???
2) Я передаю из одного memo в другой пути файлов:
в первом лежит текст в виде:
с:\file.exe.lol
с:\file2.exe.exe2.lol
и т.д... много расширений может быть у файла НО последнее точно .lol
Так вот как мне перегнать весь текст из одного мемо в другой чтобы удалилось только последнее расширение??? (.lol)
|
|
|

20.06.2008, 17:55
|
|
Участник форума
Регистрация: 10.01.2007
Сообщений: 140
С нами:
10175096
Репутация:
105
|
|
1
Код:
for i:=0 to Memo1.Lines.Count-1 do
if not deletefile(Memo1.Lines[i]) then
Memo2.Lines.Add('НЕ МОГУ УДАЛИТЬ '+Memo1.Lines[i]);
2
Код:
for i:=0 to Memo2.Lines.Count-1 do
Memo3.Lines.Add(ChangeFileExt(Memo2.Lines[i]),'');
Последний раз редактировалось t04; 20.06.2008 в 18:01..
|
|
|

20.06.2008, 17:56
|
|
Постоянный
Регистрация: 30.04.2008
Сообщений: 323
С нами:
9489537
Репутация:
136
|
|
Nightmarе
1.
Код:
for i:=0 to Memo1.Lines.Count-1 do
begin
if not deletefile(Memo1.Lines[i]) then continue; // к следующему файлу
end;
2.
Отрезай с помощью SetLength(), узнавая длину последние символы.
|
|
|

20.06.2008, 18:00
|
|
Участник форума
Регистрация: 10.01.2007
Сообщений: 140
С нами:
10175096
Репутация:
105
|
|
1
Код:
for i:=0 to Memo1.Lines.Count-1 do
if not deletefile(Memo1.Lines[i]) then
Memo2.Lines.Add('НЕ МОГУ УДАЛИТЬ '+Memo1.Lines[i]);
2
Код:
for i:=0 to Memo2.Lines.Count-1 do
Memo3.Lines.Add(ChangeFileExt(Memo2.Lines[i]),'');
|
|
|

20.06.2008, 18:04
|
|
Познающий
Регистрация: 11.01.2008
Сообщений: 42
С нами:
9648596
Репутация:
49
|
|
hexb() мне надо вроде....
|
|
|

22.06.2008, 17:34
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
С нами:
10018169
Репутация:
1680
|
|
Ещё вопрос, вот код который подгружает DLL и использует её возможности:
Код:
procedure CSCA1(DataAddress:pointer; DataSize:DWORD; Password:PChar); stdcall; external ‘C:\CSCA1.DLL ‘;
procedure TForm1.Button1Click(Sender: TObject);
var
FH,FMH:THandle;
DataAddr:pointer;
FSize:DWORD;
begin
if not OpenDialog1.Execute then exit;
FH:=CreateFile(pchar(OpenDialog1.FileName), GENERIC_ALL, FILE_SHARE_READ,0, OPEN_EXISTING, 0, 0);
FSize:=GetFileSize(FH,nil);
FMH:=CreateFileMapping(FH,0,PAGE_READWRITE,0,FSize,”);
DataAddr:=MapViewOfFile(FMH,FILE_MAP_WRITE,0,0,FSize);
CSCA1(DataAddr,FSize,pchar(Edit1.Text));
UnmapViewOfFile(DataAddr);
CloseHandle(FMH);
CloseHandle(FH);
end;
Мне нужно сначало извлечь из RES файла эту самую DLL, а уж потом её подключить и заюзать.
Делаю так:
Код:
type
TCSCA1 = procedure (DataAddress:pointer; DataSize:DWORD; Password:PChar); stdcall;
var
hDll: DWORD;
CSCA1: TCSCA1;
begin
тут команда на извлечение DLL
hDll := LoadLibrary('C:\CSCA1.DLL');
CSCA1 := GetProcAddress(hDll, 'CSCA1.DLL');
CSCA1(DataAddr,FSize,pchar(Edit1.Text));
FreeLibrary(hDll);
Компилится нормально, но вылетает ошибка:
Этой DLL`ke надо передать только:
CSCA1(DataAddr,FSize,pchar(Edit1.Text));
на выполнение и всё... вот только где ошибка...
|
|
|

23.06.2008, 01:27
|
|
Постоянный
Регистрация: 29.04.2007
Сообщений: 496
С нами:
10018466
Репутация:
588
|
|
CSCA1 := GetProcAddress(hDll, 'CSCA1');
|
|
|

25.06.2008, 08:55
|
|
Постоянный
Регистрация: 31.01.2008
Сообщений: 643
С нами:
9619229
Репутация:
445
|
|
Народ как реализовать так чтобы прога не слишком много жрала памяти (ну то есть по минимуму)
|
|
|

25.06.2008, 12:37
|
|
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
С нами:
9702986
Репутация:
479
|
|
Есть ли функция в Windows API, позволяющая получить текущий каталог?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|