cls.ftp_service.writeftpfile.htm

来自「FTP Services for Visual Foxpro」· HTM 代码 · 共 487 行 · 第 1/3 页

HTM
487
字号
<span class='PDMOper'>#</span><span class='PDMResK'>INCLUDE</span> <span class='PDMStr'>"ftp.h"</span>
<span class='PDMResK'>SET</span> <span class='PDMResK'>PROCEDURE</span> <span class='PDMResK'>TO</span> <span class='PDMVar'>ftp</span><span class='PDMOper'>.</span><span class='PDMVar'>prg</span> <span class='PDMResK'>ADDITIVE</span> 
<span class='PDMVar'>loFTP</span><span class='PDMOper'>=</span><span class='PDMResF'>CREATEOBJECT</span><span class='PDMOper'>(</span><span class='PDMStr'>'_myftp'</span><span class='PDMOper'>)</span> 

<span class='PDMResK'>IF</span> <span class='PDMVar'>loFTP</span><span class='PDMOper'>.</span><span class='PDMVar'>OpenInternet</span><span class='PDMOper'>(</span><span class='PDMStr'>"ABONNE"</span><span class='PDMOper'>,</span> <span class='PDMStr'>"PWD"</span><span class='PDMOper'>,</span> <span class='PDMStr'>"10.10.10.10"</span><span class='PDMOper'>,</span> <span class='PDMStr'>"21"</span><span class='PDMOper'>)</span>

<span class='PDMCom'>   * Write remote file into bottom from local file</span>
   <span class='PDMResK'>IF</span> <span class='PDMVar'>loFTP</span><span class='PDMOper'>.</span><span class='PDMVar'>WriteFtpFile</span><span class='PDMOper'>(</span><span class='PDMStr'>"any.txt"</span><span class='PDMOper'>,</span><span class='PDMStr'>"local.txt"</span><span class='PDMOper'>,</span><span class='PDMLit'>1000</span><span class='PDMOper'>)</span>
      <span class='PDMOper'>?</span><span class='PDMResF'>STRTRAN</span><span class='PDMOper'>(</span><span class='PDMStr'>"File %File% uploaded"</span><span class='PDMOper'>,</span><span class='PDMStr'>"%File%"</span><span class='PDMOper'>,</span><span class='PDMStr'>"local.txt"</span><span class='PDMOper'>)</span>
   <span class='PDMResK'>ELSE</span>
      <span class='PDMOper'>?</span><span class='PDMVar'>loFTP</span><span class='PDMOper'>.</span><span class='PDMVar'>GetExtendedErrorCode</span><span class='PDMOper'>(</span><span class='PDMOper'>)</span><span class='PDMOper'>,</span><span class='PDMVar'>loFTP</span><span class='PDMOper'>.</span><span class='PDMVar'>GetExtendedErrorMsg</span><span class='PDMOper'>(</span><span class='PDMOper'>)</span>
   <span class='PDMResK'>ENDIF</span>

<span class='PDMCom'>   * Write remote file into 10. byte (resume mode) from local file</span>
   <span class='PDMResK'>IF</span> <span class='PDMVar'>loFTP</span><span class='PDMOper'>.</span><span class='PDMVar'>WriteFtpFile</span><span class='PDMOper'>(</span><span class='PDMStr'>"any.txt"</span><span class='PDMOper'>,</span><span class='PDMStr'>"local.txt"</span><span class='PDMOper'>,</span><span class='PDMLit'>1000</span><span class='PDMOper'>,</span><span class='PDMLit'>10</span><span class='PDMOper'>)</span>
      <span class='PDMOper'>?</span><span class='PDMResF'>STRTRAN</span><span class='PDMOper'>(</span><span class='PDMStr'>"File %File% uploaded"</span><span class='PDMOper'>,</span><span class='PDMStr'>"%File%"</span><span class='PDMOper'>,</span><span class='PDMStr'>"local.txt"</span><span class='PDMOper'>)</span>
   <span class='PDMResK'>ELSE</span>
      <span class='PDMOper'>?</span><span class='PDMVar'>loFTP</span><span class='PDMOper'>.</span><span class='PDMVar'>GetExtendedErrorCode</span><span class='PDMOper'>(</span><span class='PDMOper'>)</span><span class='PDMOper'>,</span><span class='PDMVar'>loFTP</span><span class='PDMOper'>.</span><span class='PDMVar'>GetExtendedErrorMsg</span><span class='PDMOper'>(</span><span class='PDMOper'>)</span>
   <span class='PDMResK'>ENDIF</span>

