Здравствуйте глубоко уважаемые эксперты!!! Как можно сделать чтобы программа читала в файле Fail.Ini под параметром [ie] и заносила в переменную(Ini : string) текст что лежит после Path = C:ProgramFilesInternetExplorerie.exe Заранее огромнейшее спасибо!!!!!!!!!!!!!!
Приветствую Вас, Elvis! Используй TIniFile. uses IniFiles; var Ini:TiniFile; str:string; begin Ini := TIniFile.Create('C:DirFile.ini'); str := Ini.ReadString('ie','path','Default'); Ini.Free; end; Подробнее в хелпе.
Ответ отправлен: 18.11.2002, 17:05 Отправитель: Vladimir Отвечает Idle Sign
Доброе время суток, Elvis! ===== Pro bono publico, no bloody panico! ===== 1) Создаем ини: MyINI: tIniFile.Create ('File.ini') (в uses'ах должен быть прописан модуль inifiles). 2) Читаем Ini := MyINI.ReadString ('ie', 'path', ''); 3) Освобождаем MyINI.Free; ПиС: При этом по умолчанию все ини файлы кладуться в системную директорию (типа C:WINNT), но это легко изменить... Ответ отправлен: 19.11.2002, 11:21 Отправитель: Idle Sign
Вопрос № 289
Здравствуйте!!!!!!!!!!!!1 Артём Шегеда продолжаем вопрос №280 Вы писали: "Здравствуйте, lamachok! Что касается использования невизуальных компонент, то наличие формы для них необязательно. Форма нужна только для реализации интерфейса пользователя. Для невизуальных компонент достаточно выполнить конструктор и настроить свойства. При этом придётся вручную вставить имя используемого модуля (для TNMSMTP, например, это - NMsmtp)."+ пример Спасибо вам за пример, но когда его реализовал и увидел размер проги =200кл, я офигел, но все же не теряю надежды зделать это на api вот код на который вы меня натолкнули unit Email; interface uses Windows, mapi, SusUtils, Classes; ................ function SendEmail(const RecipName, RecipAddress, Subject, Attachment: string): Boolean; function IsOnline: Boolean; ..................... implementation .................. function
SendEmail(const RecipName, RecipAddress, Subject, Attachment: string): Boolean; var MapiMessage: TMapiMessage; MapiFileDesc: TMapiFileDesc; MapiRecipDesc: TMapiRecipDesc; i: integer; s: string; begin with MapiRecipDesc do begin ulRecerved:= 0; ulRecipClass:= MAPI_TO; lpszName:= PChar(RecipName); lpszAddress:= PChar(RecipAddress); ulEIDSize:= 0; lpEntryID:= nil; end; with MapiFileDesc do begin ulReserved:= 0; flFlags:= 0; nPosition:= 0; lpszPathName:= PChar(Attachment); lpszFileName:= nil; lpFileType:= nil; end; with MapiMessage do begin ulReserved := 0; lpszSubject := nil; lpszNoteText := PChar(Subject); lpszMessageType := nil; lpszDateReceived := nil; lpszConversationID :=
nil; flFlags := 0; lpOriginator := nil; nRecipCount := 1; lpRecips := @MapiRecipDesc; if length(Attachment) > 0 then begin nFileCount:= 1; lpFiles := @MapiFileDesc; end else begin nFileCount:= 0; lpFiles:= nil; end; end; Result:= MapiSendMail(0, 0, MapiMessage, MAPI_DIALOG or MAPI_LOGON_UI or MAPI_NEW_SESSION, 0) = SUCCESS_SUCCESS; end; function IsOnline: Boolean; var RASConn: TRASConn; dwSize,dwCount: DWORD; begin RASConns.dwSize:= SizeOf(TRASConn); dwSize:= SizeOf(RASConns); Res:=RASEnumConnectionsA(@RASConns, @dwSize, @dwCount); Result:= (Res = 0) and (dwCount > 0); end; end. я бы мог написать все ошибки при компиляции,но их слишком много, не могли бы вы этот код реализоват и выслать в исходнике, пожалуйста lamachok шлите
туды lamachok@mail.ru
Опять-таки, это MAPI, то есть использование установленных в системе менеджеров, одним из которых является почтовый менеджер, а тот, как известно, уведомляет пользователя об отправке сообщения. Кроме того, в системе может не существовать почтового менеджера (нонсенс, конечно, но всякое бывает...) Поэтому настоятельно рекомендую поковырять QMail. Там писано на чистом API, реализован SMTP протокол. А вот я проверил интересный набор (просто, но со вкусом): http://www.torry.net/vcl/internet/packs/synapse.zip EXE-файл имеет размер 95К (если без BPL) или 44К (если с использованием BPL) Вот исходник моей программы:
program simple; uses SysUtils, Classes, SMTPsend; {$R *.RES} var SMTP : TSMTPSend; t : TStringList; begin
{you must create object for SMTP session} SMTP:=TSMTPSend.Create; t:=TStringList.Create; try t.Text := 'Subject: Probe'#13#13'Hello!'#13'It is a probe message.'; {set address of SMTP server, throw you can send e-mails} SMTP.TargetHost := 'servername'; SMTP.TargetPort := '25'; {begin SMTP session with server} if not SMTP.login then {error connecting to server} Abort; {send e-mail address of sender.} if not SMTP.mailfrom('yourmail@yourhost.com',0) then {server not allow e-mails from this sender} Abort; {send e-mail address of receiver. You may run this line multiply, if e-mail for multiple receivers} if not SMTP.mailto('yourmail@yourhost.com') then {server not allow send e-mail to this receiver from sender address} Abort; // if not SMTP.mailto(EMailOfSecondFirstReceiver) then
{server not allow send e-mail to this receiver from sender address} ; {now send raw data of e-mail stored as text in Stringlist.} {Remember, text data must have headers lines. Practical headers is FROM, TO, DATE and SUBJECT} {If you can send MIME e-mails, you must code it to stringlist first} if not SMTP.maildata(t) then {this e-mail body is not accepted} Abort; {closing session and disconnect from SMTP server} SMTP.logout; finally {destroy SMTP object} t.Free; SMTP.Free; end; end.
Как видишь, очень просто. Ответ отправлен: 19.11.2002, 13:45 Отправитель: Артём Шегеда
Вопрос № 290
Приветствую вас, эксперты. Подскажите, пожалуйста, ссылочку на хороший учебник по дельфям. Есть ли вообще такие в инете, или надо только реальную книгу покупать?
Здравствуйте, Zlo! ===== Pro bono publico, no bloody panico! ===== 1) Лично мне импонирует книга (у нее есть электронный вариант, только нужно поискать) KENT REISDORPH "Teach Yourself Borland Delphi 4 in 21 Days". Это серия книг, к примеру есть под C++ Builder и тоже за 21 день (основы за этот период как раз вдалбливаются). 2) Из печатных вариантов ничего советовать не стану - очень уж их много. 3) Ну и, наконец, книга всех времен и народов - строенная справка, а также документация MSDN (январьский выпуск, помнится занимал 3 диска).
Ответ отправлен: 20.11.2002, 07:50 Отправитель: Idle Sign
Вопрос № 291
Здравствуйте, господа эксперты. Помогите, пожалуйста, реализовать следующее : 1)Запускается прога 2)Просматриваются все файлы в каталоге C:somedir на наличие в файле ключевого слова keyword 3)Если слово найдено - удалить этот файл и искать в следующем файле 4)Если слово не найдено - искать в следующем файле Заранее спасибо.
Приветствую Вас, Nick! ===== Pro bono publico, no bloody panico! ===== 1) это уж как-нибудь сам 2) для поиска всех файлов в каталоге используй FindFirst, FindNext и TSearchRecord, далее читаешь содержимое файла, к примеру, в TStingList.LoadFromFile. Для поиска используй TStingList.Find и/или TStingList.IndexOf. 3) используй DeleteFile и FindNext 4) опять FindNext Ответ отправлен: 21.11.2002, 12:58 Отправитель: Idle Sign
Форма отправки вопроса
Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook"
и "Microsoft Outlook Express". В программе The Bat!
подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте,
что в некоторых браузерах могут стоять запреты на открытие других
окон, а также "чрезмерное" кэширование данных,
при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet
Explorer 5.0+ или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.