亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mbxsub1.pas

?? 包含常用Internet協(xié)議TCP,UDP、HTTP、FTP、Telnet等
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Author:       Fran鏾is PIETTE
Creation:     Mar 20, 1999
Description:  This program is used to scan an MBX file (Outlook Express) and
              search for subscription messages to one of F. Piette mailing
              lists. It extract EMail address from the subsject and add it
              to a DBF file if not already there. DBF file is automatically
              created if not found in same directory as exe file. You can
              select MBX file using an entry in INI file.
              I use this program to find new subscribers and send a message
              to them asking for subscription postcard.
              This program will not work with Delphi 1 because it uses
              32 bits features such as splitter bar and long strings.
Version:      1.00
EMail:        francois.piette@pophost.eunet.be
              francois.piette@rtfm.be             http://www.rtfm.be/fpiette
Support:      Unsupported code.
Legal issues: Copyright (C) 1999 by Fran鏾is PIETTE
              Rue de Grady 24, 4053 Embourg, Belgium. Fax: +32-4-365.74.56
              <francois.piette@pophost.eunet.be>

              This software is provided 'as-is', without any express or
              implied warranty.  In no event will the author be held liable
              for any  damages arising from the use of this software.

              Permission is granted to anyone to use this software for any
              purpose, including commercial applications, and to alter it
              and redistribute it freely, subject to the following
              restrictions:

              1. The origin of this software must not be misrepresented,
                 you must not claim that you wrote the original software.
                 If you use this software in a product, an acknowledgment
                 in the product documentation would be appreciated but is
                 not required.

              2. Altered source versions must be plainly marked as such, and
                 must not be misrepresented as being the original software.

              3. This notice may not be removed or altered from any source
                 distribution.

              4. You must register this software by sending a picture postcard
                 to the author. Use a nice stamp and mention your name, street
                 address, EMail address and any comment you like to say.

History:


 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
unit MbxSub1;

{$IFDEF VER80}
    Bomb('Sorry, this program uses 32 bits features.');
{$ENDIF}

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  IniFiles, StdCtrls, ExtCtrls, MbxFile, Db, DBTables, Bde, Grids, DBGrids,
  DBCtrls, ComCtrls;

const
  WM_APPSTARTUP      = WM_USER + 1;

type
  TAppBaseForm = class(TForm)
    ToolsPanel: TPanel;
    MbxHandler1: TMbxHandler;
    ScanButton: TButton;
    EMailTable: TTable;
    PageControl1: TPageControl;
    ScanTabSheet: TTabSheet;
    DisplayMemo: TMemo;
    EMailMemo: TMemo;
    Splitter1: TSplitter;
    ViewTabSheet: TTabSheet;
    Panel1: TPanel;
    EMailDBNavigator: TDBNavigator;
    EMailDBGrid: TDBGrid;
    EMailDataSource: TDataSource;
    FindEdit: TEdit;
    SortByDateRadioButton: TRadioButton;
    SortByEmailRadioButton: TRadioButton;
    OpenDialog1: TOpenDialog;
    BrowseButton: TButton;
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure ScanButtonClick(Sender: TObject);
    procedure PageControl1Change(Sender: TObject);
    procedure FindEditChange(Sender: TObject);
    procedure SortByDateRadioButtonClick(Sender: TObject);
    procedure SortByEmailRadioButtonClick(Sender: TObject);
    procedure BrowseButtonClick(Sender: TObject);
  private
    FIniFileName  : String;
    FInitialized  : Boolean;
    FDatabaseName : String;
    FTableName    : String;
    function Extract(Item : String) : String;
    procedure CreateDataTable;
    procedure PackTable(aTable : TTable);
    procedure WMAppStartup(var msg: TMessage); message WM_APPSTARTUP;
    procedure SelectIndex;
  public
    procedure Display(Msg : String);
    property  IniFileName : String read FIniFileName write FIniFileName;
  end;

function RenameToNumberedFile(From : String) : String;
function GetToken(pDelim : PCHar; Src : PChar; var Dst : String): PChar;

var
  AppBaseForm: TAppBaseForm;

implementation

{$R *.DFM}