<span class='PDMCom'>   * Write remote file into bottom from string</span>
   <span class='PDMVar'>lcPom</span><span class='PDMOper'>=</span><span class='PDMResF'>FILETOSTR</span><span class='PDMOper'>(</span><span class='PDMStr'>"local.txt"</span><span class='PDMOper'>)</span>
   <span class='PDMResK'>IF</span> <span class='PDMVar'>loFTP</span><span class='PDMOper'>.</span><span class='PDMVar'>WriteFtpFile</span><span class='PDMOper'>(</span><span class='PDMStr'>"any.txt"</span><span class='PDMOper'>,</span><span class='PDMOper'>@</span><span class='PDMVar'>lcPom</span><span class='PDMOper'>,</span><span class='PDMLit'>1000</span><span class='PDMOper'>,</span><span class='PDMLit'>0</span><span class='PDMOper'>,</span><span class='PDMVar'>_FTPS_RWF_String</span><span class='PDMOper'>)</span>
      <span class='PDMOper'>?</span><span class='PDMResF'>STRTRAN</span><span class='PDMOper'>(</span><span class='PDMStr'>"File %File% uploaded"</span><span class='PDMOper'>,</span><span class='PDMStr'>"%File%"</span><span class='PDMOper'>,</span><span class='PDMStr'>"local.txt"</span><span class='PDMOper'>)</span>
   <span class='PDMResK'>ELSE</span>
      <span class='PDMOper'>?</span><span class='PDMVar'>loFTP</span><span class='PDMOper'>.</span><span class='PDMVar'>GetExtendedErrorCode</span><span class='PDMOper'>(</span><span class='PDMOper'>)</span><span class='PDMOper'>,</span><span class='PDMVar'>loFTP</span><span class='PDMOper'>.</span><span class='PDMVar'>GetExtendedErrorMsg</span><span class='PDMOper'>(</span><span class='PDMOper'>)</span>
   <span class='PDMResK'>ENDIF</span>

<span class='PDMCom'>   * Write remote file into 10. byte from string</span>
   <span class='PDMVar'>lcPom</span><span class='PDMOper'>=</span><span class='PDMResF'>FILETOSTR</span><span class='PDMOper'>(</span><span class='PDMStr'>"local.txt"</span><span class='PDMOper'>)</span>
   <span class='PDMResK'>IF</span> <span class='PDMVar'>loFTP</span><span class='PDMOper'>.</span><span class='PDMVar'>WriteFtpFile</span><span class='PDMOper'>(</span><span class='PDMStr'>"any.txt"</span><span class='PDMOper'>,</span><span class='PDMOper'>@</span><span class='PDMVar'>lcPom</span><span class='PDMOper'>,</span><span class='PDMLit'>1000</span><span class='PDMOper'>,</span><span class='PDMLit'>10</span><span class='PDMOper'>,</span><span class='PDMVar'>_FTPS_RWF_String</span><span class='PDMOper'>)</span>
      <span class='PDMOper'>?</span><span class='PDMResF'>STRTRAN</span><span class='PDMOper'>(</span><span class='PDMStr'>"File %File% uploaded"</span><span class='PDMOper'>,</span><span class='PDMStr'>"%File%"</span><span class='PDMOper'>,</span><span class='PDMStr'>"local.txt"</span><span class='PDMOper'>)</span>
   <span class='PDMResK'>ELSE</span>
      <span class='PDMOper'>?</span><span class='PDMVar'>loFTP</span><span class='PDMOper'>.</span><span class='PDMVar'>GetExtendedErrorCode</span><span class='PDMOper'>(</span><span class='PDMOper'>)</span><span class='PDMOper'>,</span><span class='PDMVar'>loFTP</span><span class='PDMOper'>.</span><span class='PDMVar'>GetExtendedErrorMsg</span><span class='PDMOper'>(</span><span class='PDMOper'>)</span>
   <span class='PDMResK'>ENDIF</span>

   <span class='PDMOper'>=</span><span class='PDMVar'>loFTP</span><span class='PDMOper'>.</span><span class='PDMVar'>CloseInternet</span><span class='PDMOper'>(</span><span class='PDMOper'>)</span> 
<span class='PDMResK'>ENDIF</span>
<span class='PDMResK'>RELEASE</span> <span class='PDMResK'>PROCEDURE</span> <span class='PDMVar'>ftp</span><span class='PDMOper'>.</span><span class='PDMVar'>prg</span>

