廣告

2024 年 5 月
 12345
6789101112
13141516171819
20212223242526
2728293031  

彙整

Word存檔類型參數列表(寫程式會用到)

最近要用DELPHI 開 WORD 然後將文件轉存成純文字檔會參考用到。

WordApp.ActiveDocument.SaveAs(szTxtFile, 2); 就可以存成純文字檔了。

http://msdn.microsoft.com/en-us/library/bb238158.aspx

WdSaveFormat Enumeration

何為樞紐分析表?

何為樞紐分析表?它最主要的功用何在呢?簡單的說,就是把基本的資料區分整理好後,透過樞紐分析表來達成各個項目的顯示與最後加總的結果,並可快速切換並得到所要知道的資料列表。

還是不懂嗎?那看看下面動態基楚教學吧,應該就會懂了。

http://www.fjweb.fju.edu.tw/tsaur/AVI/Excel/014Data/Excel-01410PivotTable/Excel%E7%9A%84%E6%A8%9E%E7%B4%90%E5%88%86%E6%9E%90%E8%A1%A8.htm

DELPHI使用ADOQuery的動態參數注意事項

WGLProcstat2Query.Close; WGLProcstat2Query.SQL.Clear; WGLProcstat2Query.SQL.Add(‘select * from dbo.gdsinfomt, dbo.procstat’); WGLProcstat2Query.SQL.Add(‘where ((dbo.gdsinfomt.gdsno=:E_gdsno) and (dbo.procstat.gdsno=:E_gdsno))’); //Roger 20091201 動態參數若使用相同的參數名稱兩個以上,請改用陣列方式,並把每個參數都當成獨立參數 WGLProcstat2Query.Parameters[0].Value:= Trim(GdsNoEdit.Text); WGLProcstat2Query.Parameters[1].Value:= Trim(GdsNoEdit.Text); WGLProcstat2Query.Open; […]

使用DELPHI列印EXCEL所有sheet文件

程式Source

然後重點在於我給了兩個變數 var     ExcelApp,Excelall : Variant;

ExcelApp:=CreateOleObject(‘Excel.Application’); <==創建EXCEL應用程式 ExcelApp.Workbooks.Open(tmpFilename); <==正常開啟檔案 Excelall := ExcelApp.Workbooks.Open(tmpFilename);//可列印全部SHEET <==把開啟檔案的狀態給Excelall

最後再使用 Excelall.printout 即可全部的Sheet都列印出來,關閉Excel還是要用ExcelApp.quit來關,而不是 Excelall.quit。

列印作用中的sheet則用 ==> ExcelApp.ActiveSheet.PrintOut 即可