const
    SectionWindow      = 'Window';   // Must be unique for each window
    KeyTop             = 'Top';
    KeyLeft            = 'Left';
    KeyWidth           = 'Width';
    KeyHeight          = 'Height';
    SectionData        = 'Data';
    KeyMbxFile         = 'MbxFile';
    KeySplitter        = 'Splitter';
    TempFileName       = 'MbxSub.tmp';


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TAppBaseForm.FormCreate(Sender: TObject);
begin
    FIniFileName  := LowerCase(ExtractFileName(Application.ExeName));
    FIniFileName  := Copy(FIniFileName, 1, Length(FIniFileName) - 3) + 'ini';
    FDatabaseName := LowerCase(ExtractFilePath(Application.ExeName));
    FTableName    := 'subscribe.dbf';
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TAppBaseForm.FormShow(Sender: TObject);
var
    IniFile : TIniFile;
begin
    if not FInitialized then begin
        FInitialized := TRUE;

        IniFile      := TIniFile.Create(FIniFileName);
        Width        := IniFile.ReadInteger(SectionWindow, KeyWidth,  Width);
        Height       := IniFile.ReadInteger(SectionWindow, KeyHeight, Height);
        Top          := IniFile.ReadInteger(SectionWindow, KeyTop,
                                            (Screen.Height - Height) div 2);
        Left         := IniFile.ReadInteger(SectionWindow, KeyLeft,
                                            (Screen.Width  - Width)  div 2);
        DisplayMemo.Width := IniFile.ReadInteger(SectionData, KeySplitter, Width div 2);
        MbxHandler1.FileName := IniFile.ReadString(SectionData, KeyMbxFile,
        'c:\Windows\Application Data\Microsoft\Outlook Express\Mail\Dossier24.mbx');
        IniFile.WriteString(SectionData, KeyMbxFile, MbxHandler1.FileName);
        IniFile.Destroy;
        DisplayMemo.Clear;
        EMailMemo.Clear;
        FindEdit.Clear;
        SortByEmailRadioButton.Checked := TRUE;
        PageControl1.ActivePage := ScanTabSheet;
        Caption := 'MbxSub - ' + ExtractFileName(MbxHandler1.FileName);
        PostMessage(Handle, WM_APPSTARTUP, 0, 0);
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TAppBaseForm.FormClose(Sender: TObject; var Action: TCloseAction);
var
    IniFile : TIniFile;
begin
    IniFile := TIniFile.Create(FIniFileName);
    IniFile.WriteInteger(SectionWindow, KeyTop,      Top);
    IniFile.WriteInteger(SectionWindow, KeyLeft,     Left);
    IniFile.WriteInteger(SectionWindow, KeyWidth,    Width);
    IniFile.WriteInteger(SectionWindow, KeyHeight,   Height);
    IniFile.WriteInteger(SectionData,   KeySplitter, DisplayMemo.Width);
    IniFile.Destroy;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TAppBaseForm.WMAppStartup(var msg: TMessage);
var
    I       : Integer;