<span class='PDMResK'>DEFINE</span> <span class='PDMResK'>CLASS</span> <span class='PDMVar'>_myFTP</span> <span class='PDMResK'>AS</span> <span class='PDMVar'>FTP_SERVICE</span>
   <span class='PDMResK'>PROCEDURE</span> <span class='PDMVar'>BeforeWriteFTPFile</span><span class='PDMOper'>(</span><span class='PDMVar'>lcRemoteFile</span><span class='PDMOper'>,</span> <span class='PDMVar'>lcData</span><span class='PDMOper'>,</span><span class='PDMVar'>liData</span><span class='PDMOper'>,</span><span class='PDMVar'>liStart</span><span class='PDMOper'>,</span><span class='PDMVar'>liFlags</span><span class='PDMOper'>,</span><span class='PDMVar'>lnFlag</span><span class='PDMOper'>)</span>
      <span class='PDMOper'>?</span><span class='PDMResF'>PROGRAM</span><span class='PDMOper'>(</span><span class='PDMLit'>16</span><span class='PDMOper'>)</span>
      <span class='PDMOper'>?</span><span class='PDMResF'>CHR</span><span class='PDMOper'>(</span><span class='PDMLit'>9</span><span class='PDMOper'>)</span><span class='PDMOper'>,</span><span class='PDMVar'>lcRemoteFile</span><span class='PDMOper'>,</span> <span class='PDMVar'>liData</span><span class='PDMOper'>,</span><span class='PDMVar'>liStart</span><span class='PDMOper'>,</span><span class='PDMVar'>liFlags</span>
   <span class='PDMResK'>ENDPROC</span>

   <span class='PDMResK'>PROCEDURE</span> <span class='PDMVar'>AfterWriteFTPFile</span><span class='PDMOper'>(</span><span class='PDMVar'>lcRemoteFile</span><span class='PDMOper'>,</span> <span class='PDMVar'>lcData</span><span class='PDMOper'>,</span><span class='PDMVar'>liData</span><span class='PDMOper'>,</span><span class='PDMVar'>liStart</span><span class='PDMOper'>,</span><span class='PDMVar'>liFlags</span><span class='PDMOper'>,</span><span class='PDMVar'>lnFlag</span><span class='PDMOper'>,</span><span class='PDMVar'>fResult</span><span class='PDMOper'>)</span>
      <span class='PDMOper'>?</span><span class='PDMResF'>PROGRAM</span><span class='PDMOper'>(</span><span class='PDMLit'>16</span><span class='PDMOper'>)</span>
      <span class='PDMOper'>?</span><span class='PDMResF'>CHR</span><span class='PDMOper'>(</span><span class='PDMLit'>9</span><span class='PDMOper'>)</span><span class='PDMOper'>,</span><span class='PDMVar'>lcRemoteFile</span><span class='PDMOper'>,</span> <span class='PDMVar'>liData</span><span class='PDMOper'>,</span><span class='PDMVar'>liStart</span><span class='PDMOper'>,</span><span class='PDMVar'>liFlags</span><span class='PDMOper'>,</span><span class='PDMVar'>fResult</span>
   <span class='PDMResK'>ENDPROC</span>

   <span class='PDMResK'>PROCEDURE</span> <span class='PDMVar'>AtWriteFTPFile</span><span class='PDMOper'>(</span><span class='PDMVar'>lcRemoteFile</span><span class='PDMOper'>,</span> <span class='PDMVar'>lcData</span><span class='PDMOper'>,</span><span class='PDMVar'>liData</span><span class='PDMOper'>,</span><span class='PDMVar'>liStart</span><span class='PDMOper'>,</span><span class='PDMVar'>liFlags</span><span class='PDMOper'>,</span><span class='PDMVar'>lnFlag</span><span class='PDMOper'>,</span><span class='PDMVar'>lii</span><span class='PDMOper'>,</span><span class='PDMVar'>liWrite</span><span class='PDMOper'>,</span><span class='PDMVar'>fResult</span><span class='PDMOper'>)</span>
      <span class='PDMOper'>?</span><span class='PDMResF'>PROGRAM</span><span class='PDMOper'>(</span><span class='PDMLit'>16</span><span class='PDMOper'>)</span>
      <span class='PDMOper'>?</span><span class='PDMResF'>CHR</span><span class='PDMOper'>(</span><span class='PDMLit'>9</span><span class='PDMOper'>)</span><span class='PDMOper'>,</span><span class='PDMVar'>lcRemoteFile</span><span class='PDMOper'>,</span> <span class='PDMVar'>lcData</span><span class='PDMOper'>,</span><span class='PDMVar'>liData</span><span class='PDMOper'>,</span><span class='PDMVar'>liStart</span><span class='PDMOper'>,</span><span class='PDMVar'>liFlags</span><span class='PDMOper'>,</span><span class='PDMVar'>lii</span><span class='PDMOper'>,</span><span class='PDMVar'>liWrite</span><span class='PDMOper'>,</span><span class='PDMVar'>fResult</span>
   <span class='PDMResK'>ENDPROC</span>
