HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 20.06.2008, 10:46
xaker-boss
Участник форума
Регистрация: 06.03.2007
Сообщений: 283
С нами: 10096166

Репутация: 120
По умолчанию

0verbreaK, Dober'man Прокатило, спасибо вам большое
 
Ответить с цитированием

  #2  
Старый 20.06.2008, 17:28
Nightmarе
Познавший АНТИЧАТ
Регистрация: 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)
 
Ответить с цитированием

  #3  
Старый 20.06.2008, 17:55
t04
Участник форума
Регистрация: 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..
 
Ответить с цитированием

  #4  
Старый 20.06.2008, 17:56
0verbreaK
Постоянный
Регистрация: 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(), узнавая длину последние символы.
 
Ответить с цитированием

  #5  
Старый 20.06.2008, 18:00
t04
Участник форума
Регистрация: 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]),'');
 
Ответить с цитированием

  #6  
Старый 20.06.2008, 18:04
rankor777
Познающий
Регистрация: 11.01.2008
Сообщений: 42
С нами: 9648596

Репутация: 49
По умолчанию

hexb() мне надо вроде....
 
Ответить с цитированием

  #7  
Старый 22.06.2008, 17:34
Nightmarе
Познавший АНТИЧАТ
Регистрация: 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));
на выполнение и всё... вот только где ошибка...
 
Ответить с цитированием

  #8  
Старый 23.06.2008, 01:27
Hellsp@wn
Постоянный
Регистрация: 29.04.2007
Сообщений: 496
С нами: 10018466

Репутация: 588
По умолчанию

CSCA1 := GetProcAddress(hDll, 'CSCA1');
 
Ответить с цитированием

  #9  
Старый 25.06.2008, 08:55
diznt
Постоянный
Регистрация: 31.01.2008
Сообщений: 643
С нами: 9619229

Репутация: 445


По умолчанию

Народ как реализовать так чтобы прога не слишком много жрала памяти (ну то есть по минимуму)
 
Ответить с цитированием

  #10  
Старый 25.06.2008, 12:37
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
С нами: 9702986

Репутация: 479
По умолчанию

Есть ли функция в Windows API, позволяющая получить текущий каталог?
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Wi-Fi, BT] Задай вопрос - получи ответ! Alexsize Беспроводные технологии/Wi-Fi/Wardriving 2569 10.05.2026 13:27
[jQuery] - Задай вопрос, получи ответ Isis PHP 62 25.12.2009 03:25



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.