begin
    Update;
    EMailTable.DatabaseName := FDatabaseName;
    EMailTable.TableName    := FTableName;
    try
        EMailTable.Open;
    except
        on E:EDBEngineError do begin
            if E.Errors[0].ErrorCode = DBIERR_NOSUCHTABLE then begin
                Display('Missing datafile. Creating a new file.');
                CreateDataTable;
                EMailTable.Open;
            end
            else if E.Errors[0].ErrorCode = DBIERR_NOSUCHINDEX then begin
                Display('Missing index file. Creating new index file.');
                DeleteFile(FDatabaseName + TempFileName);
                RenameFile(FDatabaseName + FTableName, FDatabaseName + TempFileName);
                CreateDataTable;
                DeleteFile(FDatabaseName + FTableName);
                RenameFile(FDatabaseName + TempFileName, FDatabaseName + FTableName);
                PackTable(EMailTable);
                EMailTable.Open;
            end
            else if (E.Errors[0].Category = ERRCAT_DATACORRUPT) and
                    (E.ErrorCount > 1) and
                    (UpperCase(ExtractFileExt(E.Errors[1].Message)) = '.MDX') then begin
                Display('Corrupt index file. Rebuilding index file.');
                DeleteFile(FDatabaseName + TempFileName);
                RenameFile(FDatabaseName + FTableName, FDatabaseName + TempFileName);
                CreateDataTable;
                DeleteFile(FDatabaseName + FTableName);
                RenameFile(FDatabaseName + TempFileName, FDatabaseName + FTableName);
                PackTable(EMailTable);
                EMailTable.Open;
            end
            else if E.Errors[0].ErrorCode = DBIERR_HEADERCORRUPT then begin
                Display('Corrupt data file.');
                Display('Save corrupted file to: ''' +
                             RenameToNumberedFile(FDatabaseName +
                                                  FTableName) +
                             '''');
                Display('Creating new data file.');
                CreateDataTable;
                EMailTable.Open;
            end
            else begin
                Display(E.ClassName + ': ' + E.Message);
                for I := 0 to E.ErrorCount - 1 do
                    Display(IntToStr(E.Errors[I].ErrorCode) + '/' +
                            IntToStr(E.Errors[I].Category) +
                            ': ' + E.Errors[I].Message);
            end;
        end;
    end;
    EMailTable.Close;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TAppBaseForm.Display(Msg : String);
begin
    DisplayMemo.Lines.BeginUpdate;
    try
        if DisplayMemo.Lines.Count > 200 then begin
            while DisplayMemo.Lines.Count > 200 do
                DisplayMemo.Lines.Delete(0);
        end;
        DisplayMemo.Lines.Add(Msg);
    finally
        DisplayMemo.Lines.EndUpdate;
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
//Fri, 19 Mar 1999 18:50:07 +0100
function ExtractDate(S : String) : TDateTime;
var
    P : PChar;
    Token : String;
    Year, Month, Day : Word;
begin
    P := PChar(S);
    if P = nil then begin
        Result := 0;
        Exit;
    end;
    // Get day of week
    P := GetToken(' ', P, Token);
    Token := LowerCase(Copy(Trim(Token), 1, 3));
    if not ((Token = 'mon') or (Token = 'tue') or
            (Token = 'wed') or (Token = 'thu') or
            (Token = 'fri') or (Token = 'sat') or (Token = 'sun')) then
        raise Exception.Create('Invalid day name: ' + S);

    // get day
    P := GetToken(' ', P, Token);
    Day := StrToInt(Trim(Token));

    // get month
    P := GetToken(' ', P, Token);
    Token := LowerCase(Trim(Token));
    if Token = 'jan' then
        Month := 1
    else if Token = 'feb' then
        Month := 2
    else if Token = 'mar' then
        Month := 3
    else if Token = 'apr' then
        Month := 4
    else if Token = 'may' then
        Month := 5
    else if Token = 'jun' then
        Month := 6
    else if Token = 'jul' then
        Month := 7
    else if Token = 'aug' then

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩亚洲综合在线 | 亚洲国产精品自拍| 久久精品999| 日本精品免费观看高清观看| 91精品国产综合久久精品| 亚洲欧洲精品一区二区三区不卡| 免费看欧美美女黄的网站| 一本色道久久综合狠狠躁的推荐 | 日本久久精品电影| 久久免费偷拍视频| 麻豆国产精品一区二区三区 | 日韩美一区二区三区| 日韩理论片网站| 国产乱子伦视频一区二区三区| 欧美日韩亚洲国产综合| 国产精品国产三级国产a | 日本一区二区三区电影| 日韩中文字幕区一区有砖一区| 91在线精品一区二区| 欧美韩国一区二区| 国产精品一区二区久久精品爱涩| 欧美一区二视频| 视频一区二区中文字幕| 91豆麻精品91久久久久久| 国产精品成人网| 波多野结衣一区二区三区| 国产欧美一二三区| 国产精品一二三四| 久久精品亚洲一区二区三区浴池| 美女视频免费一区| 欧美一级理论片| 美女爽到高潮91| 2019国产精品| 国产91精品一区二区麻豆网站 | 国产精品久久久久aaaa樱花| 国产成人鲁色资源国产91色综| 久久夜色精品一区| 国产九九视频一区二区三区| 精品国产免费一区二区三区四区 | 粉嫩一区二区三区性色av| 精品久久久久久久久久久院品网| 全国精品久久少妇| 精品国产乱码久久久久久图片| 久久精品999| 欧美激情自拍偷拍| 91在线精品一区二区| 一区二区三区四区av| 精品污污网站免费看| 日韩影院在线观看| 精品国产乱码久久久久久浪潮| 国产在线精品一区二区不卡了| 2021国产精品久久精品| 欧美大度的电影原声| 奇米亚洲午夜久久精品| 日韩欧美国产综合在线一区二区三区| 国产欧美一区二区精品秋霞影院| 福利一区福利二区| 一区二区三区美女视频| 欧美精品一级二级三级| 国产精品亚洲人在线观看| 国产精品三级在线观看| 欧美在线一区二区三区| 美国av一区二区| 国产精品久久久久久福利一牛影视| 在线观看亚洲a| 狠狠网亚洲精品| 亚洲欧美日韩国产另类专区| 91精品久久久久久久91蜜桃| 成人夜色视频网站在线观看| 亚洲大片一区二区三区| 国产欧美精品一区二区三区四区 | 欧美久久久影院| 国产精品18久久久久久vr| 亚洲乱码国产乱码精品精小说 | 欧美日韩国产一二三| 国产精品一区二区久激情瑜伽| 一区二区三区免费看视频| 欧美一区二区三区在线电影| 99久久久久免费精品国产| 免费看日韩a级影片| 亚洲欧美日韩人成在线播放| 精品福利在线导航| 欧美巨大另类极品videosbest| 粉嫩一区二区三区在线看| 人人爽香蕉精品| 夜夜揉揉日日人人青青一国产精品 | 欧美日韩国产精选| 国产精品一级在线| 青青草国产成人av片免费| 亚洲欧美视频在线观看| 国产天堂亚洲国产碰碰| 91精品国产高清一区二区三区蜜臀 | 激情综合五月天| 亚洲国产一二三| 亚洲欧洲色图综合| 精品少妇一区二区三区| 欧美精品第1页| 色香蕉成人二区免费| 粉嫩嫩av羞羞动漫久久久| 国精产品一区一区三区mba桃花| 亚洲国产日韩在线一区模特| 亚洲日本韩国一区| 中文字幕欧美日本乱码一线二线| 欧美一级在线观看| 欧美剧在线免费观看网站| 欧美在线看片a免费观看| 91网站在线播放| 99精品视频一区二区| 成人性生交大片免费看视频在线| 国产在线精品国自产拍免费| 捆绑紧缚一区二区三区视频| 欧美a级一区二区| 蜜桃久久av一区| 麻豆成人91精品二区三区| 奇米777欧美一区二区| 美国三级日本三级久久99| 麻豆一区二区99久久久久| 麻豆91在线观看| 精品一区二区日韩| 极品少妇xxxx偷拍精品少妇| 久久成人精品无人区| 韩国一区二区在线观看| 美女视频黄久久| 国产激情视频一区二区在线观看| 国产成人精品影视| a4yy欧美一区二区三区| 色拍拍在线精品视频8848| 欧洲精品中文字幕| 51精品秘密在线观看| 日韩欧美专区在线| 国产三级欧美三级日产三级99 | 日韩免费高清av| 久久网这里都是精品| 中文字幕第一页久久| 亚洲美女区一区| 肉丝袜脚交视频一区二区| 久久99国产精品尤物| 粉嫩av一区二区三区| 91激情五月电影| 日韩一区二区三区四区| 国产欧美日韩视频一区二区| 亚洲美女在线国产| 美女性感视频久久| 成人av动漫在线| 在线播放国产精品二区一二区四区| 日韩欧美在线一区二区三区| 久久久亚洲综合| 亚洲午夜久久久久久久久电影网| 麻豆成人久久精品二区三区红| 盗摄精品av一区二区三区| 色乱码一区二区三区88| 日韩一区二区电影网| 国产精品你懂的| 日本一区中文字幕| 波多野结衣一区二区三区| 91精品国产欧美一区二区| 国产精品全国免费观看高清| 三级欧美韩日大片在线看| 波多野结衣在线aⅴ中文字幕不卡| 欧美日韩一区三区| 国产精品视频一二三| 美女爽到高潮91| 91麻豆免费视频| 久久亚洲影视婷婷| 午夜一区二区三区在线观看| 不卡一区在线观看| 日韩一区二区高清| 一区二区成人在线视频| 国产成人精品www牛牛影视| 欧美日韩成人一区二区| 综合精品久久久| 国产激情91久久精品导航| 欧美一区二区精品久久911| 亚洲欧美成aⅴ人在线观看| 精品一区二区精品| 欧美精品vⅰdeose4hd| 亚洲视频精选在线| 国产99久久久国产精品免费看 | 欧美日韩高清一区二区三区| 久久精品一区八戒影视| 蜜桃视频一区二区三区在线观看| 91成人国产精品| 亚洲欧美偷拍三级| 成人av高清在线| 国产网红主播福利一区二区| 美女网站一区二区| 在线播放中文字幕一区| 亚洲一区免费视频| 日本高清不卡一区| 亚洲欧美韩国综合色| 91论坛在线播放| 中文字幕一区在线观看视频| 懂色av中文一区二区三区| 久久久久久综合| 国产精品一区一区| 国产欧美一区二区精品婷婷| 高清在线不卡av| 中文字幕免费一区| 成人动漫一区二区三区| 中文天堂在线一区|