<span class='PDMResK'>ENDDEFINE</span> </pre>
 <!-- Code End -->


  </div>
 </div><!-- Example End -->

 <div class="PDM_AB_SeeAlso"><!-- SeeAlso Begin -->
  <span class="PDM_AB_Head">
   See also
  </span>
  <div class="PDM_AB_Body">
<a class="PDM_AB_See" href="../../code/ftp.prg/cls.ftp_service.beforewriteftpfile.htm" title="Skip to method FTP_SERVICE::BeforeWriteFTPFile()">FTP_SERVICE::BeforeWriteFTPFile()</a>&nbsp;|
<a class="PDM_AB_See" href="../../code/ftp.prg/cls.ftp_service.afterwriteftpfile.htm" title="Skip to method FTP_SERVICE::AfterWriteFTPFile()">FTP_SERVICE::AfterWriteFTPFile()</a>&nbsp;|
<a class="PDM_AB_See" href="../../code/ftp.prg/cls.ftp_service.atwriteftpfile.htm" title="Skip to method FTP_SERVICE::AtWriteFTPFile()">FTP_SERVICE::AtWriteFTPFile()</a>&nbsp;|
<a class="PDM_AB_See" href="../../code/ftp.prg/cls.ftp_service.getftpfile.htm" title="Skip to method FTP_SERVICE::GetFTPFile()">FTP_SERVICE::GetFTPFile()</a>&nbsp;|
<a class="PDM_AB_See" href="../../code/ftp.prg/cls.ftp_service.readftpfile.htm" title="Skip to method FTP_SERVICE::ReadFTPFile()">FTP_SERVICE::ReadFTPFile()</a>&nbsp;|
<a class="PDM_AB_See" href="../../code/ftp.prg/cls.ftp_service.putftpfile.htm" title="Skip to method FTP_SERVICE::PutFTPFile()">FTP_SERVICE::PutFTPFile()</a>&nbsp;|
<a class="PDM_AB_See" href="../../code/ftp.prg/cls.ftp_service.ftpcommand.htm" title="Skip to method FTP_SERVICE::FTPCommand()">FTP_SERVICE::FTPCommand()</a>&nbsp;|
<a class="PDM_AB_See" href="../../code/ftp.prg/cls.ftp_service.deleteftpfile.htm" title="Skip to method FTP_SERVICE::DeleteFTPFile()">FTP_SERVICE::DeleteFTPFile()</a>&nbsp;|
<a class="PDM_AB_See" href="../../code/ftp.prg/cls.ftp_service.renameftpfile.htm" title="Skip to method FTP_SERVICE::RenameFTPFile()">FTP_SERVICE::RenameFTPFile()</a>&nbsp;|
<a class="PDM_AB_See" href="../../code/ftp.prg/cls.ftp_service.createftpdirectory.htm" title="Skip to method FTP_SERVICE::CreateFTPDirectory()">FTP_SERVICE::CreateFTPDirectory()</a>&nbsp;|
<a class="PDM_AB_See" href="../../code/ftp.prg/cls.ftp_service.removeftpdirectory.htm" title="Skip to method FTP_SERVICE::RemoveFTPDirectory()">FTP_SERVICE::RemoveFTPDirectory()</a>&nbsp;|
<a class="PDM_AB_See" href="../../code/ftp.prg/cls.ftp_service.changeftpdirectory.htm" title="Skip to method FTP_SERVICE::ChangeFTPDirectory()">FTP_SERVICE::ChangeFTPDirectory()</a>&nbsp;|
<a class="PDM_AB_See" href="../../code/ftp.prg/cls.ftp_service.getftpdirectory.htm" title="Skip to method FTP_SERVICE::GetFTPDirectory()">FTP_SERVICE::GetFTPDirectory()</a>&nbsp;|
<a class="PDM_AB_See" href="../../code/ftp.prg/cls.ftp_service.getftpdirectoryarray.htm" title="Skip to method FTP_SERVICE::GetFTPDirectoryArray()">FTP_SERVICE::GetFTPDirectoryArray()</a>&nbsp;|
<a class="PDM_AB_See" href="../../code/ftp.prg/cls.ftp_service.ncachingtype.htm" title="Skip to property FTP_SERVICE::nCachingType">FTP_SERVICE::nCachingType</a>
  </div><!-- Body End -->
  <!--- "Applies to" need to be inserted here---->
  <PlaceAppliesTo_Here />
  <!--- /"Applies to" need to be inserted here---->
 </div><!-- SeeAlso End -->