要預覽可帶參數 ==> Excelall.printout(Copies:=1, Collate:=True, […]

MySQL 的備份及復原

MYSQL 資料庫 備份 […]

自動維護備份資料(排程、指定保留日期、多任務)

大部份的系統自動備份都沒有問題,但是如果是每天依日期備份,長期下來備份的檔案越來越多,就需要人工手動去檢查刪除,很不友善,於是自己使用破破的 DELPHI 功力勉強擠出個管理指定目錄內的檔案,會自動刪除符合條件的檔案。

主程式下載:自動維護備份資料(排程、指定保留日期、多任務).rar

DELPHI使用AES加解密密碼

這通常是運用在資料庫內有密碼的時候,不希望顯示的是明碼,所以要透過加密解密的動作來實現這個需求,這邊使用的是AES加密功能。

DELPHI 用的 AES 檔案 下載

此範例程式(D7)已含AES檔案:下載

程式執行:

將字串加密

將字串解密還原

 

將 28295_AESDemo.zip 解壓縮後三個檔案 ElAES.dcu ElAES.pas ElAES.txt COPY 欲撰寫程式的同一目錄下面

將(ElAES, Math) USES進程式

unit hoststatus;

interface

uses     ……….ElAES, Math;

 

//AES加解密用到的 Function =========================== function Tform1.StringToHex(S: string): […]

使用DELPHI連線ACCESS資料庫

建立ACCESS資料庫

檔名123.mdb,資料表格如下:

隨便手動給兩三筆測試資料。

 

將資料庫設定密碼123:

須使用開啟舊檔方式開起獨占模式,才可設定密碼。

開啟DELPHI,在Form表單上拉 TADOConnection 元件,並點選ConnectionString設定連線資料

選 Jet 4.0 OLE DB Provider

  資料庫可以設檔名即可,不用設定目錄,但是必需要跟應用程式執行檔放在同個目錄下。

設定連線密碼。

可按測試連線,若可正常連線即可看到成訊息。

 

Delphi簡易連線測試:

拉入元件

DBGrid1:TDBGrid

ADOQuery1:TADOQuery

DataSource1:TDataSource

 

設定ADOQuery1:

將Connection屬性設為ADOConnection1(TADOConnection元件)

 

設定DataSource1:

將DataSet屬性設為ADOQuery1

 

設定DBGrid1資料表:

點選DBGrid1元件,將DataSource屬性設定為DataSource1

 

程式碼撰寫測試連線資料庫:

讓程式視窗建立時就順便執行SQL查詢

procedure TForm1.FormCreate(Sender: TObject); begin   ADOQuery1.Close;   ADOQuery1.SQL.Clear;   ADOQuery1.SQL.Add(‘select * from userdata’);   ADOQuery1.Open; end;

 

執行程式會要求輸入資料庫帳號密碼的問題:

將ADOConnection1 […]

監控主機狀態程式(使用PING)

下面程式是使用DELPHI寫的,主要是使用PING判定受監控的主機是否還活著(有PING的回應),因為是門外漢,所以寫的不好,但自己用起來覺得堪用就是了…………….

主要功能如下,監控列表主機,固定時間秒數會對每台監控主機執行PING的工作,判定兩次回應值的平均值是否超過自訂PING回應值,來判定主機是否還活著,若判定死機,則會寄信給指定的帳號,達到使用MAIL通知管理者機器有異常Ping無回應的情形發生。減少透過使用者告知才知道機器掛點的機會。

程式分享路徑:host-status.rar

1.解壓縮後將這兩個檔案放在同目錄下

2.執行 hoststatusP.exe

3.設定相關參數:

第一次使用請先設定相關參數。

 

3.1受偵測主機管理:這裡可以管理欲監控的主機。

 

3.2收件人管理:當異常發生時候,系統會寄警告信給這邊列表的收件人。

 

3.3寄件者設定:可設定當使用者收到警告信的寄件人郵件位置,但是統一顯示名稱為Host-Status,代表是監控主機寄出的信。

 

3.4   設定郵件主機的MX位置,要寄信,這個一定要設定對才行,不然會找不到郵件伺服器喔。

 

3.5   SMTP認證設定:如果要寄信給郵件主機以外的人,有些郵件伺服器會有SMTP認證機制,通過帳號密碼認證,才能透過這台MAIL SERVER轉寄給其他台MAIL SERVER的使用者,如果大家都可以透過任何郵件主機寄信,那可就天下大亂了,一堆廣告信就會把這些郵件主機當跳板發送,是多麼可怕的一件事阿~~,如果想自己架設MAIL SERVER,請記得最基本的安全就是要設定好Relay的方式,別讓自己的MAIL SERVER門戶大開讓大家都可透過您自己架的MAIL SERVER寄信了。

 

3.6 上面設定都好了之後,可以透過此功能寄發測試信看看寄信功能是否正常。

 

3.7 設定偵測間隔秒數:每次啟動預設60秒為一週期,每60秒對列表主機錯PING測試。

 

3.8 PING安全值:系統是抓取兩次PING的回應時間平均值作比對,可以防偶發性一次失敗的情形,通常機器死機後,回應時間月4800~5000,所以預設值抓2500,就是偶發性依次失敗,第二次只要正常回應,也就不列入異常範圍內。

 

4. 啟動與結束偵測:預設停止偵測,”系統設定”必須是在停止偵測的狀態下才能設定。點一下即可啟動。

啟動後變綠色,秒數也會開始倒數。

 

5. 偵測的結果會秀在主頁面上:

 

程式開放分享,程式內容很乾淨,不會有微軟或是木馬偷偷收集資料的行為(想要也不會寫,呵呵),並沒有啥特別限制,只要不做商業販售牟利的行為即可。

程式分享路徑:host-status.rar

寄信用Indy元件 TIdsmtp 與 TIdmessage 使用範例(動態創建)

紅字部份為手動加入程式,建立個按鈕,按鈕程序如下:

unit Unit1;

interface

uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,   Dialogs, StdCtrls, IdMessage, IdBaseComponent, IdComponent,   IdTCPConnection, IdTCPClient, IdMessageClient, IdSMTP;

type   TForm1 = class(TForm)     Button1: TButton; […]