capturemainMLSD.pas 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. { $HDR$}
  2. {**********************************************************************}
  3. { Unit archived using Team Coherence }
  4. { Team Coherence is Copyright 2002 by Quality Software Components }
  5. { }
  6. { For further information / comments, visit our WEB site at }
  7. { http://www.TeamCoherence.com }
  8. {**********************************************************************}
  9. {}
  10. { $Log: 16038: capturemainMLSD.pas
  11. {
  12. { Rev 1.0 2/13/2003 03:04:10 PM JPMugaas
  13. { Box tests and capture program for MLSD output. We handle that separately
  14. { from regular LIST data.
  15. }
  16. {
  17. { Rev 1.0 11/12/2002 09:23:10 PM JPMugaas
  18. { Initial check in. Import from FTP VC.
  19. }
  20. unit capturemainMLSD;
  21. interface
  22. uses
  23. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  24. Dialogs, StdCtrls, IdIntercept, IdLogBase, IdLogEvent, IdBaseComponent,
  25. IdComponent, IdTCPConnection, IdTCPClient, IdFTP, IdFTPList;
  26. type
  27. TfrmCapture = class(TForm)
  28. mmoLog: TMemo;
  29. chkUsePasv: TCheckBox;
  30. edtUsername: TEdit;
  31. edtPassword: TEdit;
  32. edtHost: TEdit;
  33. edtFileName: TEdit;
  34. lblHost: TLabel;
  35. lblUserName: TLabel;
  36. lblPassword: TLabel;
  37. lblCaptureFileName: TLabel;
  38. btnGo: TButton;
  39. btnBrowse: TButton;
  40. svdlgCapture: TSaveDialog;
  41. IdFTPCapture: TIdFTP;
  42. IdLog: TIdLogEvent;
  43. edtRemoteDir: TEdit;
  44. lblRemoteDir: TLabel;
  45. edtParams: TEdit;
  46. lblParameters: TLabel;
  47. procedure btnBrowseClick(Sender: TObject);
  48. procedure IdLogReceived(ASender: TComponent; const AText,
  49. AData: String);
  50. procedure IdLogSent(ASender: TComponent; const AText, AData: String);
  51. procedure btnGoClick(Sender: TObject);
  52. procedure IdFTPCaptureCheckListFormat(ASender: TObject;
  53. const ALine: String; var VListFormat: TIdFTPListFormat);
  54. procedure IdFTPCaptureParseCustomListFormat(AItem: TIdFTPListItem);
  55. private
  56. { Private declarations }
  57. public
  58. { Public declarations }
  59. end;
  60. var
  61. frmCapture: TfrmCapture;
  62. implementation
  63. {$R *.dfm}
  64. procedure TfrmCapture.btnBrowseClick(Sender: TObject);
  65. begin
  66. svdlgCapture.FileName := edtFileName.Text;
  67. if svdlgCapture.Execute then
  68. begin
  69. edtFileName.Text := svdlgCapture.FileName;
  70. end;
  71. end;
  72. procedure TfrmCapture.IdLogReceived(ASender: TComponent; const AText,
  73. AData: String);
  74. begin
  75. mmoLog.Lines.Add('Received: '+AData);
  76. end;
  77. procedure TfrmCapture.IdLogSent(ASender: TComponent; const AText,
  78. AData: String);
  79. begin
  80. mmoLog.Lines.Add('Sent: '+AData);
  81. end;
  82. procedure TfrmCapture.btnGoClick(Sender: TObject);
  83. var s : TStrings;
  84. begin
  85. IdFTPCapture.Host := edtHost.Text;
  86. IdFTPCapture.Username := edtUsername.Text;
  87. IdFTPCapture.Password := edtPassword.Text;
  88. IdFTPCapture.Passive := chkUsePasv.Checked;
  89. IdFTPCapture.Connect;
  90. try
  91. s := TStringList.Create;
  92. try
  93. if edtRemoteDir.Text <> '' then
  94. begin
  95. IdFTPCapture.ChangeDir(edtRemoteDir.Text);
  96. end;
  97. IdFTPCapture.List(s,edtParams.Text);
  98. s.SaveToFile(edtFileName.Text);
  99. finally
  100. FreeAndNil(s);
  101. end;
  102. finally
  103. IdFTPCapture.Disconnect;
  104. end;
  105. end;
  106. procedure TfrmCapture.IdFTPCaptureCheckListFormat(ASender: TObject;
  107. const ALine: String; var VListFormat: TIdFTPListFormat);
  108. begin
  109. //
  110. end;
  111. procedure TfrmCapture.IdFTPCaptureParseCustomListFormat(
  112. AItem: TIdFTPListItem);
  113. begin
  114. //
  115. end;
  116. end.