<!-- /Created with _diamp_pdm_ab by Agnes Beste    03.09.2007 19:34 -->

 <div class="SC">
  <img onclick="ExpandSC('SP_1',-1);"class="imgEC" src="../../imgs/uptab.gif" alt="Expand/Collapse source code of procedure WriteFTPFile" id="IMG_SP_1" />
  <span ondblclick="ExpandSC('SP_1',-1);" class="SCCaption"><a name="FTP_SERVICE">Source Code</a></span>
  <div ondblclick="ExpandSC('SP_1',-1);" class="SCE" id="TX_SP_1">
<!-- Code Begin -->
<pre class="PDMCODE PDMNor" >      <span class='PDMResK'>LPARAMETERS</span> <span class='PDMVar'>INP</span> <span class='PDMVar'>lcRemoteFile</span><span class='PDMOper'>,</span> <span class='PDMVar'>INP</span> <span class='PDMVar'>lcData</span><span class='PDMOper'>,</span><span class='PDMVar'>OPT_INP</span> <span class='PDMVar'>liData</span><span class='PDMOper'>,</span><span class='PDMVar'>OPT_INP</span> <span class='PDMVar'>liStart</span><span class='PDMOper'>,</span><span class='PDMVar'>OPT_INP</span> <span class='PDMVar'>liFlags</span><span class='PDMOper'>,</span><span class='PDMVar'>OPT_INP</span> <span class='PDMVar'>lnFlag</span>
      <span class='PDMResK'>LOCAL</span> <span class='PDMVar'>fResult</span><span class='PDMOper'>,</span><span class='PDMVar'>lihFTP</span><span class='PDMOper'>,</span><span class='PDMVar'>lcBuffer</span><span class='PDMOper'>,</span><span class='PDMVar'>liData</span><span class='PDMOper'>,</span><span class='PDMVar'>liWrite</span><span class='PDMOper'>,</span><span class='PDMVar'>lihFile</span><span class='PDMOper'>,</span><span class='PDMVar'>lcAll</span><span class='PDMOper'>,</span><span class='PDMVar'>lcAlias</span><span class='PDMOper'>,</span><span class='PDMVar'>liSele</span><span class='PDMOper'>,</span><span class='PDMVar'>llErr</span><span class='PDMOper'>,</span><span class='PDMVar'>lcError</span>
      <span class='PDMResK'>LOCAL</span> <span class='PDMResK'>ARRAY</span> <span class='PDMVar'>laFile</span><span class='PDMOper'>(</span><span class='PDMLit'>1</span><span class='PDMOper'>)</span>
      <span class='PDMVar'>lihFile</span><span class='PDMOper'>=</span><span class='PDMLit'>0</span>

      <span class='PDMVar'>liData</span><span class='PDMOper'>=</span><span class='PDMResF'>IIF</span><span class='PDMOper'>(</span><span class='PDMResF'>PCOUNT</span><span class='PDMOper'>(</span><span class='PDMOper'>)</span><span class='PDMOper'>&lt;</span><span class='PDMLit'>3</span><span class='PDMOper'>,</span><span class='PDMLit'>512</span><span class='PDMOper'>,</span><span class='PDMVar'>liData</span><span class='PDMOper'>)</span>
      <span class='PDMVar'>liData</span><span class='PDMOper'>=</span><span class='PDMResF'>IIF</span><span class='PDMOper'>(</span><span class='PDMVar'>liData</span><span class='PDMOper'>&lt;=</span><span class='PDMLit'>0</span><span class='PDMOper'>,</span><span class='PDMLit'>512</span><span class='PDMOper'>,</span><span class='PDMVar'>liData</span><span class='PDMOper'>)</span>

      <span class='PDMVar'>liStart</span><span class='PDMOper'>=</span><span class='PDMResF'>IIF</span><span class='PDMOper'>(</span><span class='PDMResF'>PCOUNT</span><span class='PDMOper'>(</span><span class='PDMOper'>)</span><span class='PDMOper'>&lt;</span><span class='PDMLit'>4</span><span class='PDMOper'>,</span><span class='PDMLit'>0</span><span class='PDMOper'>,</span><span class='PDMVar'>liStart</span><span class='PDMOper'>)</span>
      <span class='PDMVar'>liFlags</span><span class='PDMOper'>=</span><span class='PDMResF'>IIF</span><span class='PDMOper'>(</span><span class='PDMResF'>PCOUNT</span><span class='PDMOper'>(</span><span class='PDMOper'>)</span><span class='PDMOper'>&lt;</span><span class='PDMLit'>5</span><span class='PDMOper'>,</span><span class='PDMVar'>_FTPS_RWF_File</span><span class='PDMOper'>,</span><span class='PDMVar'>liFlags</span><span class='PDMOper'>)</span>
      <span class='PDMVar'>lnFlag</span><span class='PDMOper'>=</span><span class='PDMResF'>IIF</span><span class='PDMOper'>(</span><span class='PDMResF'>PCOUNT</span><span class='PDMOper'>(</span><span class='PDMOper'>)</span><span class='PDMOper'>&lt;</span><span class='PDMLit'>6</span><span class='PDMOper'>,</span><span class='PDMVar'>FTP_TRANSFER_TYPE_UNKNOWN</span><span class='PDMOper'>,</span><span class='PDMVar'>lnFlag</span><span class='PDMOper'>)</span>
      <span class='PDMVar'>liSele</span><span class='PDMOper'>=</span><span class='PDMResF'>SELECT</span><span class='PDMOper'>(</span><span class='PDMOper'>)</span>
      <span class='PDMVar'>lcAlias</span><span class='PDMOper'>=</span><span class='PDMResF'>SYS</span><span class='PDMOper'>(</span><span class='PDMLit'>2015</span><span class='PDMOper'>)</span>

      <span class='PDMResK'>IF</span> <span class='PDMOper'>!</span><span class='PDMResF'>BITTEST</span><span class='PDMOper'>(</span><span class='PDMVar'>liFlags</span><span class='PDMOper'>,</span><span class='PDMLit'>0</span><span class='PDMOper'>)</span> <span class='PDMCom'>&amp;&amp; File?</span>
         <span class='PDMResK'>IF</span> <span class='PDMResF'>ADIR</span><span class='PDMOper'>(</span><span class='PDMVar'>laFile</span><span class='PDMOper'>,</span><span class='PDMVar'>lcData</span><span class='PDMOper'>,</span><span class='PDMStr'>"RSHA"</span><span class='PDMOper'>)</span><span class='PDMOper'>=</span><span class='PDMLit'>0</span> <span class='PDMCom'>&amp;&amp; safety than FILE()</span>
            <span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>SetExtendedError</span><span class='PDMOper'>(</span><span class='PDMVar'>_FTPS_UE_FNEXISTS</span><span class='PDMOper'>,</span><span class='PDMVar'>lcData</span><span class='PDMOper'>)</span>
            <span class='PDMResK'>RETURN</span> <span class='PDMLit'>.F.</span>
         <span class='PDMResK'>ENDIF</span>

         <span class='PDMResK'>CREATE</span> <span class='PDMResK'>CURSOR</span> <span class='PDMOper'>(</span><span class='PDMVar'>lcAlias</span><span class='PDMOper'>)</span> <span class='PDMOper'>(</span><span class='PDMVar'>XX000</span> <span class='PDMVar'>M</span> <span class='PDMResK'>NOCPTRANS</span><span class='PDMOper'>)</span>
         <span class='PDMResK'>APPEND</span> <span class='PDMResK'>BLANK</span>
         <span class='PDMOper'>#</span><span class='PDMResK'>IF</span> <span class='PDMResF'>VAL</span><span class='PDMOper'>(</span><span class='PDMResF'>STRTRAN</span><span class='PDMOper'>(</span><span class='PDMResF'>SUBS</span><span class='PDMOper'>(</span><span class='PDMResF'>VERSION</span><span class='PDMOper'>(</span><span class='PDMOper'>)</span><span class='PDMOper'>,</span><span class='PDMResF'>LEN</span><span class='PDMOper'>(</span><span class='PDMStr'>"Visual FoxPro "</span><span class='PDMOper'>)</span><span class='PDMOper'>+</span><span class='PDMLit'>1</span><span class='PDMOper'>,</span><span class='PDMLit'>2</span><span class='PDMOper'>)</span><span class='PDMOper'>,</span><span class='PDMStr'>"0"</span><span class='PDMOper'>,</span><span class='PDMStr'>""</span><span class='PDMOper'>)</span><span class='PDMOper'>)</span><span class='PDMOper'>&gt;=</span><span class='PDMLit'>8</span>
          <span class='PDMResK'>TRY</span>
           <span class='PDMResK'>APPEND</span> <span class='PDMResK'>MEMO</span> <span class='PDMVar'>XX000</span> <span class='PDMResK'>FROM</span> <span class='PDMOper'>(</span><span class='PDMVar'>lcData</span><span class='PDMOper'>)</span>
          <span class='PDMResK'>CATCH</span>
           <span class='PDMVar'>llErr</span><span class='PDMOper'>=</span><span class='PDMLit'>.T.</span>
          <span class='PDMResK'>FINALLY</span>
          <span class='PDMResK'>ENDTRY</span>
         <span class='PDMOper'>#</span><span class='PDMResK'>ELSE</span>
           <span class='PDMVar'>lcError</span><span class='PDMOper'>=</span><span class='PDMResK'>ON</span><span class='PDMOper'>(</span><span class='PDMStr'>"ERROR"</span><span class='PDMOper'>)</span> 
           <span class='PDMResK'>ON</span> <span class='PDMResK'>ERROR</span> <span class='PDMVar'>llErr</span><span class='PDMOper'>=</span><span class='PDMLit'>.T.</span>
           <span class='PDMResK'>APPEND</span> <span class='PDMResK'>MEMO</span> <span class='PDMVar'>XX000</span> <span class='PDMResK'>FROM</span> <span class='PDMOper'>(</span><span class='PDMVar'>lcData</span><span class='PDMOper'>)</span>
         <span class='PDMOper'>#</span><span class='PDMResK'>ENDIF</span>
         <span class='PDMResK'>IF</span> <span class='PDMVar'>llErr</span> <span class='PDMCom'>&amp;&amp; bug at reading file from disk</span>
            <span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>SetExtendedError</span><span class='PDMOper'>(</span><span class='PDMVar'>_FTPS_UE_CNF</span><span class='PDMOper'>,</span><span class='PDMVar'>lcData</span><span class='PDMOper'>)</span>
            <span class='PDMResK'>RETURN</span> <span class='PDMLit'>.F.</span>
         <span class='PDMResK'>ENDIF</span>
      <span class='PDMResK'>ELSE</span>
         <span class='PDMResK'>IF</span> <span class='PDMResF'>TYPE</span><span class='PDMOper'>(</span><span class='PDMStr'>"lcData"</span><span class='PDMOper'>)</span><span class='PDMOper'>#</span><span class='PDMStr'>"C"</span>
            <span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>SetExtendedError</span><span class='PDMOper'>(</span><span class='PDMLit'>11</span><span class='PDMOper'>,</span><span class='PDMStr'>"Function argument value, type, or count is invalid."</span><span class='PDMOper'>)</span>
            <span class='PDMResK'>RETURN</span> <span class='PDMLit'>.F.</span>
         <span class='PDMResK'>ENDIF</span>
<span class='PDMCom'>*         lcData=SUBST(lcData,liStart+1)</span>
      <span class='PDMResK'>ENDIF</span>

      <span class='PDMResK'>IF</span> <span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>OpenFTPConnection</span><span class='PDMOper'>(</span><span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>cCurrentDir</span><span class='PDMOper'>)</span>    <span class='PDMCom'>&amp;&amp; Open an FTP Handle</span>
         <span class='PDMVar'>lcRemoteFile</span> <span class='PDMOper'>=</span> <span class='PDMVar'>lcRemoteFile</span> <span class='PDMOper'>+</span> <span class='PDMVar'>cNULL</span>

         <span class='PDMOper'>=</span><span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>BeforeWriteFTPFile</span><span class='PDMOper'>(</span><span class='PDMOper'>@</span><span class='PDMVar'>lcRemoteFile</span><span class='PDMOper'>,</span> <span class='PDMOper'>@</span><span class='PDMVar'>lcData</span><span class='PDMOper'>,</span><span class='PDMVar'>liData</span><span class='PDMOper'>,</span><span class='PDMVar'>liStart</span><span class='PDMOper'>,</span><span class='PDMVar'>liFlags</span><span class='PDMOper'>,</span><span class='PDMVar'>lnFlag</span><span class='PDMOper'>)</span>

         <span class='PDMResK'>IF</span> <span class='PDMVar'>liStart</span><span class='PDMOper'>&gt;</span><span class='PDMLit'>0</span> <span class='PDMCom'>&amp;&amp; Part data</span>
<span class='PDMCom'>            * Append file</span>
            <span class='PDMOper'>=</span><span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>FTPCommand</span><span class='PDMOper'>(</span><span class='PDMStr'>"REST "</span><span class='PDMOper'>+</span><span class='PDMResF'>LTRIM</span><span class='PDMOper'>(</span><span class='PDMResF'>STR</span><span class='PDMOper'>(</span><span class='PDMVar'>liStart</span><span class='PDMOper'>,</span><span class='PDMLit'>11</span><span class='PDMOper'>)</span><span class='PDMOper'>)</span><span class='PDMOper'>,</span> <span class='PDMVar'>lnFlag</span><span class='PDMOper'>,</span><span class='PDMLit'>0</span><span class='PDMOper'>,</span><span class='PDMOper'>.</span><span class='PDMResK'>NULL</span><span class='PDMOper'>.</span><span class='PDMOper'>)</span>
            <span class='PDMVar'>fResult</span><span class='PDMOper'>=</span><span class='PDMResF'>IIF</span><span class='PDMOper'>(</span><span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>FTPCommand</span><span class='PDMOper'>(</span><span class='PDMStr'>"APPE "</span><span class='PDMOper'>+</span><span class='PDMVar'>lcRemoteFile</span><span class='PDMOper'>,</span> <span class='PDMVar'>lnFlag</span><span class='PDMOper'>,</span><span class='PDMLit'>0</span><span class='PDMOper'>,</span><span class='PDMOper'>@</span><span class='PDMVar'>lihFTP</span><span class='PDMOper'>)</span><span class='PDMOper'>,</span><span class='PDMLit'>1</span><span class='PDMOper'>,</span><span class='PDMLit'>0</span><span class='PDMOper'>)</span>
         <span class='PDMResK'>ENDIF</span>

         <span class='PDMResK'>STORE</span> <span class='PDMVar'>FtpOpenFile</span><span class='PDMOper'>(</span><span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>nConnect_Handle</span><span class='PDMOper'>,</span> <span class='PDMOper'>@</span><span class='PDMVar'>lcRemoteFile</span><span class='PDMOper'>,</span> <span class='PDMVar'>GENERIC_WRITE</span><span class='PDMOper'>,</span> <span class='PDMOper'>;</span>
                           <span class='PDMResF'>BITOR</span><span class='PDMOper'>(</span><span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>nCachingType</span><span class='PDMOper'>,</span><span class='PDMVar'>lnFlag</span><span class='PDMOper'>)</span><span class='PDMOper'>,</span> <span class='PDMLit'>0</span><span class='PDMOper'>)</span> <span class='PDMResK'>TO</span> <span class='PDMVar'>fResult</span><span class='PDMOper'>,</span><span class='PDMVar'>lihFTP</span>
         <span class='PDMOper'>=</span><span class='PDMResK'>This</span><span class='PDMOper'>.</span><span class='PDMVar'>GetExtendedError</span><span class='PDMOper'>(</span><span class='PDMOper'>)</span>

         <span class='PDMResK'>IF</span> <span class='PDMVar'>fResult</span> <span class='PDMOper'>#</span><span class='PDMLit'>0</span> <span class='PDMCom'>&amp;&amp; OK, FTP file is openned</span>
            <span class='PDMResK'>DO</span> <span class='PDMResK'>CASE</span>
               <span class='PDMResK'>CASE</span> <span class='PDMOper'>!</span><span class='PDMResF'>BITTEST</span><span class='PDMOper'>(</span><span class='PDMVar'>liFlags</span><span class='PDMOper'>,</span><span class='PDMLit'>0</span><span class='PDMOper'>)</span> <span class='PDMOper'>AND</span> <span class='PDMVar'>liStart</span><span class='PDMOper'>&gt;=</span><span class='PDMResF'>LEN</span><span class='PDMOper'>(</span><span class='PDMVar'>XX000</span><span class='PDMOper'>)</span> <span class='PDMOper'>OR</span><span class='PDMOper'>;</span>
                     <span class='PDMResF'>BITTEST</span><span class='PDMOper'>(</span><span class='PDMVar'>liFlags</span><span class='PDMOper'>,</span><span class='PDMLit'>0</span><span class='PDMOper'>)</span> <span class='PDMOper'>AND</span> <span class='PDMResF'>LEN</span><span class='PDMOper'>(</span><span class='PDMVar'>lcData</span><span class='PDMOper'>)</span><span class='PDMOper'>=</span><span class='PDMLit'>0</span> <span class='PDMCom'>&amp;&amp; pr醶dn

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?